进制的由来:任何数据在计算机中都是以二进制的形式存在的。二进制早起由电信号开关演变而来。
一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。
所以就想把一大串缩短点,将二进制中的三位用一位表示。
这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。
但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,
四个二进制位最大是15,这就是十六进制。
规律,进制越大,表现形式越短。
char是 0到65535
b=3+4 ,3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。如果没有可以赋值。
b=b1+b2不可以,是因为b1和b2是变量,因为变量的值会变化,不确定具体的值,所以默认使用int类型进行存储。
因为计算机只识别数字,它用了一个表如gbk表将数字和字母进行了对应起来
无论是图片,中文,dvd在内存也是与表对应起来的数字,中文也可以进行比较大小,底层是使用的uncode来实现
s=s+2//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。
s+=2//编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
第十五讲
int a = 3;
a++;//相当于a=a+1;
System.out.println("a="+a);//输出结果为4
然而也如果是a+1;//这样是不正确的,加完了过后,没有赋值,所以也会报错
int i = 3;
i= i ++ ;
System.out.println(i);//结果是3
原因分析:
其实是这样一个过程
如果i要参与其他运算,那么要先把i用一个临时变量保存起来
Temp = i
I=i+1
I = temp;
面试题:
Short s = 3;
s +=4;
System.out.println(s);//结果为7
s = s+4;//这个可能损失精度
然而也+=他底层会帮我强转,这个s=s+4这个是要我们手动转换
就是short s = 3,会把3转换为short类型