知识点 - Java

 1.方法的返回值也可以体现多态性。

public Object test(){
        return new ArrayList();
}

 

2.数组也是一个对象,数组索引也是一个引用。

 

3.为什么一个源文件中只能有一个 public 类?

因为 public 类要和源文件名相同。

那为什么 public 类要和源文件名相同?

简单来说就是 jvm 为了提高查找类的速度而作的规定。

 

4. List 的实现类 被 remove() 方法删除指定元素之后,后面的所有元素都向前移一位。

Iterator 的 remove() 方法不能连续调用,必须首先调用 next() 方法。

 

5.枚举单例模式既不是饿汉式也不是懒汉式。

 

6.当 compare() 方法的返回值大于0时,就将前一个元素和后一个元素交换。

 

7.数组的几种声明方式:

public class Test {
    public static void main(String[] args) {
        String[] str1 = {};
        String[] str2 = new String[0];
        String[] str3 = {""};
        String[] str4;
        String[] str5 = null;

        System.out.println(str1.length);
        System.out.println(str2.length);
        System.out.println(str3.length);
    }
}

输出结果:

0

0

1

 

8. jdk8.0 中创建 ArrayList 对象时创建了一个长度为 0 的数组,创建 HashMap 对象时没有创建数组。

HashMap 的链表长度树化阈值是 8,数组容量树化阈值是 64。扩容阈值是 CAPACITY * FACTOR。

 

9.多态方式和手动向上转型的区别是:多态方式会自动向上转型并赋给一个新的引用,手动向上转型没有赋给一个新的引用,相当于一个匿名对象,只能使用一次。

 

10.单元测试方法类似于 main() 方法,但不是静态方法,且更为便捷。

 

11. String 和 引用数据类型 连接(+)时,会调用该对象的 toString 方法。

 

12. instanceof 左边是对象,右边是类,当左边的对象是右边的 类或其子类 的对象时返回 true,否则返回 false。两边必须是同一个类或存在继承关系,否则编译错误。

 

13.不能使用泛型的形参创建对象。

 

14.

Class clazz = Person.class

为什么要加 .class 而不能直接用类名?因为类名只表示一个类型,不能作为一个实例。或者说,类名只能表示一个类,不能表示一个对象。

类名.class 表示一个运行时类,如果类还没有加载到内存,JVM 将使用类加载器,将类装入内存,然后返回一个 Class 的实例。

 

15.三元运算符的 表达式1 和 表达式2 必须是同一类型,否则编译错误。

 

16.如果 import 导包时有两个同名的类,那么只能导入一个类,另一个类在代码中使用全类名。

posted @ 2022-04-12 20:58  Light_cone  阅读(32)  评论(0)    收藏  举报