复学day04
关于数据

int i = 128;
byte b = (byte) i; //此时强制转换便发生了内存溢出的情况(高到低)
System.out.println(i);//128
System.out.println(b);//-128
关于数据转换需注意的点:
1、不能堆布尔值进行转换
2、不能把对象类型转换为不相干类型
3、在把高容量转换到低容量的时候,强制转换
4、转换的时候可能存在内存溢出,或者精度问题
相关学习代码:
int money =10_0000_0000;
int years =20;
int total = money*years;//计算时数据溢出
long total2 = money*years;//默认为int格式,数据溢出后转换为long格式,所以结果依旧不对
long total3 = money*((long)years);//先将一个参数格式转换为long格式,计算时发生自动数据转换,所以结果为期望数据
关于变量


上图中标识出变量作用域的属性,其中实例变量从属于对象,定义在类中、方法之外,其有默认初始数据0/null/false;目前实例变量与类变量的区别在于关键字static,后续内容学习后补充;局部变量定义在方法内,使用时必须先将其初始化。
关于常量

关于命名规范

关于运算符

PS:除开运算符,后续进行高级计算时,我们可以使用Math计算工具类来进行高级计算
double pow = Math.pow(3,2); // 幂运算 3^2 3*3=9
System.out.println(pow); //9.0
关于位运算符
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 //取反(亦或),相同为0,不同为1
~B = 1111 0010
<<左移 相当于*2
>>右移 相当于/2
由于计算机内部只能识别2进制,所以位运算涉及到底层效率高(2*8如何运算效率最高)
0000 0000 0
0000 0001 1
0000 0010 2
//0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
关于条件运算符
//x ? y : z
//如果x==true,结果为y,否则为z
扩展小知识

简单理解,包可等同于一个文件夹
浙公网安备 33010602011771号