24:一个类的实例化过程有哪些步骤?(*面试题)
Student s = new Student(); 在内存中到底执行了哪些步骤。
1,加载Sutdent.class文件进内存(类加载器)
2,在栈内存为 s 变量申请一个空间
3,在堆内存为Student对象申请空间
4,对类中的成员变量进行默认初始化
5,对类中的成员变量进行显示初始化
6,有构造代码块就先执行构造代码块,如果没有,则省略
7,执行构造方法,通过构造方法对对对象数据进行初始化
8,堆内存中的数据初始化完毕,把内存值复制给 s 变量
28:String s1 = new String("hello");和String s2 = "hello";的区别?
有区别,区别是:前者创建了两个对象,后者创建了一个对象。
29:String、StringBuffer、StringBuilder的区别?
String:字符长度是固定的。
StringBuffer/StringBuilder:字符长度是可变的。
StringBuffer:安全的,但效率较低一些。
StringBuilder:不安全的,但效率较高一些。
StringBuffer和StringBuilder兼容。
30:什么是基本数据包装类?
为了对基本类型的数据进行更多的操作的,java就针对每种基本类型的数据提供了对应的包装类类型。
对应的类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean