静态初始化:是指执行静态初始化块里面的内容。
实例初始化:是指执行实例初始化块里面的内容。
构造方法:一个名称跟类的名称一样的方法,特殊在于不带返回值。

1.一个对象第一次被创建时,先要加载该对象所属的类,即对应的.class文件,当然如果类已经加载,再次创建该类的对象时,就不再需要重新加载类了。而一个类加载的时候,有三个部分需要加载,一个是静态变量,再然后是静态方法,然后是静态初始化块。 (见到第一次执行结果就知道了,由于没有创建实例所以初始化块不执行)

2.然后开始创建该类的实例了,当然如果静态方法跟静态初始化对象中有对象的创建时,就继续加载该对象的类,当然已经加载了该对象的类的话就不需要再次加 载了。那么对象实例的创建过程是什么呢?首先是成员变量的引入,然后是实例初始化块,之后才是构造方法,构造方法执行完成之后才算把这个对象给创建出来了。

在这个过程中,真正可以编写执行代码的地方有三个,静态初始化、实例初始化以及构造方法。从以上的分析中我们可以看到,这三个代码块的执行顺序是先类的静态初始化,再实例初始化,最后执行构造方法。也就是说,静态初始化是属于类加载的过程,所以它只执行一次,而实例初始化是每个对象创建时都会执行一次,而构造方法跟实例初始化其实也差不多,不过它在实例初始化之后执行,而且构造方法可以重载多个,执行哪个构造方法是根据你的选择来的。

http://blog.csdn.net/clam_clam/article/details/6689998

转载于:https://www.cnblogs.com/liufeifeifei/p/7678907.html

Java静态初始化,实例初始化以及构造方法相关推荐

  1. java 初始化块_详解Java中的实例初始化块(IIB)

    在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详细介绍下吧. Java 语言中,存在三种操作:方 ...

  2. 初始化器 java_来说说Java中的实例初始化器

    原标题:来说说Java中的实例初始化器 (点击上方公众号,可快速关注) 英文:programcreek 译文:strongme 链接:http://www.importnew.com/12893.ht ...

  3. Java静态变量的初始化

    Java静态变量的初始化 C/C++在脑海中的印象太深了,以至于一看到 static 的变量(Java中叫做:域),本能的以为它一旦初始化就不能改变了. 原来Java在还有 final . 转自:ht ...

  4. java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈

    Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...

  5. java中的实例初始化

    实例初始化有:实例变量初始化.实例初始化和静态初始化 1.执行顺序 下面这块代码,其执行顺序是怎么样的? public class Main {String s = "abc";p ...

  6. Java 静态变量的初始化

    静态变量的初始化 转载 https://blog.csdn.net/wanghao109/article/details/49591815 class Singleton{public static ...

  7. java静态多态实例_[后续] Java 中类的实例化过程之多态篇--(终于发现Java 原来是这样则的玩的)...

    这篇博文依然和大家分享Java 类的实例化过程 值多态篇.和往常一样,直接来上这这阿里的道面试题: 父类的声明如下所示: 1 public classParentD {2 //1.类变量进行初始化 3 ...

  8. java静态多态实例,java多态

    市面上对于多态往往有两种说法,一种是多态是通过方法的重载和方法的重写来实现多态,另外一种是父类型的引用指向子类型的对象或者接口类型的引用指向实现接口的类的实例. 其实两种说法都不全面,首先,要从字面上 ...

  9. java静态变量实例变量_java中静态变量和实例变量的区别

    实例变量:只有在创建了实例对象之后才会被分配空间,才可以使用 静态变量:不需要创建实例对象就可以直接使用类名进行引用 public class Different { public static in ...

  10. java 非静态 初始化_Java非静态代码块和实例初始化过程

    1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...

最新文章

  1. 教你用Keras和CNN建立模型识别神奇宝贝!(附代码)
  2. 使用汇编软件emu8086输出十次Hello World!
  3. java指定长度数组长度_Java声明数组时不能指定其长度
  4. SAP Hybris里搜索显示结果的实现原理
  5. 在GetSSL上申请和使用免费的SSL证书
  6. fastreport字体自适应_FastReport 自动换行与行高自适应及自动增加空行
  7. 链表面试题1:反转单链表,不带头结点。
  8. matlab期中考试卷,matlab期末考试试卷及答案.doc
  9. web.xml 详解
  10. 无痕驱动读写注入EAC BE
  11. 前端基础之HTML5音视频标签(video/audio)讲解
  12. python爬虫反虫之setcookie
  13. 三维可视化技术在智慧电厂中的作用
  14. Java各个版本区别
  15. Vue最佳实践(项目经验总结,定期更新)
  16. 乾 乾为天 乾上乾下
  17. K-means算法及文本聚类实践
  18. 2019智能手表推荐_智能手表哪款好?2020智能手表推荐
  19. 【2022】招商银行信用卡中心春招实习生技术岗B卷
  20. 关于FX3ga PLC modbus的使用

热门文章

  1. Java中的集合笔记
  2. MyEclipse极速优化
  3. Android UI -- 布局介绍(布局包括FrameLayout, LinearLayout, RelativeLayout, GridLayout)
  4. windows下scrapy安装问题,以及Twisted安装报错(error: Microsoft Visual C++ 14.0 is required.)完美解决办法...
  5. 【python】命令行解析工具getopt用法
  6. 【cs229-Lecture7】支持向量机(SVM)
  7. Convert .Net Program To Mono
  8. 第三节 MemcachedProviders之SesstionStateProvider(关于Session的讨论)
  9. Handler消息机制(三):一个线程有几个Looper?如何保证?
  10. 安卓高手之路之java层Binder