实例初始化有:实例变量初始化、实例初始化和静态初始化

1、执行顺序

下面这块代码,其执行顺序是怎么样的?

public class Main
{String s = "abc";public Main(){System.out.println("constructor called");}static {System.out.println("static initializer called");}{System.out.println("instance initializer called");}public static void main(String[] args){new Main();new Main();}
}

输出:

static initializer called
instance initializer called
constructor called
instance initializer called
constructor called

2、java实例初始化是如何工作的?

上面的实例初始化包含一个打印语句。要理解如何工作的。我们以变量赋值语句为例

int b = 0可以写成int b; b = 0;

因此实例初始化和实例变量初始化是一样的。

3、什么时候实例初始化是有用的?

实例初始化的使用非常罕见,但是在下面两种情况下,是实例变量初始化的很好的一种替换方式。

(1)初始化代码要处理异常

(2)操作运算是不能用实例变量初始化来表示的

当然,这样的代码可以写在构造函数中,但是当有多个构造函数时,必须在每个构造函数中添加这些代码。

实例初始化,只需要写一次,不管是否用构造函数创建的对象,都会执行。另一种情况就是匿名内部类时

java中的实例初始化相关推荐

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

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

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

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

  3. [转载] Java 语言中的实例初始化块 ( IIB) 详解

    参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...

  4. java里的初始化块_[转载] Java 语言中的实例初始化块 ( IIB) 详解

    参考链接: Java中的实例初始化块(IIB) 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB ).不过我觉得介绍的有点简单了,于是,再写一篇文章详 ...

  5. Java 语言中的实例初始化块 ( IIB) 详解

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

  6. java中的实例变量

    简介 在类的声明中,属性是用变量来表示的.这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的.类的每个对象维护它自己的一份实例变量的副本. java中的实例变量 含义: 实例变量 ...

  7. php中继承过来的类初始化顺序,java_图文详解Java中class的初始化顺序,class的装载 在讲class的初始化 - phpStudy...

    图文详解Java中class的初始化顺序 class的装载 在讲class的初始化之前,我们来讲解下class的装载顺序. 以下摘自<Thinking in Java 4> 由于Java ...

  8. Java中数组怎么初始化?数组初始化方法

    关于Java中数组怎么初始化的文章早已是非常多了,本文是对我个人过往学习Java,理解及应用Java数组的一个总结.此文内容涉及Java中数组初始化的三大方法等相关问题,希望对大家有所帮助. Java ...

  9. Java中定义实例变量时指定初始化值顺序

    定义实例变量时指定的初始值.初始化块中为实例变量指定的初始值.构造器中为实例变量指定的初始值,三者的作用完全类似,都用于对实例变量指定初始值.经过编译器处理之后,它们对应的赋值语句都被合并到构造器中. ...

最新文章

  1. jfinal linux 乱码,分享JFinal中renderFile方法中文文件名乱码问题的解决办法
  2. Python中数字以及算数运算符的相关使用
  3. 从生命周期去看互联网金融产品的风险管理框架
  4. python | 三种可变参数简述
  5. 8、play框架中持久层操作
  6. 红石32位cpu通用计算机,我的世界无命令方块32位红石电脑装置详解
  7. 2019日历全年一张_python 日历模块calendar
  8. Networkx参考手册
  9. 初识python之汇率转换篇
  10. poj-2115 C Looooops 扩展欧几里德算法求最小非负整数解
  11. Kibana常用搜索语法
  12. 路由器设置多WAN口要点技巧
  13. 【STM8】IAR 项目新建步骤
  14. phpstudy打不开localhost【已解决】
  15. 什么是Type-c口?Type-c口有什么优势?
  16. 内容制作新纪元:AIGC技术的革命性影响
  17. 编码的奥秘:发报机与断电器
  18. Android 耳机检测原理介绍
  19. 【C++】侯捷C++面向对象高级编程(下)
  20. 计算机模拟方法辅助建筑设计,计算机模拟辅助建筑与环境设计技术.pdf

热门文章

  1. vc 版本 宏 (zz.IS2120@BG57IV3)
  2. 财务人员学python有用吗-一个来自35岁职场高管的忠告:Python为什么不得不学?...
  3. python写的游戏怎么给别人玩-用python写游戏脚本原来这么简单
  4. 学好python工资一般多少钱-学会Python后,月薪40k是什么水平?
  5. 从零开始学python电子书-从零开始学Python程序设计 PDF 完整影印版
  6. python爬虫实例-Python爬虫案例集合
  7. python怎么学最快-浅谈:从为什么学习python到如何学好python
  8. python叫什么-python中什么叫类
  9. 老师学python可以干嘛-python语言可以干什么
  10. python 绘制折线图-怎样用python绘制折线图