菜鸡的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 ...
随机推荐
- SpringBoot入门报错 Whitelabel Error Page的总结
刚入门SpringBoot,编写helloControl类,去访问本地端口,无缘无故报了这个错误 Whitelabel Error Page 总结了下,目前我碰到的有三种会导致这种情况 1.当你的 S ...
- mysql从零开始之MySQL PHP 语法
MySQL PHP 语法 MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP,在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛. 在本教程中我们大 ...
- 打开属性页,分别在Debug和Release下将其配置类型改为:静态库(.lib);
右键工程->属性 配置类型里面的下拉菜单选择静态库
- redis编译安装、哨兵、集群
编译安装 #下载源代码解压 wget https://download.redis.io/releases/redis-5.0.13.tar.gz -P /home/ tar -xvf /home/r ...
- 使用 PyTorch Lightning 将深度学习管道速度提高 10 倍
前言 本文介绍了如何使用 PyTorch Lightning 构建高效且快速的深度学习管道,主要包括有为什么优化深度学习管道很重要.使用 PyTorch Lightning 加快实验周期的六种 ...
- zabbix和prometheus的优缺点对比
使用Prometheus(https://github.com/prometheus)原生的k8s服务发现驱动,采集容器化信息:通过微服务参数配置,暴露运行状态信息提供给prometheus,实现微服 ...
- 某个buuctf的题(easy_tornado)
题目:http://88099f53-12b6-470a-9993-b73e4155940e.node3.buuoj.cn/ 1首先看三个文件的内容 2简单分析 如果出题人没整一些花里胡哨的,那么fl ...
- Windows内核开发-9-32位和64位的区别
Windows内核开发-9-32位和64位的区别 32位的应用程序可以完美再64位的电脑上运行,而32位的内核驱动无法再64位的电脑上运行,或者64位的驱动无法在32位的应用程序上运行.这是为什么呢. ...
- 第五次Alpha Scrum Meeting
本次会议为Alpha阶段第五次Scrum Meeting会议 会议概要 会议时间:2021年4月30日 会议地点:线上会议 会议时长:15min 会议内容简介:本次会议以主要围绕卡牌对接的诸多问题与对 ...
- 修改git仓库的远程地址
在我们开发的过程中,代码一般是由 git 来管理的,但有些时候我们的 git 仓库的地址可能发生了变换,比如我们使用的 gitLab 地址发生了变化,那么这个时候如何来将原项目的 git 地址进行修改 ...