黑马程序员技术交流社区

标题: 一些API基础知识 [打印本页]

作者: 墨晓生    时间: 2016-9-1 21:39
标题: 一些API基础知识
1、为什么子类的所有构造方法的第一行都有一个super()默认访问父类的空参构造,而不是带参构造?
               
        2、 == 和 equals()的区别是什么?
                区别:
                        ==号:是比较运算符,既可以比较基本类型,也可以比较引用类型。
                                  比较基本类型,比较的值。比较引用类型,比较的是地址值。
                        equals(): 是一个方法,只能比较引用类型。(Object类中的equals()方法默认比较的是地址值,没有意义,子类一般都会重写这个方法)
                他们的相同点是:返回值都是boolean类型。

        3、地址值的组成是什么?
                全类名 , @符号, 该对象的哈希值(该对象的哈希码的无符号的十六进制形式)。

        4、字符串初始化完毕后其值不能发生改变,这句话对吗?
                对。这里的不能改变,指的是常量池中的值不能发生改变,而不是String类型的引用不能发生改变。
                        String str = "abc";
                        str = "bcd";
        5、如下代码,执行结果是什么?
                String str = "abc";
                String str2 = new String("abc");
                System.out.println(str == str2);                        //false
                System.out.println(str.equals(str2));                //true

        6、String str2 = new String("abc");这行代码创建了几个对象?
               
        7、"" 和 null 的区别是什么?
                ""是字符串类型的对象,只不过值为空。
                null是空常量,并没有创建对象。

        8、字符串,数组,集合分别如何获取长度?

        9、 StringBuffer 和 StringBuilder 的默认初始容量是多少?
                16

        10、String,StringBuffer,StringBuilder三者的区别是什么?
                String和其他两个类型的区别:
                        String是长度固定的字符串,而其他两个是长度可变的字符串。
                StringBuffer,StringBuilder 的区别是:
                        StringBuffer: JDK1.0以后出现的,线程安全(同步)的,效率低。
                        StringBuilder: JDK1.5以后出现的,线程不安全(不同步),效率高。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2