变量定义格式:变量名 = 初始化值;
注意:格式是固定的,记住格式,以不变应万变
定义变量的注意事项:
-
作用域
变量在同一个大括号内有效,出了大括号外无效。 -
相同的作用域中不能定义两个同名变量。
-
没有初始化值不能直接使用,在使用之前赋值即可
定义变量的格式:
1、数据类型 变量名 = 初始化值;(推荐使用第一种,今后很有可能你忘了赋值)
2、数据类型 变量名;
变量名 = 初始化值; -
不建议在一行上定义多个变量,强制定义一个变量为一行。
例如:int a=10;
int b=100;
按从小到大排序
2.注意事项***1、整数默认是int类型 2、如果要定义一个long类型的数据,末尾要加上L或者l,推荐L 3、小数默认是double类型 4、如果要定义一个float类型的数据,末尾要加上F或者f,推荐F***
例如: //如果要定义一个long类型的数据,末尾要加上L或者l,推荐L
long l = 10000000000L;
定义一个float类型的数据:
float f=10000000000.0F
5.boolean类型只能为true或false。
-
默认转换
byte,short,char—int—long—float—double
byte,short,char相互之间补转换,他们参与运算首先转换为int类型 -
强制转换
目标类型 变量名=(目标类型)(被转换的数据);
不建议大量使用强制类型转换,因为可能会损失精度。 -
例如: byte b1 = (byte) a;
byte b=(byte)(b1+b2); -
举例: 面试题
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
答:b=b1+b2;会编译失败,因为byte变量相加后会提升变量类型,然后再相加赋值,如果接收的数据类型范围小于计算结果后的数据类型范围则会报错。
而b=3+4是常量相加,会先进行计算,计算完后看看在不在接收的数据类型范围内,如果在就赋值,否则报错。 -
举例: byte b = (byte)130;
System.out.println(b);
计算出b的值?
答:b=-126
我们知道数据在计算机种运算的时候是采用补码的形式参数运算的,所以要知道130的补码
而想要知道补码,就得知道反码,原码,所以得求出130的二进制的表示:
130的二进制:10000010
由于整数默认是int类型为4个字节,所以扩大字节
130的原码为:00000000 00000000 00000000 10000010
又由于最高位是0,所以它的原码,反码,补码都一样
130的补码:00000000 00000000 00000000 10000010
做截取 *** 作:因为强制转化为byte型所以要进行截取 *** 作只保留八位10000010 这是补码
已知补码,求原码:
符号位 数值位
补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
最终结果为:11111110
将它换算成十进制就是我们看到的结果:-126
(1)、当加号两边都是数字或者是数字和字符的时候,这时候的+号做的是加法运算
(2)、当加号两边其中是字符串的时候,做的是字符串拼接,拼接后是一个新的字符串
(3)、字符串与任何数值做加法,做的是字符串拼接,拼接后是一个新的字符串
例如:
System.out.println(“hello”+‘a’+1); // helloa1
System.out.println(‘a’+1+“hello”); // 98hello
System.out.println(“5+5=”+5+5); // 5+5=55
System.out.println(5+5+"=5+5"); // 10=5+5
-
++:自加1
当++在前的时候,先自加1,再做赋值 *** 作,当++在后的时候,先做赋值 *** 作,再做自加1 -
–:自减1
当–在前的时候,先自减1,再做赋值 *** 作,当–在后的时候,先做赋值 *** 作,再做自减1
例如:int a = 10;
int c = a++;
System.out.println(a); //11
System.out.println©; //10int a1 = 10; int c1 = ++a1; System.out.println(a1); //11 System.out.println(c1); //11
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)