Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于java中普通代码块、构造代码块与静态代码块

关于java中普通代码块、构造代码块与静态代码块

作者头像
指尖改变世界
发布于 2018-08-31 08:20:49
发布于 2018-08-31 08:20:49
1.5K00
代码可运行
举报
文章被收录于专栏:vuevue
运行总次数:0
代码可运行

1.普通代码块

public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ {   System.out.println("这里是普通代码块A"); } //new A(); {   System.out.println("这里是普通代码块B"); } }

执行结果:这里是普通代码块A      这里是普通代码块B

2.静态代码块与构造代码块

在java中使用static关键字声明的代码块。常用于对类的初始化,每个静态代码块只会执行一次(类在内存中加载时执行,类在内存中加载后类已经存在)由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

public class structure { { System.out.println("这里是普通代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行 } public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } new structure();//第二次类加载时静态代码块不执行 //new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } }

执行结果:

这里是静态代码块//优先于主函数 这里是普通代码块A 这里是普通代码块//类中的对象被创建时执行,每创建一次执行一次,在加一句new structure(); 执行结果为:

这里是普通代码块B

3.概要总结

public class structure { { System.out.println("这里是普通代码块"); } public static void main(String[] args) { { System.out.println("这里是普通代码块A"); } //new structure(); //new structure(); new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } } class A{ static{ System.out.println("这里是A中的普静态代码块1"); } { System.out.println("这里是A中的普通代码块1"); } { System.out.println("这里是A中的普通代码块2"); }

}

执行结果:

这里是静态代码块 这里是普通代码块A 这里是A中的普静态代码块1 这里是A中的普通代码块1 这里是A中的普通代码块2 这里是普通代码块B

优先级总结:静态代码块>Main()>构造代码块

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
详解java中的四种代码块
使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
三哥
2019/05/10
3.3K0
详解java中的四种代码块
【Java 试题】从一道题目再看 Java 继承
一道 Java 基础题:两个类,ClassB 继承自 ClassA,代码如下,判断输出内容:
程序员架构进阶
2021/04/13
5630
【Java 试题】从一道题目再看 Java 继承
Java-----代码块
在Java中, 使用{ }括起来的代码被称为代码块,可分为局部代码块、构造代码块、 静态代码块。
用户7043603
2022/02/27
3440
【愚公系列】2021年12月 Java教学课程 33-代码块
文章目录 一、代码块 1.代码块概述 (理解) 2.代码块分类 (理解) ---- 一、代码块 1.代码块概述 (理解) 在Java中,使用 { } 括起来的代码被称为代码块 2.代码块分类 (理解)2.代码块分类 (理解) 局部代码块 位置: 方法中定义 作用: 限定变量的生命周期,及早释放,提高内存利用率 示例代码 public class Test { /* 局部代码块 位置:方法中定义 作用:限定变量的生命周期,及早释放,提高内
愚公搬代码
2022/01/04
1710
Java基础6:代码块与代码加载顺序
https://h2pl.github.io/2018/04/24/javase6
程序员黄小斜
2019/04/06
4980
【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。 其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5
Angel_Kitty
2018/04/09
9710
【Java探索之旅】静态关键字static与代码块的奥秘
假设现在有5名同学,他们的性别、年龄可能各不一样,但是上课的教室一样的,你会怎么去定义这个类呢?这里面有一个共同点,教室是一样的,你如果把教室设置成对象的成员变量,那么每new一个对象,都会包含这个成员变量,造成空间上的浪费和不必要的麻烦。我们的本意是想要共享,而不是每个对象都存一份。
屿小夏
2024/05/06
1100
Java代码块执行顺序初探
Java继承中对构造函数是不继承的,只是显式或者隐式调用,并且必须是在构造函数第一行。这里是隐式调用了super()。
WindCoder
2018/09/19
2.7K0
代码块总结
这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。在Java中代码块主要分为四种:
栋先生
2018/09/29
8770
静态代码块、非静态代码块、构造函数三者执行顺序
主要探讨一下关于静态代码块,非静态代码块,构造函数的执行顺序。 如有错误,欢迎指出。
HaC
2020/12/30
5350
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑
各位小伙伴大家好,我是A哥。如果问:Java的三大特性是什么?你顺口就能答出:封装、继承、多态。如果继续问:你真的了解Java中的继承吗?
YourBatman
2022/05/06
1K0
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑
【面试题】Java中子类和父类静态代码块、非静态代码块、构造函数的执行顺序总结一览表
在面试的时候,有时候我们会被问到这样的问题:子类A继承父类B,A a = new A();则父类B的构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块执行的先后顺序是什么?
凯哥Java
2022/12/02
7170
【面试题】Java中子类和父类静态代码块、非静态代码块、构造函数的执行顺序总结一览表
为什么要用静态代码,怎么使用静态代码块?
1、为什么要用静态代码 随着类的加载而执行,而且只执行一次,不需要每次调用这个变量都给它赋值
用户8639654
2021/07/26
4820
【Java基础-2】构造函数与构造代码块
构造函数是Java中的一个重要概念,它的作用是对对象的数据进行初始化。怎么去理解呢?以新生入学为例,我们当然可以在学生入学后去给他分配班级和学号,如果想让一个新生一旦入学就拥有班级和学号呢?请看下面示例代码:
云深i不知处
2020/09/16
4670
Java中静态代码块和构造代码块
    构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
緣來
2020/01/02
1.3K0
类中的代码块儿
普通代码块就是直接定义在方法或语句中,以”{}”划定的代码区域,此时只需要关注作用域的不同即可,方法和类都是以代码块的方式划定边界的。
星哥玩云
2022/09/14
2270
类中的代码块儿
Java代码块
在 Java 中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程)
闲花手札
2021/08/24
9210
构造代码块、构造函数、静态代码块 学习笔记
构造代码块 package crud.entity; import java.util.Date; public class User { private int uid; private String naem; private Date date; //构造函数 public User(){ System.out.println("构造函数..."); } //构造代码块 { System.out.pr
qubianzhong
2018/08/10
8680
深入理解Java中静态初始化块
在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字。
desperate633
2018/08/23
7850
构造代码块、静态代码块、构造方法的执行顺序
https://www.cnblogs.com/ysocean/p/8194428.html
真率
2024/07/05
2160
推荐阅读
相关推荐
详解java中的四种代码块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验