Java基础学习:12、代码块
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、代码块的更多相关文章
- Java基础6:代码块与代码加载顺序
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- 转转转!!java基础一些静态代码块等知识点
一.代码块: 构造代码块------类中方法的外面:每次调用构造方法都执行: 静态代码块------类中方法的外面,括号前加上static:只执行一次,随着类的加载而执行: static代码块.构造代 ...
- java基础之静态代码块,局部代码块,构造代码块区别。
java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show( ...
- Java基础25-静态代码块
/* 静态代码块 格式: static{ 静态代码块中执行语句 } 特点:随着类的加载而执行,并且只会执行一次,并且还优先于主函数. 作用:用于给类进行初始化 */ public class Test ...
- Java基础20-构造代码块
特点: 对象一建立就运行了,而且优先于构造函数执行 作用:给对象初始化的 构造代码块和构造方法的区别: 构造方法是对应的对象进行初始化 构造代码块是给所有的对象进行统一的初始化 public clas ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- [转帖]java基础学习总结——多态(动态绑定)
https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态
- Java基础学习(2)
Java基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
随机推荐
- statefulset详解及为何结合headless service部署有状态应用
1.1 有状态应用管理statefulset StatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部 ...
- JAVA虚拟机15---虚拟机的类加载机制
1.概述 在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用.而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这就涉及到虚拟机的类加 ...
- P10_组件-text和rich-text组件的基本用法
常用的基础内容组件 text 文本组件 类似于 HTML 中的 span 标签,是一个行内元素 rich-text 富文本组件 支持把 HTML 字符串渲染为 WXML 结构 text 组件的基本使用 ...
- LeetCode HOT 100:乘积最大子数组(动态规划)
题目:152. 乘积最大子数组 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相乘积最大,返回这个最大的积.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数 ...
- AEDR8300:光电编码程序构思
一.实验 1.光电反射理论是经过码盘的window时,电压变低,经过bar时,电压为高,这样可以通过检测到的脉冲数,来进行速度的获取.但是实际并不是这样, 反馈回来的信号是周期性的,经过试验发现,可以 ...
- Osx10.14升级watchman踩坑记
背景 使用 watchman 检测文件变化通知非常的好用, 但有些时候会出现 watchman 占用内存和 CPU 特别疯狂, 通过 watch-del 也无济与事, 由于 watchman 的版本 ...
- The Missing Semester - 第四讲 学习笔记
第四讲 数据整理 课程视频地址:https://www.bilibili.com/video/BV1ym4y197iZ 课程讲义地址:https://missing-semester-cn.githu ...
- BUUCTF-[SUCTF2019]EasySQL
[SUCTF2019]EasySQL 这个连闭合都测试不出来,就有点无从下手了. 额,随手输了一个1;show tables;出来了表名.一通操作之后,点开了别人的wp,学习了一波. 然后知道了题目中 ...
- 【KAWAKO】TVM-使用c++进行推理
目录 前言 修改cpp_deploy.cc文件 修改DeployGraphExecutor()函数 numpy与bin文件的互相转换 numpy转bin bin转numpy 使用CMakeLists. ...
- Java基础语法:类型转换、变量、常量
Java基础语法:类型转换.变量.常量 类型转换 低---------->高 byte,short,char->int->long->float->double 从高到低 ...