栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java回炉学习(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java回炉学习(二)

Java回炉学习(二) 1.继承的本质是建立查找关系
  1. 首先看子类是否有该属性
  2. 如果子类有这个属性,并且可以访问,则返回信息
  3. 如果子类没有这个属性,就看父类有没有这个属性(如果父类有该属性,并且可以访问,就返回信息…)
  4. 如果父类没有就按照(3)的规则,继续找上级父类,直到 Object…

2. super和this的区别

3. 重载和重写的区别

4.多态
  1. 左边为编译类型,右边为运行类型
  2. 向上转型:父类的引用指向子类的对象,语法:父类类型引用名 = new 子类类型
  3. 向下转型:子类类型 引用名 = (子类类型)父类类型
5. 动态绑定机制
  1. 当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。
  2. 当调用对象属性的时候,没有动态绑定机制,哪里声明,哪里使用。
  3. instanceof判断运行类型是否相同
6. finalize 方法
  1. 当对象被回收时,系统自动调用该对象的 finalize 方法。子类可以重写该方法,做一些释放资源的操作
  2. 什么时候被回收:当某个对象没有任何引用时,则 jvm 就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用 finalize 方法。
  3. 垃圾回收机制的调用,是由系统来决定(即有自己的 GC 算法), 也可以通过 System.gc() 主动触发垃圾回收机制
  4. 鼠标处 Ctrl+B查看方法源码
7. main方法理解
  1. main方法时虚拟机调用
  2. java虚拟机在执行main()方法时不必创建对象,所以方法必须是static
  3. java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public
  4. 该方法接收String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数
  5. 在 main()方法中,我们可以直接调用 main 方法所在类的静态方法或静态属性。
  6. 但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员
  7. 静态方法,只能访问静态的成员;非静态的方法,可以访问静态成员和非静态成员
8. static代码块

​ static代码块也叫静态代码块,作用就是对类进行初始化,**而且它随着类的加载而执行,并且只会执行一次。**如果是普通代码块,每创建一个对象,就会执行。如果只是使用类的静态成员时,普通代码块并不会执行。

9. 类什么时候被加载
  1. 创建对象实例时(new)
  2. 创建子类对象实例,父类也会被加载
  3. 使用类的静态成员时(静态属性,静态方法)
10. 创建对象时,在一个类的调用顺序、
  1. 调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)
  2. 调用普通代码块和普通属性的初始化(注意:普通代码块和普通属性初始化调用的优先级一样,如果有多个普通代码块和多个普通属性初始化,则按定义顺序调用)
  3. 调用构造方法。
  4. 构造器的最前面其实隐含了super()和调用普通代码块。静态相关代码块、属性初始化,在类加载时,就执行完毕,因此是优先于构造器和普通代码块执行的。
11. 创建一一个子类对象时(继承关系),他们的静态代码块,静态属性初始化,普通代码块,普通属性初始化,构造方法的调用顺序如下:
  1. 父类的静态代码块和静态属性(优先级一样,按定义顺序执行)
  2. 子类的静态代码块和静态属性(优先级一样,按定义顺序执行)
  3. 父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)
  4. 父类的构造方法
  5. 子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)
  6. 子类的构造方法//面试题
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号