Java小李备春招|常用API
Java小李备春招系列文章:
1. Java小李备春招|JVM
2. Java小李备春招|面向对象
3. Java小李备春招|常用API
4. Java小李备春招|异常
5. Java小李备春招|集合
6. Java小李备春招|IO
7. Java小李备春招|计算机网络
-
== 和equals的区别
对于 == 来说,如果用于比较基本数据类型变量,则直接比较其存储的值是否相等,如果用于引用类型的变量,则是比较等号两边对象的地址是否相同;对于equals方法来说,如果没有对equals方法进行重写,则等价于 == 比较引用类型变量所指向的对象地址,如果类似String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。 -
数组中有没有length()方法?String中有没有length()方法?JavaScript中获取字符串长度如何获取?
数组中没有length()方法,有length属性,String中有length()方法,返回字符串长度,JavaScript中通过length属性获取字符串长度。 -
String、StringBuffer、StringBuilder的区别
String具有不可变性,StringBuffer和StringBuilder具有可变性,此外StringBuffer是线程安全的(使用了synchronized关键字修饰),StringBuilder是非线程安全的。 -
下面程序的输出
class StringEqualTest {
public static void main(String[] args) {
String s1 = “Programming”;
String s2 = new String(“Programming”);
String s3 = “Program”;
String s4 = “ming”;
String s5 = “Program” + “ming”;
String s6 = s3 + s4;
System.out.println(s1 == s2); //false
System.out.println(s1 == s5); //true
System.out.println(s1 == s6); //false
System.out.println(s1 == s6.intern()); //true
System.out.println(s2 == s2.intern()); //false
}
}
String对象intern()方法会得到字符串对象在常量池中对应的版本的引用(如果常量池中有一个字符串与String对象的equals结果是true),如果常量池中没有对应的字符串,则该字符串将被添加到常量池中,然后返回常量池中字符串的引用。 -
String s = new String(“xyz”) 创建了几个字符串对象?
两个对象,一个是静态存储区的"xyz",一个是用new创建在堆上的对象。