概念:代码块是指用{}括起来的一段代码。

根据位置及声明的关键字不同,代码块可分为普通代码块、构造块、静态代码块、同步代码块4种。

1.普通代码块:

直接在方法中或在语句中定义

public class Test2 {

    public static void main(String[] args) {
{ //定义普通代码块
int x = 30; //定义局部变量
System.out.println("普通代码块 x="+x);
} int x = 100; //与局部变量名称相同
System.out.println("代码块之外 x="+x);
} }

运行结果:

普通代码块 x=30
代码块之外 x=100

2.构造块:

构造代码块是直接写在类中的代码块。

public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
} } public class Test2 { public static void main(String[] args) {
new Demo();
new Demo();
} }

执行结果:

1、构造块。
2、构造方法
1、构造块。
2、构造方法

从输出结果发现:构造块优于构造方法执行,而且每次实例化对象时都会执行构造块。

静态代码块:

静态代码块是使用static关键字声明的代码块。

public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
static{
System.out.println("0、静态代码块");//定义静态代码块
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
} } public class Test2 {
static{ //在主方法所在的类中定义静态代码块
System.out.println("在主方法所在的类中定义静态代码块");
}
public static void main(String[] args) {
new Demo(); //实例化对象
new Demo();
} }

执行结果:

在主方法所在的类中定义静态代码块
0、静态代码块
1、构造块。
2、构造方法
1、构造块。
2、构造方法

从输出结果发现:静态代码块优于主方法执行,在类中定义的静态代码块优于构造方法执行,而且不管产生多少个对象,静态代码块只执行一次。

4.同步代码块:

在代码块上加上synchronized关键字,主要使用在多线程上,此代码块称为同步代码块格式如下:

  synchronized(同步对象){

  需要同步的代码;

  }

后续多线程再详细练习。

面向对象---java代码块的更多相关文章

  1. Java代码块详解

    Java中代码块指的是用 {} 包围的代码集合,分为4种:普通代码块,静态代码块,同步代码块,构造代码块 普通代码块: 定义:在方法.循环.判断等语句中出现的代码块 修饰:只能用标签修饰 位置:普通代 ...

  2. java代码块的理解

    最近在复习java基础,在看到java代码块的时候,忽然发现自己貌似对于java代码块一无所知,于是赶紧对着一些资料实战演练了一把. 对于java代码块,不难根据名称看出其实就是一些java语句的集合 ...

  3. java代码块执行顺序

    父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...

  4. 夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...

  5. 夯实Java基础系列7:Java 代码块和执行顺序

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. Java 代码块详解

    注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 注:本文原链接:https://www.cnblogs.com/chloneda/p/java-c ...

  7. 0023 Java学习笔记-面向对象-初始化代码块

    初始化代码块 在18篇-类的基本要素中说到,类的三大成员:成员变量.构造方法.方法,初始化代码块是类的第4个成员 初始化块用于对类或者对象的初始化, 一个类的初始化块可以有0-多个,按先后顺序执行 跟 ...

  8. 《java入门第一季》之面向对象(代码块一网打尽)

    上一篇里面对代码块做出介绍,这里给出一个面试题,加深印象. 如有毁三观的地方,请见谅.拒绝黄赌毒 写程序的执行结果. class Student { static { System.out.print ...

  9. 08 java代码块的概述和分类

    08.01_面向对象(代码块的概述和分类) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代 ...

随机推荐

  1. Mvc快速开发

    Asp.Net Mvc + ComBoost.Mvc快速开发   ComBoost项目地址 http://comboost.wodsoft.com https://github.com/Kation/ ...

  2. 关于 MVCC 的基础

    作为第一篇对 MVCC 的学习材料,以下内容翻译自 Wikipedia. 1. 什么是MVCC 1.1 基础概念 MVCC,Multi-Version Concurrency Control,多版本并 ...

  3. 【Oracle】-【COMMIT对索引的影响】-从trace看COMMIT对索引的影响

    之前看过老杨http://yangtingkun.itpub.net/post/468/231000的一篇文章,讲述了INSERT操作对全文索引无操作,但DELETE时为了防止删除的数据仍能通过索引的 ...

  4. Spring注解:@Resource、@PreConstruct、@PreDestroy、@Component

    要使用Spring的注解,必须在XML文件中配置有属性,告诉人家你要使用注解,Spring容器才会去加载类上的注解: <?xml version="1.0" encoding ...

  5. TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)

    TFS二次开发的数据统计以PBI.Bug.Sprint等为例(一) 在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI.BUG等工作项进行统计.在本文中将大略讲解如果进行这些数据统计. 一 ...

  6. C/C++基础知识总结——类与对象

    1. 面向对象程序设计的特点 1.1 抽象 1.2 封装 1.3 继承 1.4 多态 (1) 分为:强制多态.重载多态.类型参数化多态.包含多态 (2) 强制多态:类型转换 重载多态: 类型参数化多态 ...

  7. CPU 硬盘性能

    CPU 硬盘性能到底相差多少 本文以一个现代的.实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据吞吐量.通过粗略的估算PC各 ...

  8. 封装使用ViewHolder模式的Adapter组件,及用其快速实现聊天界面

    大家都对viewholder模式并不陌生吧,避免了重复调用findViewbyId,并对convertview进行重用.但是,开发中可能会有这样的困扰,每次在创建Adapter类时,总会有许多的重复代 ...

  9. 关于 HttpModule配置问题

    在经典模式下,配置到System.web节点 在IIS7以上的集成模式下,要配置到<system.webServer>节点 否则会出现类似一下的错误: 具体配置如下: <config ...

  10. 老鸟都应该注意的git 提交规范

    不知道大家有没有看过自己项目的git 提交信息-----我看过好多次 ,不忍直视  然后提醒一起的小伙伴 :大家规范点 信息要详细, 过段时间再看下 ,还是一样. 相信很多猿都有这样的感受,对于垃圾的 ...