1、定义:

  代码块又称为初始化块,属于类中的成员,将逻辑语句封装在方法体中,通过{}包围起来。

2、分类:

  普通代码块、静态代码块(有static修饰)

public class Block {
public static void main(String[] args) {
new AA("张三"); // 每个构造器都会自动调用代码块内容
new AA(20, "李四");
}
} class AA {
private int age;
private String name; {
System.out.println("我是代码块1");
System.out.println("我是代码块2");
System.out.println("我是代码块3");
} public AA(String name) {
this.name = name;
} public AA(int age, String name) {
this.age = age;
this.name = name;
}
}

3、代码块的理解:

  a、相当于另一种形式的构造器,可以做初始化操作。

  b、使用场景:如果多个构造器都有重复语句,可以抽取到到代码块中,提高代码重用性。

静态代码块:

1、作用:就是对类进行初始化,它随着类的加载而执行,并且只会执行一次。如果是普通代码块,没创建一个对象,就会执行一次。

2、类什么时候被加载:
  a、创建对象实例时(new)。

  b、创建子类对象实例时,父类也会被加载。

  c、使用类的静态成员时(静态成员、静态方法)。

3、普通代码块:创建对象实例时,才会被调用,创建一次,调用一次,如果只是使用类的静态成员时,普通代码块不会执行。

4、小结:

  a、static代码块:类加载时调用,只会执行一次。

  b、普通代码块:创建对象时调用,创建一次,调用一次。

Java基础学习:12、代码块的更多相关文章

  1. Java基础6:代码块与代码加载顺序

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  2. 转转转!!java基础一些静态代码块等知识点

    一.代码块: 构造代码块------类中方法的外面:每次调用构造方法都执行: 静态代码块------类中方法的外面,括号前加上static:只执行一次,随着类的加载而执行: static代码块.构造代 ...

  3. java基础之静态代码块,局部代码块,构造代码块区别。

    java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show( ...

  4. Java基础25-静态代码块

    /* 静态代码块 格式: static{ 静态代码块中执行语句 } 特点:随着类的加载而执行,并且只会执行一次,并且还优先于主函数. 作用:用于给类进行初始化 */ public class Test ...

  5. Java基础20-构造代码块

    特点: 对象一建立就运行了,而且优先于构造函数执行 作用:给对象初始化的 构造代码块和构造方法的区别: 构造方法是对应的对象进行初始化 构造代码块是给所有的对象进行统一的初始化 public clas ...

  6. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  7. [转帖]java基础学习总结——多态(动态绑定)

    https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态

  8. Java基础学习(2)

    Java基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...

  9. java基础学习笔记五(抽象类)

    java基础学习总结——抽象类 抽象类介绍

  10. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

随机推荐

  1. drf-序列化字段及参数、序列化和反序列化高级用法、ModelSerializer使用

    1.序列化类常用字段和字段参数 1.1 常用字段类 1.BooleanField 2 NullBooleanField 3 CharField CharField(max_length=None, m ...

  2. 使用GetDIBits()获取Windows位图数据的标准用法,解决内存、堆栈报错问题

    获取图标的位图数据 分两次使用GetDIBits(),以便于正确设置缓存的大小 正确设置BITMAPINFO的大小,否则就会报堆栈溢出错误 ICONINFO info = { 0 }; GetIcon ...

  3. 学习Java Day23

    今天学习了包访问,没有指定public或private的部分可以被同一个包中的所有方法访问

  4. 郁金香 fs寄存器

    为什么我们在追eax要挂主线程呢,这是因为它的数据来源在fs中 004D1000 为什么是这个呢 $ ==> 0392FFDC 指向SEH链表指针 $+4 03930000 线程堆栈顶部(地址最 ...

  5. 推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

    1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回.粗排.精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板: 粗排是初筛,一般不会上复杂模型: 精排是整个推荐环节的重 ...

  6. 【C#异步】异步多线程的本质,上下文流转和同步

    引言 net同僚对于async和await的话题真的是经久不衰,这段时间又看到了关于这方面的讨论,最终也没有得出什么结论,其实要弄懂这个东西,并没有那么复杂,简单的从本质上来讲,就是一句话,async ...

  7. pat乙级1014 福尔摩斯的约会

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...

  8. PHP实现QQ第三方登录代码

    前言: PHP实现QQ快速登录,罗列了三种方法 方法一:面向过程,回调地址和首次触发登录写到了一个方法页面[因为有了if做判断], 方法二,三:面向对象 1.先调用登录方法,向腾讯发送请求,2.腾讯携 ...

  9. 开源持续测试平台--MerterSphere

    一.MeterSphere平台介绍 MeterSphere是一站式的开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试跟踪.接口测试.UI测试和性能测试等功能,全面兼容JMeter.Sele ...

  10. 微信小程序扫码

    前言:微信小程序-->调用摄像头,扫描二维码/条形码,并获取信息,一连串操作,只需要调用微信小程序提供的 wx.scanCode API. 一.生成测试二维码 随便网上找个二维码生成器. 二.实 ...