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. statefulset详解及为何结合headless service部署有状态应用

    1.1 有状态应用管理statefulset StatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部 ...

  2. JAVA虚拟机15---虚拟机的类加载机制

    1.概述 在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用.而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这就涉及到虚拟机的类加 ...

  3. P10_组件-text和rich-text组件的基本用法

    常用的基础内容组件 text 文本组件 类似于 HTML 中的 span 标签,是一个行内元素 rich-text 富文本组件 支持把 HTML 字符串渲染为 WXML 结构 text 组件的基本使用 ...

  4. LeetCode HOT 100:乘积最大子数组(动态规划)

    题目:152. 乘积最大子数组 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相乘积最大,返回这个最大的积.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数 ...

  5. AEDR8300:光电编码程序构思

    一.实验 1.光电反射理论是经过码盘的window时,电压变低,经过bar时,电压为高,这样可以通过检测到的脉冲数,来进行速度的获取.但是实际并不是这样, 反馈回来的信号是周期性的,经过试验发现,可以 ...

  6. Osx10.14升级watchman踩坑记

    背景 使用 watchman 检测文件变化通知非常的好用, 但有些时候会出现 watchman 占用内存和 CPU 特别疯狂, 通过 watch-del 也无济与事, 由于 watchman 的版本 ...

  7. The Missing Semester - 第四讲 学习笔记

    第四讲 数据整理 课程视频地址:https://www.bilibili.com/video/BV1ym4y197iZ 课程讲义地址:https://missing-semester-cn.githu ...

  8. BUUCTF-[SUCTF2019]EasySQL

    [SUCTF2019]EasySQL 这个连闭合都测试不出来,就有点无从下手了. 额,随手输了一个1;show tables;出来了表名.一通操作之后,点开了别人的wp,学习了一波. 然后知道了题目中 ...

  9. 【KAWAKO】TVM-使用c++进行推理

    目录 前言 修改cpp_deploy.cc文件 修改DeployGraphExecutor()函数 numpy与bin文件的互相转换 numpy转bin bin转numpy 使用CMakeLists. ...

  10. Java基础语法:类型转换、变量、常量

    Java基础语法:类型转换.变量.常量 类型转换 低---------->高 byte,short,char->int->long->float->double 从高到低 ...