菜鸡的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 ...
随机推荐
- Redis基础数据结构-基于2.8
SDS SDS是Redis中String的底层数据结构,数据结构如下,SDS保留了传统的C字符串表达方式即数组的最后一个元素是'/0'结尾.此外还添加了两个字段len和free,其中len表示字符串长 ...
- Netty常用招式——ChannelHandler与编解码
本文是Netty系列第8篇 上一篇文章我们深入学习了Netty逻辑架构中的核心组件ChannelHandler和ChannelPipeline,并介绍了它在日常开发使用中的最佳实践.文中也提到了,Ch ...
- C# 类拓展方法
C#类拓展方法 要求: 扩展方法类必须为静态类: 拓展方法必须为静态方法,参数为this+需拓展类对象: 多个类拓展方法可以写在一个拓展类中: public class TestExtension { ...
- 极简SpringBoot指南-Chapter02-Spring依赖注入的方式
仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started ...
- Dapr + .NET Core实战(十二)服务调用之GRPC
什么是GRPC gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. gRPC 的主要优点是: 高性能轻量级 RPC 框架. 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的 ...
- MySQL ENGINES 引擎
引擎 存储引擎是数据库底层软件组织. 数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据. 不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能. MySQL的核心就是存储引擎 ...
- 在Excel中,不利用任何第三方工具,生成二维码
有同事提需求,要批量生成二维码.谈了之后,我觉得可以做个excel文件,把要打印的内容放进去,然后给每行数据生成一个二维码.下一步就要在Excel里面生成二维码.问了一下度娘,貌似都得利用一些第三方工 ...
- Java:并发笔记-07
Java:并发笔记-07 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 6. 共享模型之不可变 本章内容 不可变类的使用 不可变类设计 无状态类设计 6.1 ...
- [Beta]the Agiles Scrum Meeting 12
会议时间:2020.5.27 21:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 issue yjy 帮助解决技术问题 tq 撰写技术博客 wjx 博客评分界面美化 dzx 博客评分界 ...
- Codeforces Round #573 (Div. 2) D题题解
一.题目 Tokitsukaze, CSL and Stone Game Tokitsukaze和CSL正在玩一些石头游戏. 一开始,有n堆的石头,第i堆石头数记为 \(a_i\),两人轮 ...