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

根据位置及声明的关键字不同,代码块可分为普通代码块、构造块、静态代码块、同步代码块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. 定制你自己的jQuery

    如何定制你自己的jQuery jQuery随着版本的不断升级代码量也随之增加,从1.0.0的不到两千行到现在的1.10.2已经突破1万行. 新的API不断增加,但有些在项目中并没有用到.jQuery团 ...

  2. Linq to XML的练习

    假如有以下XML: <?xml version="1.0" encoding="utf-8" ?> - <export> - <p ...

  3. MongoDB:锁机制

    --1 MongoDB 使用的锁 MongoDB 使用的是“readers-writer”锁, 可以支持并发但有很大的局限性,当一个读锁存在,许多读操作可以使用这把锁,然而, 当一个写锁的存在,一个单 ...

  4. 算法打基础——符号&递归解法

    第二节 算法复杂度分析的的基本符号及 递归关系式下的复杂度解法 这次的主要知识点是: 1.各种复杂度符号  2.递归复杂度解法: 分为三种 替换法(猜!)   递归树法    主定理 1各种复杂度符号 ...

  5. Object-c学习之路六(oc字符串文件读写)

    // // main.m // NSString // // Created by WildCat on 13-7-25. // Copyright (c) 2013年 wildcat. All ri ...

  6. Linux环境fork()函数详解

    Linux环境fork()函数详解 引言 先来看一段代码吧, 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include ...

  7. Java笔记:内部类

    1.把一个类放在另一类内部定义,这个定义在其他类里面的类就叫做内部类,包含内部类的类叫做外部类.内部类成员可以直接访问外部类的私有数据,但是外部类不能访问内部类的实现细节. 2.非静态内部类(没有st ...

  8. c# AutoResetEvent和ManualResetEvent

    网上有很多AutoResetEvent和ManualResetEvent的详细介绍,在这里不做过多详细的解释,写下自己的一点心得留作备忘. AutoResetEvent和ManualResetEven ...

  9. day7 面向对象编程

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  10. 用curl访问HTTPS站点并登录

    开发网站,少不了测试.现在的网站为了加强安全性,都启用了HTTPS协议.所谓HTTPS,也就是HTTP文本在SSL协议中传输.用curl命令行来测试HTTPS站点是个很有用的功能,写点脚本,就可以做功 ...