初始化块:在类实例化过程中初始化执行顺序是先执行静态初始化块,然后执行普通初始化块,最后执行构造函数,而且静态初始化只在第一次
被实例化时执行且只执行一次。
public class HelloWorld {
   
    String name; // 声明变量name
 String sex; // 声明变量sex
 static int age;// 声明静态变量age
   
    // 构造方法
 public    HelloWorld    () {
  System.out.println("通过构造方法初始化name");
  name = "tom";
 }
   
    // 初始化块
 {
  System.out.println("通过普通初始化块初始化sex");
  sex = "男";
 }
   
    // 静态初始化块
   static      {
  System.out.println("通过静态初始化块初始化age");
  age = 20;
 }
   
 public void show() {
  System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);
 }
   
 public static void main(String[] args) {
       
        // 创建对象
  HelloWorld hello = new HelloWorld();
  // 调用对象的show方法
        hello.show();
  HelloWorld hello1=new HelloWorld();
  hello1.show();
 }
}
执行结果:
通过静态初始化块初始化age
通过普通初始化块初始化sex
通过构造方法初始化name
姓名:tom,性别:男,年龄:20
通过普通初始化块初始化sex
通过构造方法初始化name
姓名:tom,性别:男,年龄:20

java类的初始化程序块以及被实例化时候的执行顺序的更多相关文章

  1. java类的初始化和构造函数

    本人小白一枚,看java类的初始化的时候好晕的说,我觉着书上尽管说的对.但总认为有些信息没说出来,没说清楚,看了好多文章博客的,如今有些感悟,来小写下总结,也算是为以后再次复习种个好果子. 先摘一下书 ...

  2. 图示Java类的初始化顺序

    Java类的初始化顺序   在开发中,知道Java类的初始化顺序才能让我们更加清楚地掌握程序的执行流程.先把结论贴出来,Java里,从图里的1~6,分别按顺序执行.   以下为代码验证阶段,一共三个类 ...

  3. 编写Java程序,观察类启动时静态代码块和main()的执行顺序

    返回本章节 返回作业目录 需求说明: 观察类启动时静态代码块和main()的执行顺序 在Book类中定义静态代码块. 在Book中分别定义一个普通实例方法和静态方法. 在Book类的静态代码块中调用静 ...

  4. Java 中 try、catch、finally 语句块的执行顺序

    假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1.正常执行顺序:try → catch → finally → 其他代码 2.try,catch和finally ...

  5. java类的初始化块/执行顺序,实例化对象数据赋值

    java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值.与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只 ...

  6. jvm(2)类的初始化(二)和实例化

    深入理解Java对象的创建过程:类的初始化与实例化 对象实例化内存分析: 对内存分配情况分析最常见的示例便是对象实例化: Object obj = new Object(); 这段代码的执行会涉及ja ...

  7. 分析java类的初始化契机

    分析java类的静态成员变量初始化先于非静态成员变量   依上图中当class字节码文件被jvm虚拟机加载到内存中依次经过 连接 验证:对字节码进行验证 准备:给静态变量分配内存并赋予变量类型各自的默 ...

  8. Java类的初始化顺序 (静态变量、静态初始化块、变量、初始...

    很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...

  9. java类的初始化顺序

    在java中,当我们new一个对象时,对象中的成员,初始化块以及构造方法的加载是有一定的顺序的,看下面一副图: 一.单类(无基类)下的初始化顺序: public class Parent { stat ...

随机推荐

  1. [Verilog] parameter

    parameter和localparam的作用范围均为本模块,区别在于前者可用于在实例化模块的时候进行参数的传递. 用已定义的参数对变量赋值时,按照补码的方式处理,若出现溢出的情况,则截取低位.

  2. (一)环境安装之Java

    一.安装JDK 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. Java环境分JDK和JRE ,JDK就是Java Development Kit. 简单的说JDK是面向开发人员使用的S ...

  3. [转]微信小程序开发(二)图片上传+服务端接收

    本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...

  4. [转].NET Core之Entity Framework Core 你如何创建 DbContext

    本文转自:http://www.cnblogs.com/tdws/p/5874212.html 本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明博客园蜗牛原文地址 http://www. ...

  5. bootstrap --datetimepicker之时间段选择

    文件引入 <script type="text/javascript" src="css/jquery-3.2.1.js"></script& ...

  6. go语言中文处理

    中文在go语言中占三个字节,len 或者 range 一个含中文的字符串跟我们预期的结果不一样 求长度用 utf8.RuneCountInString,遍历用 rune func main() { t ...

  7. 项目管理系统 TAIGA 部署

    题记 使用了 MantisBT 一段时间,觉得功能太少,只局限在错误跟踪,而且操作体验比较差,界面很糟糕,很早就想将其换掉. 偶然发现一个很不错的新选择:Taiga,于是就试着将其部署下来,发现绝对是 ...

  8. C# 矩阵运算和一些基本的几何运算

    以前工作中写的,这里备个份,有可能用到 基本的矩阵运算类,测试20阶以内应该没啥问题,超过20阶不好使... /// <summary> /// 矩阵 异常 512索引 1024无解 20 ...

  9. 前端使用express+node实现接口模拟及websocket通讯

    简述如何使用node+express实现接口连接及入门websocket通讯.使用技术栈:node + express + typescript + websocket. 1.接口实现 这里描述前端如 ...

  10. mui 窗体切换

    手机实现窗体切换 1.在5+环境下(即H5app) 先初始化: mui.init({ subpages:[{ url:"page1.html",//子页面HTML地址,支持本地地址 ...