84.Java的String不变是什么意思?不变就是一旦String被创建,它的值无法被修改。
85.为什么Java的String不可改变?
- 因为Java使用了字符串的概念。假设有5个reference variable指向“asdf”,那么一旦其中一个reference variable改变了String的值,那么其它的reference variable都会受到影响。
86.几种方法来创建String对象?
- 两种。字符串和new。
87.下面代码会创建几个对象?1个(字符串的概念)
String s1="Welcome";
String s2="Welcome";
String s3="Welcome";
88.为什么Java使用字符串的概念?
- 为了内存的利用效率更高,对于相同的对象,JVM只在Heap的String constant pool中创建一个对象。
89.下面的代码会创建几个对象?两个,都在Heap(普通区)
String s = new String("Welcome");
90.String和Stringbuffer的区别?
- String是不可变的,stringbuffer是可变的。
91.StringBuffer和StringBuilder的区别?
- StringBuffer是同步的,StringBuilder不是同步的。
92.如何创建final class?class上加final,字段上也加final。
public final class Employee{
final String pancardNumber;
public Employee(String pancardNumber){
this.pancardNumber=pancardNumber;
}
public String getPancardNumber(){
return pancardNumber;
}
}
93.Java中toString()方法有什么用?
- 可以打印出对象的字符串表示,任何时候当我们print一个对象的时候,编译器都会自动调用toString()。我们也可以通过重写toString()来得到我们想要的return type。默认返回的是hashcode。
Nested classes and Interfaces
94.什么是嵌套类?
- 就是一个类在其它的class或者接口内部declare的叫做嵌套类。嵌套类有4种类型。