菜鸡的Java笔记 第十八 - java 代码块
代码块 code block
content (内容)
在程序结构之中使用“{}”定义的内容就称为代码块,但是会根据其声明的位置以及关键字的不同
代码块一共分为四种:
普通代码块(程序块),构造块,静态块,同步代码块(多线程)
一:普通代码块
普通代码块是定义在方法之中的代码块,其基本形式参考如下:
public class CodeBlock{
public static void main(String args[]){
{ // 普通代码块
int x = 10;
System.out.println(x);
}
}
}
如果现在一个方法代码很长的时候,你又怕重名变量定义,那么可以考虑使用普通代码块(java 方法一般都比较短)
二:构造块:
构造块指的是定义在类中间的结构
范例:定义一个构造块
class Member{
{
System.out.println("------构造块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}
构造块优先于构造方法执行,并且每一次对象实例化的时候都会执行构造块中的代码
构造块允许定义多个,按照顺序执行(然并卵)
三:静态代码块
静态块定义在一个类之中代码块,但是其必须使用 static 关键字来进行定义,对于静态块需要考虑两种情况:
在主类中定义,不再主类中定义
范例:在非主类中定义静态块
class Member{
{
System.out.println("------构造块------");
}
static{
System.out.println("------静态块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}
静态块优先于构造块执行,而且不管有多少个实例化对象,静态块只执行一次,静态块的主要作用是为了 static 属性初始化
class Member{
private static String uli; // static 属性
{
System.out.println("------构造块------");
}
static{
uli = “++++++++”; // 为 static属性赋值
System.out.println("------静态块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}
另外静态块也可以定义在主类之中
public class CodeBlock{
static{
System.out.println("+++++++++++++++++");
}
public static void main(String args[]){
System.out.println("fffffffffffffffffffff");
}
}
静态块的执行优先级在主方法之前执行
菜鸡的Java笔记 第十八 - java 代码块的更多相关文章
- 菜鸡的Java笔记 第二十八 - java 包的定义
包的主要作用以及定义 包的导入操作 系统常见的开发包 jar 程序命令 包的定义 在任何的操作系统之中都有一个统一的共识:同一个目录下不能够存在有相同的文 ...
- 菜鸡的Java笔记 第二十六 - java 内部类
/* innerClass 从实际的开发来看,真正写到内部类的时候是在很久以后了,短期内如果是自己编写代码,几乎是见不到内部类出现的 讲解它的目的第一个是为了解释概念 ...
- Java学习笔记二十八:Java中的接口
Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...
- 菜鸡的Java笔记 第二十四 - java 接口的基本定义
1.接口的基本定义以及使用形式 2.与接口有关的设计模式的初步认识 3.接口与抽象类的区别 接口与抽象类相比,接口的使用几率是最高的,所有的 ...
- 菜鸡的Java笔记 第二十二 - java 对象多态性
本次只是围绕着多态性的概念来进行讲解,但是所讲解的代码与实际的开发几乎没有关系,而且多态一定是在继承性的基础上才可以操作的, 而本次将使用类继承的关系来描述多态的性质,实际的开发中不会出 ...
- 菜鸡的Java笔记 第十九 - java 继承
继承性的主要目的,继承的实现,继承的限制 继承是面向对象中的第二大主要特点,其核心的本质在于:可以将父类的功能一直沿用下去 为什么需要继承? ...
- 菜鸡的Java笔记 第十六 - java 引用传递
referenceDelivery 引用传递是整个java 的精髓,也是所有初学者最难学的地方 引用的本质:同一块堆内存可以被不同的栈内存所指向 下面通过三道程序来进行引用传 ...
- 菜鸡的Java笔记 第十二 - java 构造方法与匿名对象
1.点 构造方法的作用以及定义要求 匿名对象的使用 构造方法: 只要出现()的都表示方法 构造方法就是类构造对象时调用的方法,主要用来实例化对象.> ...
- 菜鸡的Java笔记 第二十九 - java 单例设计模式
SingleCase 单例设计模式 1.单例设计模式的特点 2.多例设计模式的特点 内容 单例设计模式 现在如果说有这么一个程序类 class S ...
随机推荐
- Zookeeper 集群部署的那些事儿
简介 额...., &*$% 淘气! ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务. ZooKeeper本质上是一个分布式的小文件存储系统 ...
- Serverless 的价值
作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...
- cvechecker 漏洞扫描工具部署及效果展示
cvechecker 漏洞扫描工具部署及效果展示 介绍 cvechecker的目标是通过扫描已安装的软件并将结果与CVE数据库进行匹配来报告系统上可能存在的漏洞. 官方提示: 可能会产生许多误报(漏洞 ...
- 《python编程:从入门到实践》课后习题及答案
转载: <Python编程:从入门到实践>课后习题及答案-码农之家 (xz577.com) <Python编程:从入门到实践>课后习题及答案 - 信德维拉 - 博客园 (cnb ...
- Vue3学习(六)之使用Vue3进行数据绑定及显示列表数据
一.写在前面 说来还是比较惭愧的,从周二开始事就比较多,周三还电脑坏了,然后修电脑等等一些杂事,忙的团团转,因为周二.周三自己走的过多了,导致不敢直腰,周四卧床一天. 之前都听说<陈情令> ...
- Hadoop面试题(四)——YARN
1.简述hadoop1与hadoop2 的架构异同 1)加入了yarn解决了资源调度的问题. 2)加入了对zookeeper的支持实现比较可靠的高可用. 2.为什么会产生 yarn,它解决了什么问题, ...
- 【UE4 调试】提升UE4源码版本Setup下载速度
更改setup.bat部分参数
- HCNP Routing&Switching之BGP防环机制和路由聚合
前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...
- 【二食堂】Alpha - Scrum Meeting 7
Scrum Meeting 7 例会时间:4.17 11:40 - 12:00 进度情况 组员 昨日进度 今日任务 李健 1. 继续文本区域的开发,先完成目前简陋的添加方式,再区实现勾选功能issue ...
- Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作
Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作 一.背景 二.需求 三.前置条件 四.项目结构 五.网关层代码的编写 1.引入jar包 2.自定义授权管理器 ...