高频面试题3 类初始化过程与实例初始化
类初始化过程
1,一个类要创建实例,需要先加载并初始化该类。main方法所在的类需要先加载和初始化
2,一个子类要初始化需要先初始化父类
3,一个类初始化就是执行<clinit>()方法<clinit>() 方法由静态类变量显示赋值代码和静态代码块组成。类变量显示赋值代码和静态代码块代码从上到下顺序执行<clinit>() 方法只执行一次。
实例化初始过程
1 实例初始化就是执行<init>()方法
<init>()方法可能重载有多个,有几个构造器就有几个<init>()方法
<init>()方法由非静态实例变量显示赋值代码和非静态代码块/对应构造器代码组成。
非静态实例变量显式赋值代码和非静态代码块代码从上到下顺序执行,而对应构造器的代码最后执行。
每次创建实例对象,调用对应构造器,执行的就是对应的<init>()方法。
<init>()方法的首行是super()或super(实参列表),即对应父类的<init>()方法
类初始化过程:
class Son extends Fathor
该过程执行<clinit>()方法
F.静态变量/静态方法顺序执行>S.静态变量/静态方法顺序执行
实例化
Son s = new Son();
实例化son 就要先实例化fathor
子类init()方法先执行super();实例化父类。
F.变量/方法(顺序执行)(如果子类实现了方法重写此处执行的是子类的重写方法)>无参构造> S..变量/方法(顺序执行)>无参构造>
方法的重写override
1 final 静态 private 都不可以重写2 子类如果重写了父类的方法,通过子类对象调用的一定是子类重写过的代码非静态方法默认的调用对象是thisthis对象在构造器或者说inti()方法中就是正在创建的对象。
高频面试题3 类初始化过程与实例初始化相关推荐
- python类继承实例_python类继承与子类实例初始化用法分析
这篇文章主要介绍了python类继承与子类实例初始化用法,实例分析了Python类的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下 [ 先贴参考书籍原文(中文英文对照)] __init__方法介 ...
- java 对象初始化过程_Java——对象初始化顺序使用详解
一. 代码块的概念 在探究对象初始化顺序之前,我们先通过代码来了解一下代码块的概念. class Test{ public static String str1; //静态字段 public Stri ...
- python 类继承与子类实例初始化
__init__方法介绍: 如果其基类也具有__init__(), 必须显式地在__init__()调用它, 以保证能够适当地初始化它的基类部分;例如: BaseClass.__init__(self ...
- Java类的连接与初始化 (及2013阿里初始化笔试题解析)
2019独角兽企业重金招聘Python工程师标准>>> Java虚拟机通过装载.连接.初始化来使得一个Java类型可以被Java程序所使用,如下图所示,其中连接过程又分为验证.准备. ...
- 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起
在 IBM Bluemix 云平台上开发并部署您的下一个应用. 开始您的试用 问题引入 近日我在调试一个枚举类型的解析器程序,该解析器是将数据库内一万多条枚举代码装载到缓存中,为了实现快速定位枚举代码 ...
- 解析 Java 类和对象的初始化过程
跳转到主要内容 中国 [ 选择 ] dW 全部内容-------------- AIX and UNIX Info Mgmt Lotus Rational WebSphere-------- ...
- java类静态初始化_Java静态代码块和类初始化、实例初始化过程
1. 静态代码块 静态代码块:定义在类中方法外,使用static修饰 ①可以为类变量(静态变量)初始化 ②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次 ③若有多个静态代码块, ...
- 【Java4】实例初始化,类初始化,/接口,多态,final/static,权限修饰符/native
文章目录 1.实例初始化过程:有几个构造器,就会有几个实例初始化方法 2.实例初始化和类初始化结合:先类(静态)后实 3.接口:只有abstract可省 3.1 鸟类案例:Flyable相当于父类的一 ...
- 类初始化与实例初始化
类初始化的过程 1.类创建实例的时候会先加载和初始化,main方法所在的类会先加载和初始化 2.子类初始化时,要先初始化父类 3. 类初始化就是执行方法,其仅执行一次 ()方法由静态类变量显式赋值代码 ...
最新文章
- java限频_单个用户及Ip请求频率限制思路(附java实现)
- 使用java自带的日志管理_java日志管理
- greenplum 查询出来的数字加减日期_Python实践代码总结第5集(日期相关处理)
- html实现页面弹球,使用html+css+js实现弹球游戏
- xlrd合并单元格的读取的注意事项
- Java 8 特性 – 终极手册(一)
- 矩阵的“之”字形打印
- 一个九号mini平衡车电池修复过程
- android webview 之 AgentWeb的使用
- MySQL 5.7详细下载安装配置教程
- Spark Streaming之容错性
- 数据库异常用户sa登录失败_Sa登录失败
- Android自定义一个时间轴,通过ListView来实现时间轴的效果
- Install: pymongo
- 编写c语言数据从结构时头文件,C语言与数据结构 实验指导.doc
- Linux安装zabbix4
- 另辟蹊径,独树一帜的写作方法
- java解压缩zip、rar
- 深度学习笔记之一—— 生翻 deeplearning(2015,Yann LeCun, Yoshua Bengio Geoffrey Hinton)
- 一键自动AI抠图,堪比人工PS!
热门文章
- 歪批IT系列之“伪热门”人才
- 谈新手对CString的使用
- 重磅!尤雨溪公布 Vue 3.0 开发路线
- 程序员一定要提升技术之外的能力
- php 5.5.12 yaf,yaf框架教程(5)- yaf框架的启动文件
- 苹果html5跑分排行,UC浏览器HTML5跑分创新高 升全球第一
- vmci.sys版本不正确_王者荣耀:当前版本辅助的正确玩法思路,别再被骂,也别再梦游了...
- Pytorch采坑记录:DDP加载之前的checkpoint后loss上升(metric下降)
- TypeError: cannot convert the series to <class ‘float‘>问题解决
- 直接写和放在函数中不同的R语言用法