自学Java---基础语法---第二天

    技术2022-07-10  128

    变量

    变量概述

    变量是内存中装在数据的小盒子,只能用它来存数据和取数据。

    计算机存储单元

    计算机存储设备的最小存储单元是“位(bit)”,又称为“比特位”,计算机最小的存储单元叫“字节(byte)”,字节是由连续的8个位组成。计算机是采用二进制存储数据的。 常用存储单位: 1B(字节) = 8bit 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB 1PB = 1024TB

    基本类型之4类8种

    变量必须有明确的类型,什么类型的变量装载什么类型的数据 整型:byte,short,int,long 浮点型:double,float 字符型:char 布尔型:boolean

    常量与类型

    Java中默认的整数类型是int,默认的浮点类型是double 尾缀加“F”的,代表float,尾缀加"L"的,代表long,大写,大写,小白开始就没理会,结果做一道题的时候自己把自己弄蒙圈了,题目中有道题小白是这么定义的int =352l,弄了2个多小时,才发现尾缀那个是L,但小白开始一直把它当成1了,自己给自己挖了个坑O(∩_∩)O哈哈~ 3.14没有后缀,所以它是double类型; 5.28D为double类型; 1.26F为float类型。

    定义变量

    定义变量的语法格式:数据类型 变量名 = 数据值; int a = 100;

    使用变量的注意事项

    1.变量定义后可以不赋值,使用时再赋值,不赋值不能使用
    2.变量使用时有作用域
    3.变量不可以重复定义(同一变量名,定义不同的类型是不可以的)

    数据类型转换

    不同的数据类型可以在一起运算,但要先进行类型转换再运算,数据类型转换遵循原则: 范围小的数据类型值(如byte),可以直接转换为范围打的数据类型值(如int) 范围打的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte) 数据类型从小打大排序:byte -> short -> int -> long -> float -> double

    自动类型转换
    //表示范围小的数据类型转换成范围大的数据类型 int i = 100; double d = i;
    强制类型转换
    //表示范围大的数据类型转换成范围小的数据类型 double d = 3.14; int i = (int)d;

    运算符

    算术运算符

    运算符是用来计算数据的符号,数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数

    运算符运算规则范例结果+正号+33+加2+35+连接字符串“中”+“国”“中国”-负号int a=3;-a-3-减3-12*乘2*36/除5/22%取模5/21++自增int a=1;a++/++a2–自减int b=3;a–/--a2

    注意事项 1.加法熨衣服在链接字符串时要注意,只有直接与字符串相加才会转成字符串 2.除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除 3.“%”为整除取余符号,小数取余没有意义。结果符号与被取余的符号相同 4.整数做被除数,0不能做除数,否则报错

    算术运算符++、–的使用

    ++运算符,会在原有值的基础上自增1

    -运算符,会在原有值的基础上自减1 //++和--运算符,如果是在后边,则是先运算,后自增,如果是在前边,则是先自增,后运算 //强调一下,++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作 int a =3,b=3; System.out.println(a++);//此时a的值是3,先运算,后自增 System.out.println(a++);//此时a的值是上边a自增后的结果,所以是4 int i = 3; System.out.println(++i);//此时i的值是4,先自增,后运算

    赋值运算

    运算符运算规则范例结果=赋值int a=22+=加后赋值int a=2,a+=24-=减后赋值int a=2,a-=20*=乘后赋值int a=2,a*=24/=整除后赋值int a=2,a/=21%=取模后赋值int a=2,a%=20

    注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

    /* * 赋值运算符 * +=, -=, *=, /=, %= : * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的 * 注意:赋值运算符左边必须是变量 */ public class OperatorDemo2 { public static void main(String[] args) { byte x = 10; x += 20;// 相当于 x = (byte)(x+20); System.out.println(x);//运行结果是30 }

    比较运算符

    运算符运算规则范例结果==相等于4==3False!=不等于4!=3True<小于4<3False>大于4>3True<=小于等于4<=3False>=大于等于4>=3True

    这里需要注意一下: 赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下: 赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量; 比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的。

    逻辑运算符

    l 逻辑运算符通常连接两个其他表达式计算后的布尔值结果 l 当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。

    boolean b = 100>10; boolean b2 = false; System.out.println(b&&b2); // 打印结果为 false System.out.println(b||b2); //打印结果为 true System.out.println(!b2); //打印结果为 true System.out.println(b && 100>10); //打印结果为 true,

    运算符的规律: l 短路与&&:参与运算的两边数据,有false,则运算结果为false; l 短路或||:参与运算的两边数据,有true,则运算结果为true; l 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

    三元运算符

    格式: (条件表达式)?表达式1:表达式2; 表达式:通俗的说,即通过使用运算符将操作数联系起来的式子,例如: 3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式。 3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。 其他表达式,不再一一举例。 三元运算符运算规则: 先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。

    方式一: System.out.println( 3>2 ? “正确” : “错误” ); // 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印 方式二: int a = 3; int b = 4; String result = (a==b) ? “相等” : “不相等”; //三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result 方式三: int n = (3>2 && 4>6) ? 100 : 200; //三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n

    商场库存清单案例

    public class Test { public static void main(String[] args) { d1(); } public static void d1(){ System.out.println("---------------商品库存清单---------------"); System.out.println("品牌" + "\t"+"尺寸" + "\t"+"价格" + "\t"+"库存"); String macBrand = "苹果"; double macSize = 16.6; double macPrice =1888.66; int macCount = 44; String huaweiBrand = "苹果"; double huaweiSize = 18.6; double huaweiPrice =3888.88; int huaweiCount = 16; System.out.println(macBrand+ "\t"+macSize+ "\t"+macPrice+ "\t"+macCount); System.out.println(huaweiBrand+ "\t"+huaweiSize+ "\t"+huaweiPrice+ "\t"+huaweiCount); int totalCount = huaweiCount+macCount; double totalPrice = huaweiPrice*huaweiCount+macCount*macPrice; System.out.println("-----------------------------------------"); System.out.println("库存宗苏: " +totalCount); System.out.println("库存商品总金额: " +totalPrice); } }

    运行结果:

    作业

    1.什么是变量?变量的定义格式?要使用变量需要注意什么? 变量是内从中装载数据的小盒子,只能用它来存储数据,通俗讲就是可变的量 定义变量的格式:数据类型 变量名称 = 数据值 变量必须有明确的数据类型,什么类型的变量装载什么类型的数据 同一范围内不能重复 不赋值不能使用

    2.Java中的数据类型分几类?基本数据类型有哪些? 分两类: 基本数据类型:byte,short,char,int,long,float,double,boolean 引用数据类型:类,接口,枚举,数组

    3.数据类型转换: 隐式转换:由低级专向高级(自动转换) 强制转换:由高级专向低级(强制转换)

    面试题 第一题: byte b1=3,b2=4,b; b=b1+b2;//错误 因为他们最终是要转向int类型 而int类型的值不能赋值给byte b=3+4;//正确 因为他们都是常量 具有常量类型优化机制 可以直接识别为byte 第二题: byte by = 130;有没有问题?有问题如何解决?结果是多少呢? 有问题 因为这个数超出了byte的取值范围 要用byte类型进行强制转换 结果是-126 第三题: byte b = 10; b++; b = b + 1;//失败 因为在和一个int类型的常量进行相加的时候b自动转换成int类型 而一个int类型的数据是没办法直接赋值给byte类型的变量的 哪句是编译失败的呢?为什么呢?

    4.常见的算术运算符有哪些? 答:+ - * / % (1)+运算符的作用有哪些? 可以作为数学运算符 也可用作字符串拼接符 (2)除法和取余的区别? 除法是数学运算机型相初操作 取余数运算符是对除法操作之后取其余数进行操作的 (3)++和–的使用规则? 分别为自增 自减 在放在 变量前面就是先进行运算放在后面就是后进行运算

    5.常见的赋值运算符有哪些? 答:= += -= *= /= %= (1)+=运算的作用是什么? a += b;== a = a + b; (2)扩展的赋值运算符有什么特点? 会进行自动强制数据类型转换 6. short s = 1; s = s + 1;有没有问题?如果有怎么解决? 有问题 因为short类型的专用字节数比int小 但是1是int类型 在表达式进行运算的时候就吧其值提升为int类型了 而int类型不能直接赋值给short类型的变量可以同过强制数据类型转换来解决 short s = 1; s += 1;有没有问题?如果有怎么解决? 没有问题 因为使用的是扩展赋值运算符 这样的话就会实现自动强制数据类型转换 7.分析以下需求,并用代码实现: (1)已知一个三位数,请分别获取该三位数上每一位的数值 以下是课堂给的答案 public static void main(String[] args) { @SuppressWarnings(“resource”)//这个注释百度了半天没弄明白到底啥意思 //下边的代码通过百度到是看明白了 char chs[] = String.valueOf(new Scanner(System.in).nextInt()).toCharArray(); System.out.println(“个位是:”+chs[2]+"\n十位是:"+chs[1]+"\n百位是:"+chs[0]); }

    //这是我自己的做法 System.out.println("个位是:" + (678 % 10) + "\n十位是:" + (678 / 10 % 10) + "\n百位是:" +(678 / 100));

    8.看程序说结果,请不要提前运行?

    public class Test1 { public static void main(String[] args) { int x = 4; int y = (--x)+(x--)+(x*10); /* (--x)由于--在前边,所以先自减再运算,此时X值为3+(x--)这里的--在后边, 所以先用此时X的值3做运算,运算完成后自减,到后边X*10的时候,X的值已经 是2了+(x*10) */ System.out.println("x = " + x + ",y = " + y); } } x = 2 y = 26
    Processed: 0.015, SQL: 9