1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型;
因为字符串的值在创建后不能被更改
2.什么情况下会用到Static关键字?
static可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的;
当该类的每个对象需要共享同一个成员属性的值时,可以用static修饰
3.静态代码块会在什么时候执行?
在该类及其子类第一次加载时执行且执行一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建一个对象
栈中为s开辟空间,大小为一个句柄大小或者说地址大小,指向堆中对象
堆中而不在常量池中,开一个句柄大小的空间,指向堆中一个字节数组
堆中开辟一个字节数组空间
String s = "abc";创建一个对象
栈中为s开辟空间,大小为一个句柄大小或者说地址大小,指向堆中的常量池中对象
堆中的常量池中,开一个句柄大小的空间,指向堆中一个字节数组
堆中开辟一个字节数组空间