知识点 - 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 导包时有两个同名的类,那么只能导入一个类,另一个类在代码中使用全类名。

浙公网安备 33010602011771号