Day1 Prepare for the interview

1,java中的==和equals的区别
答:
==作用于基础数据类型的变量,则直接比较其存储的值是否相等
==作用于引用类型的变量,比较的依然是其存储的值是否相等,即所指向的对象的地址

equals只能作用于引用类型的变量,
如果没有对equals方法进行重写,则比较的依然是所指向对象的地址,
如果像String,Date,Double,Integer等类对equals方法进行重写,那么比较的则是所指向的对象内容,
eg.
String str1 = new String(“hello”);
String str2 = new String(“hello”);
System.out.println(str1.equals(str2));
输出true
因为字符串"hello"和字符串"hello"一致。

下面是Object类的equals方法代码和String类的equals方法的代码:
Day1 Prepare for the interview

Day1 Prepare for the interview

2,java中int long char各占多少字节数?
答:
所谓占用字节数,就是申请内存的时候分配的空间大小

bit:1bit = 0/1 一个二进制数

Int整型:
byte:1byte = 8bit(8位) 一个字节(-2的7次方 ~ 2的7次方-1)
short:1short = 16bit(16位) 2个字节(-2的15次方 ~ 2的15次方-1)
int:1int = 32bit(32位) 4个字节(-2的31次方 ~ 2的31次方-1)
long:1long = 64bit(64位) 8个字节(-2的63次方 ~ 2的63次方-1)

Float浮点型:
float:1float = 32bit(32位) 4个字节(-2的31次方 ~ 2的31次方-1)
double:1doube = 64bit(64位) 8个字节(-2的63次方 ~ 2的63次方-1)

Boolean布尔型:1字节(8bit),这种类型只作为一种标志来记录true/false的情况。

char字符型:
char:1char = 16bit(16位) 2个字节(0—2的16次方-1)

英文字母:
字节数 : 1;编码:GB2312
字节数 : 1;编码:GBK
字节数 : 1;编码:ISO-8859-1
字节数 : 1;编码:UTF-8

中文汉字:
字节数 : 2;编码:GB2312
字节数 : 2;编码:GBK
字节数 : 1;编码:ISO-8859-1
字节数 : 3;编码:UTF-8

字符编码:Unicode和UTF-8之间的关系,参见链接:
https://blog.****.net/xiaolei1021/article/details/52093706/

3,int和Integer的区别
答:
1,Integer是int的包装类,int则是java的一种基本数据类型
2,Integer变量必须实例化后才能使用,而int变量不需要
3,Integer的默认值是null,int的默认值是0
延伸:
1,两个通过new生成的Integer变量永远不相等(因为new生成的是两个对象,其内存地址不同)
2,