Java:构造代码块,静态代码块
本文内容:
- 局部代码块
- 构造代码块
- 静态代码块
- 补充
首发日期:2018-03-28
局部代码块:
局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中
构造代码块:
- 构造函数只对对应的对象进行初始化,构造代码块给类的所有对象进行初始化。
- 由于构造代码块给类的所有对象进行初始化,所以对于每个对象都要初始化成一样值的变量,可以防止构造代码块中初始化。
class Person{
String gender;
int age;
{ //构造代码块
System.out.println("构造代码块运行阶段");
gender="男";
}
Person(){//构造函数
System.out.println("构造函数Person()运行阶段");
}
Person(int age){//构造函数
System.out.println("构造函数Person(int age)运行阶段");
this.age=age;
}
}
public class Demo {
public static void main(String[] args) {
Person p1=new Person();
System.out.println(p1.gender);
Person p2=new Person(18);
System.out.println(p2.gender);
}
}
上述代码结果:
构造代码块运行阶段
构造函数Person()运行阶段
男
构造代码块运行阶段
构造函数Person(int age)运行阶段
男
构造代码块的好处的例子:
构造函数版本:

构造代码块版本:

静态代码块:
- 静态代码块与构造代码块不同的是,它只执行一次,用于对整个类进行初始化,通常是对类变量进行初始化处理。
- 静态代码块中只能修改类变量。
- 静态代码块的执行比主函数要早。
- 有时候因为静态代码块只执行一次。所以有时候会用来“显示程序流程”。
class Person{
static String gender;
int age;
static {
System.out.println("静态代码块执行完成");
gender="男";//更改的变量只能是类变量
}
Person(){//构造函数
System.out.println("构造函数Person()运行阶段");
}
Person(int age){//构造函数
System.out.println("构造函数Person(int age)运行阶段");
this.age=age;
}
}
public class Demo {
public static void main(String[] args) {
Person p1=new Person();
System.out.println(p1.gender);
Person p2=new Person(18);
System.out.println(p2.gender);
}
}
上述代码执行结果:
静态代码块执行完成
构造函数Person()运行阶段
男
构造函数Person(int age)运行阶段
男
补充:
- 各个初始化块的运行顺序:静态代码块-》构造代码块-》构造方法
Java:构造代码块,静态代码块的更多相关文章
- java中父类子类静态代码块、构造代码块执行顺序
父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...
- 【code block】局部代码块+构造代码块+静态代码块
1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void mai ...
- java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
- JAVA程序执行顺序(静态代码块》非静态代码块》静态方法》构造函数)
总结:静态代码块总是最先执行. 非静态代码块跟非静态方法一样,跟对象有关.只不过非静态代码块在构造函数之前执行. 父类非静态代码块.构造函数执行完毕后(相当于父类对象初始化完成), 才开始执行子类的非 ...
- Java子父类间静态代码块、非静态代码块、构造方法的执行顺序
子类A继承父类B,A a=new A(); 正确的执行顺序是:父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A ...
- Java--普通代码块静态代码块执行顺序
class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普 ...
- 非静态代码块(非static初始化块)&静态代码块(static初始化块)
非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块: ...
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- Java中普通代码块,构造代码块,静态代码块执行顺序
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- 【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在 ...
随机推荐
- 【微服务】.netCore eShopOnContainers 部署实践《一》
官方说明文档 -------------------------------------------------------------- # eShopOnContainers - Microser ...
- golang中GOPATH的简单理解
1.为什么要配置GOPATH 配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg sr ...
- C# TableLayoutPanel使用方法
一.利用TableLayoutPanel类展示表格,以10行5列为例 第1步:在前台创建一个panel,使TableLayoutPanel对象填充其内部. 第2步:创建TableLayoutPanel ...
- spring cloud(断路器——初学四)
在分布式架构中,当某个服务单元发生故障后,能通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待. Netflix Hystrix 在Spring Cloud中使用了Hystrix 来实 ...
- 微服务架构集大成者—Spring Cloud (转载)
软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...
- Spring Security OAuth笔记
因为工作需要,系统权限安全方面可能要用到Spring Security OAuth2.0,所以,近几天了解了一下OAuth相关的东西.目前好像还没有系统的学习资料,学习主要是通过博客,内容都是大同小异 ...
- Nginx 的两种认证方式
简介: 今天来研究一下 Nginx 的两种认证方式. 1.auth_basic 本机认证 2.ngx_http_auth_request_module 第三方认证 一.安装 Nginx shell & ...
- 关于unity3d的ios帧频问题.
原文:http://blog.csdn.net/spiritring/article/details/17606803 static void Start() { if (Application.pl ...
- Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现
菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作. 提供一个菜单查询接口,查询整颗菜单树形结构. http/modules/menu.js 添加 findMenuTree 接口. ...
- ABP默认生成数据库结构
数据库设计文档 -- MyFirstABP 数据库设计文档 数据库名:MyFirstABP 序号 表名 说明 1 AbpFeatures 2 AbpEditions 3 AbpLanguage ...