1、String是最基本的数据类型吗?
不是。Java中最基本的数据类型有8个: short16、long64、int32、double64、float32、byte8、char16、boolean1
除了最基本的数据类型,其他的都是引用类型,String属于引用类型。
2、断言的用途?
断言是在Java 1.4中引入的。它能让你验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。基本断言如下所示。
private int computerSimpleInterest(int principal,float interest,int years){
assert(principal>0);
return 100;
}
3、== 与 equals 的区别
"==":是关系运算符,在数值运算方面可用来比较数值是否相等;在比较对象时则表示所比较对象是否是同一个对象。
"equals":是对象用于比较的一种方法,在Object对象中用来表示两个对象是否相等,但是该方法大多被其他类的对象所重写用来表示对象中的内容是否相等。
4、用一个例子解释垃圾回收?
比方说,下面这个方法就会从函数调用。
void method(){
Calendar calendar = new GregorianCalendar(2000,10,30);
System.out.println(calendar);
}
通过函数第一行代码中参考变量calendar,在堆上创建了GregorianCalendar类的一个对象。
函数结束执行后,引用变量calendar不再有效。因此,在方法中没有创建引用到对象。
JVM认识到这一点,会从堆中删除对象。这就是所谓的垃圾回收。
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
前者错误,后者正确。对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。