Java 易忘知识点

1、形式参数问题

  • 基本类型作为形式参数:形式参数的改变不影响实际参数
  • 引用类型作为形式参数:形式参数的改变直接影响实际参数
  • 具体分析参考博博客

2、构造方法注意事项

  • 如果你不提供构造方法,系统会给出默认构造方法
  • 如果你提供了构造方法,系统将不再提供
  • 构造方法也是可以重载的

3、static关键字注意事项

  • 在静态方法中是没有this关键字的
  • 静态方法只能访问静态的成员变量和静态的成员方法

4、子类的实例化过程

子类中所有的构造函数默认都会访问父类中空参数的构造函数。因为每一个构造函数的第一行都有一条默认的语句super();因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前,要先看父类是如何对自己的内容进行初始化的。

注意事项:

  • 当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super语句指定要访问的构造函数。
  • 子类构造函数中如果使用this调用了本类构造函数,那么默认的super()就没有了,因为superthis都只能定义在第一行,所以只能有一个。但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数。
  • super语句必须要定义在子类构造函数的第一行!因为父类的初始化动作要先完成。

5、子类初始化和属性不能重写

初始化顺序: 初始化父类成员变量 初始化父类构造函数 初始化子类成员变量 初始化子类构造函数。
JAVA本身并不提供子类“覆盖”父类成员变量的方法,即使子类声明了与父类完全一样的成员变量,也不会覆盖掉父类的成员变量,具体阅读文章

6、instanceof 使用

instanceof:用于判断对象的具体类型,只能用于引用数据类型判断,通常在向下转型前用于健壮性的判断,参考运算符

7、集合指定初始容量

  List<~> list = new ArrayList<~>(100);

对于已知的情景,为集合指定初始容量,因为ArrayList的扩容机制是比较消耗资源的,每次到达临界点都会扩容1.5倍。

8、Object 数组转成 String 数组

主要使用Arrays.copyOf,System.arraycopy,Arrays.asList方法进行转换,具体分析参考转换数组Arrays工具类

9、网络编程

计算机网络,网络模型详细分析阅读博客

发布了132 篇原创文章 · 获赞 150 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_35988274/article/details/102724676