Java中普通代码块,构造代码块,静态代码块区别及代码

示例

//执行顺序:(优先级从高到低。)静态代码块>mian方法

>构造代码块>构造方法。

其中静态代码块只执行一次。构造代码块在每次创建对象

是都会执行。

1 普通代码块

复制代码

1 //普通代码块:在方法或语句中出现的{}就称为普通代

码块。普通代码块和一般的语句执行顺序由他们在代码中

出现的次序决定--“先出现先执行”

2 public class CodeBlock01{

3       public static void main(String[] args){

4

5             {

6               int x=3;

7               System.out.println("1,普通代码块内

的变量x="+x);

8             }

9

10             int x=1;

11             System.out.println("主方法内的变量

x="+x);

12

13             {

14                int y=7;

15                System.out.println("2,普通代码块

内的变量y="+y);

16             }

17           }

18     }

19

20     /*

21     运行结果:

22     1,普通代码块内的变量x=3

23          主方法内的变量x=1

24          2,普通代码块内的变量y=7

25     */

26

复制代码

2 构造代码块

复制代码

//构造块:直接在类中定义且没有加static关键字的代码

块称为{}构造代码块。构造代码块在创建对象时被调用,

每次创建对象都会被调用,并且构造代码块的执行次序优

先于类构造函数。

public class CodeBlock02{

{

System.out.println("第一代码块");

}

public CodeBlock02(){

System.out.println("构造方法");

}

{

System.out.println("第二构造块");

}

public static void main(String[] args){

new CodeBlock02();

new CodeBlock02();

new CodeBlock02();

}

}

/*

*

执行结果:

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

*/

复制代码

3 静态代码块

复制代码

//静态代码块:在java中使用static关键字声明的代码块。

静态块用于初始化类,为类的属性初始化。每个静态代码

块只会执行一次。由于JVM在加载类时会执行静态代码块,

所以静态代码块先于主方法执行。

//如果类中包含多个静态代码块,那么将按照"先定义的代

码先执行,后定义的代码后执行"。

//注意:1 静态代码块不能存在于任何方法体内。2 静态

代码块不能直接访问静态实例变量和实例方法,需要通过

类的实例对象来访问。

class Code{

{

System.out.println("Code的构造块");

}

static{

System.out.println("Code的静态代码块");

}

public Code(){

System.out.println("Code的构造方法");

}

}

public class CodeBlock03{

{

System.out.println("CodeBlock03的构造块");

}

static{

System.out.println("CodeBlock03的静态代码块

");

}

public CodeBlock03(){

System.out.println("CodeBlock03的构造

方法");

}

public static void main(String[] args){

System.out.println("CodeBlock03的主方法

");

new Code();

new Code();

new CodeBlock03();

new CodeBlock03();

}

}

/*

CodeBlock03的静态代码块

CodeBlock03的主方法

Code的静态代码块

Code的构造块

Code的构造方法

Code的构造块

Code的构造方法

CodeBlock03的构造块

CodeBlock03的构造方法

CodeBlock03的构造块

CodeBlock03的构造方法

*/

转载于:https://blog.51cto.com/swordofgold/1684521

Java中普通代码块,构造代码块,静态代码块区别相关推荐

  1. 父类静态代码块、非静态代码块、构造方法、子类静态代码块、子类非静态代码块、子类构造方法执行顺序

    父类 public class Father {static{System.out.println("父类静态代码块");}{System.out.println("父类 ...

  2. java中的后台线程、前台线程、守护线程区别

    java中的后台线程.前台线程.守护线程区别 区别和联系 区别 联系 区别和联系 区别 后台线程和守护线程是一样的. 后台线程不会阻止进程的终止,而前台线程会, 可以在任何时候将前台线程修改为后台线程 ...

  3. Java学习笔记1:Java中有关print、println、printf的用法和区别

    Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...

  4. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序

    package com.uno.staticBlock; import java.lang.reflect.Field; import java.util.Vector; /** * 验证静态代码块和 ...

  5. 构造代码块,初始代码块和静态代码块的执行顺序

    先看结果! 静态代码块static{} -> 父类构造 -> 初始代码块{} -> 子类构造 // 静态代码块只在第一次实例化类的时候执行一次,再次实例化的时候不再执行 packag ...

  6. java同步方法必须是静态的吗_Java基础知识之synchronized同步方法、代码块、静态方法、静态代码块的区别...

    Java中的同步块用synchronized标记,是同步在某个对象上,所有同步在一个对象上的同步块在同一时刻只能被一个线程进入并执行操作,其他等待进入该同步块的线程将被阻塞,直到执行该同步块中的线程退 ...

  7. Java中“附近的人”实现方案讨论及代码实现

    前言 在我们平时使用的许多app中有附近的人这一功能,像微信.qq附近的人,哈罗.街兔附近的车辆.这些功能就在我们日常生活中出现. 像类似于附近的人这一类业务,在Java中是如何实现的呢? 本文就简单 ...

  8. Java 中IO流详解(附实例代码/面试题)

    Java I/O流详解 前言 一.I/O流是什么? 二.IO流分类: 1. 流程图: io流对象 2. io流的优缺点: 3. io 流Java中用途有哪些? 三.一些 io 实例 四.面试题: 前言 ...

  9. java中,饭店里面有五道菜, 黄花鱼 200块, 烤鸭 100块, 红烧肉 60块, 小炒肉 40块, 白水豆腐 10块,一个客人进了饭店, 根据身上的钱来决定最好能吃哪道菜 , 编程模拟。

    一个简单的java题目: 饭店里面有五道菜, 黄花鱼 200块, 烤鸭 100块, 红烧肉 60块, 小炒肉 40块, 白水豆腐 10块,一个客人进了饭店, 根据身上的钱来决定最好能吃哪道菜 , 编程 ...

  10. Java中before用法_Java Year isBefore()用法及代码示例

    Java中Year类的isBefore()方法用于检查当前的Year对象是否在指定为此方法的参数Year之前. 用法: public boolean isBefore(Year otherYear) ...

最新文章

  1. 网页右边固定php,左侧固定,右侧自适应的布局方式
  2. 10月第3周网络安全报告:新增信息安全漏洞308个
  3. 2020年12月份学习总结,PMP与信息系统项目管理师的回顾
  4. 解析su,su -,sudo的区别
  5. oracle 如何修改字符集 update prop,ORACLE 修改字符集
  6. 隐秘攻击:恶意病毒可使智能手机加速老化
  7. 迫切想要成功之后的喜悦感,失败太久有点心灵上小小的打击,还需要继续前进。...
  8. 软件测试中什么是正交分析法,软件测试用例设计方法之正交分析法
  9. 使用vbs脚本实现自动化安装GUI程序
  10. Vmware 虚拟机安装教程
  11. 金蝶K3系统参数年结不能配置利润科目
  12. Java大数据应用领域及就业方向
  13. python非法的标识符_Python标识符
  14. mysql中将大写日期转为小写日期
  15. DITHER抖动算法
  16. Ubuntu 安装微信客户端
  17. vite postcss
  18. 经典五大算法思想-------入门浅析
  19. 软件版本发布要求和标准
  20. IDEA新旧版本下载指南

热门文章

  1. 如何开启匿名访问SharePoint 2010里的Client Object Model
  2. 极验行为验证的使用方法
  3. opencv python BRIEF描述子
  4. Java并发编程 synchronized保证线程安全的原理
  5. mac os x 添加 用户 所属 组
  6. Swift--逃逸闭包与非逃逸闭包(Swift3.1)
  7. golang sftp传输文件
  8. linux 远程禁用root
  9. Centos6.5-----nagios快速安装编译配置文档-全部虚拟环境
  10. 面试题:二叉树的深度