首页 > 代码库 > java基础:面试题【不断更新】
java基础:面试题【不断更新】
1:
Q:String s1 = new String("hello");这句话创建了几个对象?
A:两个或者一个。字符串是一个常用的类型。JVM中存在常量池,保存了大量的字符串对象,并共享使用。
如果常量池中没有“hello”,则在常量池中创建“hello”,然后在堆中开辟一块空间存储new的对象。如果常量池中已经存在“hello”,则只需要创建new一个对象。
2:
String a = "hello";
changeValue(a);
System.out.println(a);
输出结果为hello。因为String只要初始化,就不可变。changeValue(a)创建了一个新的对象。
3:
String str1 = "china";
String str2 = "hello";
Q:如何比较两个字符串的字典顺序
A:使用compareTo方法
//compareTo结果大于0 表示调用方法的字符串字典顺序在后面
//compareTo结果小于0 表示调用方法的字符串字典顺序在前面
4:public class TestLoop {
public static void main(String[] args) {
int a = 1;
int b = 10;
do {
b-= a;
a++;
} while (b--<0);
System.out.println("a="+a);
System.out.println("b="+b);
}
}
知识点:
(1)b-= a; //等价于 b = b - a
a++; //等价于 a = a + 1
(2)do while至少执行一次,第二次是否执行do看while条件是否满足。
java基础:面试题【不断更新】