1.常量(constant)(字面值常量6种、自定义常量)
整数常量
小数常量
字符常量
字符串常量
布尔常量
空常量
System.out.println('10');//error
System.out.println('');//error,不能为空
System.out.println(' ');//空格可以
System.out.println(true);//关键字
2.进制(scale)
计算机中存储和运算的最小单位是字节,尽管最小单位是位(bit)。
3.不同进制的表现形式
二进制0b(b可以大写可以小写)
八进制0开头
十六进制0x开头(x可大写可小写,0-9,a-f(可大写可小写))。
4.进制转换
把系数*基数的权次幂相加即可。
5.十进制到任意进制
除积倒取余
6.快速转换法
8421码
7.原码反码补码
正数的原反补是一样的
负数的反码是对原码取反,符号不变;负数的补码是其反码末位加1;
计算机都是以补码形式运算的
1.变量
初始化 格式:
2.数据类型
byte(1个字节-128---127) short(2) int(4) long(8) float(2) double(4) char(2)
boolean java没有明确指定他的大小。不能与其他类型转换
3.注意事项
整数默认是int型,long类型需要加L或者l(最好是L。)
浮点型默认是double。float类型后面要加F或者f。
在定义的数据在默认范围内编译会过(不在范围肯定不过),但是long、float不加标识,运行会提示损失精度
4.类型转换(conversion)
①
byte b = (byte)(126+4);得130是int型,byte强行砍掉前面24个0(int 4个8位),计算机底层是补码运算,换算回来会变成负数
②
int x =4;
byte b = 10;
byte b = (byte)x+b;//error byte与byte进行运算的时候回提升为int
③
byte b1 = 3;
byte b2 = 4;
byte b = b1 + b2;//error.b12是变量编译的时候值是变化。 byte b = (byte)(b1 + b2);//OK
*byte b = 3 + 4;//通过java编译器有常量优化机制,
5.面试题:
1.byte与byte进行运算的时候回提升为int
2.b1和b2的两个变量,变量存储的值是变化的,在编译的时候无法判断里面具体的值,可能会超出范围。
6.long与float的取值范围。
byte,short,char不会相互转换---统统转化int---long----float-----double
float 四个字节 long 八个字节。 float大于long。
IEEE 754 规定:float里面的范围是有算法控制的
1位是符号位
8位是指数位
23位是尾数位
7.上面说到byte,short,char统统会向上转化为int,所以字符与数字相加的时候是数字。
任何数据类型用+和字符串相连接,都会产生新的字符串。
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5 + 5 =" + 5 + 5);//所以需要的时候要加括号
8.char
0-65535
可以存一个汉字
9.取模
%运算符结果的符号只和左边有关系,与右边无关
10.++ --
int a = 2;
int b;
b = a++;
输出结果是a=3;b=2;e
11.
第一题
第二题
x = 4;
y = (x++)+(++x);
结果:x = 6; y = 10;
第三题
|
|