代码块  code block
            
    content (内容)
        在程序结构之中使用“{}”定义的内容就称为代码块,但是会根据其声明的位置以及关键字的不同
        代码块一共分为四种:
            普通代码块(程序块),构造块,静态块,同步代码块(多线程)
            
        一:普通代码块
            普通代码块是定义在方法之中的代码块,其基本形式参考如下:

public class CodeBlock{
public static void main(String args[]){
{ // 普通代码块
int x = 10;
System.out.println(x);
}
}
}               

如果现在一个方法代码很长的时候,你又怕重名变量定义,那么可以考虑使用普通代码块(java 方法一般都比较短)
                
        二:构造块:
            构造块指的是定义在类中间的结构
            
            范例:定义一个构造块

class Member{
{
System.out.println("------构造块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}

构造块优先于构造方法执行,并且每一次对象实例化的时候都会执行构造块中的代码
                构造块允许定义多个,按照顺序执行(然并卵)
                
        三:静态代码块
            静态块定义在一个类之中代码块,但是其必须使用 static 关键字来进行定义,对于静态块需要考虑两种情况:
                在主类中定义,不再主类中定义
            
            范例:在非主类中定义静态块

class Member{
{
System.out.println("------构造块------");
}
static{
System.out.println("------静态块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}               

静态块优先于构造块执行,而且不管有多少个实例化对象,静态块只执行一次,静态块的主要作用是为了 static 属性初始化

class Member{
private static String uli; // static 属性
{
System.out.println("------构造块------");
}
static{
uli = “++++++++”; // 为 static属性赋值
System.out.println("------静态块------");
}
public Member(){ //构造方法
System.out.println("++++++++构造方法++++++++");
}
}
public class CodeBlock{
public static void main(String args[]){
new Member();
new Member();
}
}

另外静态块也可以定义在主类之中

public class CodeBlock{
static{
System.out.println("+++++++++++++++++");
}
public static void main(String args[]){
System.out.println("fffffffffffffffffffff");
}
}

静态块的执行优先级在主方法之前执行

菜鸡的Java笔记 第十八 - java 代码块的更多相关文章

  1. 菜鸡的Java笔记 第二十八 - java 包的定义

    包的主要作用以及定义    包的导入操作    系统常见的开发包    jar 程序命令        包的定义        在任何的操作系统之中都有一个统一的共识:同一个目录下不能够存在有相同的文 ...

  2. 菜鸡的Java笔记 第二十六 - java 内部类

    /*    innerClass        从实际的开发来看,真正写到内部类的时候是在很久以后了,短期内如果是自己编写代码,几乎是见不到内部类出现的        讲解它的目的第一个是为了解释概念 ...

  3. Java学习笔记二十八:Java中的接口

    Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...

  4. 菜鸡的Java笔记 第二十四 - java 接口的基本定义

    1.接口的基本定义以及使用形式        2.与接口有关的设计模式的初步认识        3.接口与抽象类的区别                 接口与抽象类相比,接口的使用几率是最高的,所有的 ...

  5. 菜鸡的Java笔记 第二十二 - java 对象多态性

    本次只是围绕着多态性的概念来进行讲解,但是所讲解的代码与实际的开发几乎没有关系,而且多态一定是在继承性的基础上才可以操作的,        而本次将使用类继承的关系来描述多态的性质,实际的开发中不会出 ...

  6. 菜鸡的Java笔记 第十九 - java 继承

    继承性的主要目的,继承的实现,继承的限制                继承是面向对象中的第二大主要特点,其核心的本质在于:可以将父类的功能一直沿用下去                为什么需要继承? ...

  7. 菜鸡的Java笔记 第十六 - java 引用传递

    referenceDelivery    引用传递是整个java 的精髓,也是所有初学者最难学的地方        引用的本质:同一块堆内存可以被不同的栈内存所指向    下面通过三道程序来进行引用传 ...

  8. 菜鸡的Java笔记 第十二 - java 构造方法与匿名对象

    1.点    构造方法的作用以及定义要求    匿名对象的使用    构造方法:        只要出现()的都表示方法        构造方法就是类构造对象时调用的方法,主要用来实例化对象.> ...

  9. 菜鸡的Java笔记 第二十九 - java 单例设计模式

    SingleCase 单例设计模式        1.单例设计模式的特点        2.多例设计模式的特点    内容    单例设计模式        现在如果说有这么一个程序类 class S ...

随机推荐

  1. 一、Ansible基础之入门篇

    目录 1. Ansible基础 1.1 介绍 1.2 工作原理 1.3 如何安装 1.3.1 先决条件 1.3.2 安装Ansible 1.4 管理节点与被管理节点建立SSH信任关系 1.5 快速入门 ...

  2. 5 大场景深度探讨何为 Serverless 架构模式?

    作者 | Hongqi 阿里云高级技术专家 究竟什么是 Serverless 架构? 什么是 Serverless 架构?按照 CNCF 对 Serverless 计算的定义,Serverless 架 ...

  3. 2020.5.16-ICPC Central Europe Regional Contest 2019

    A. ABB #include <bits/stdc++.h> using namespace std; #define PB push_back #define ZERO (1e-10) ...

  4. IEEE 754舍入的问题

    写在前面 本文的舍入方法只适用于保留0位或1位小数,个人水平所限,暂时没有发现保留更多小数位的舍入的规律- IEEE 754的舍入模式 IEEE 754标准提供了2类,5种舍入模式,在默认情况下一般是 ...

  5. 免费 CDN 玩法 —— 文件一键上传到 NPM

    前言 unpkg.jsdelivr 等站点可加速 NPM 包文件,适合作为个人网站或演示案例的免费 CDN. 虽然上传文件到 NPM 很简单,创建 package.json 然后 npm publis ...

  6. .Net Core微信服务商二次进件

    最近商城进行微信服务商二次进件的开发,大致有几个点 一,服务商签名 二,服务商证书获取 三,图片上传 四,敏感信息加密 五,查询进件状态 除此之外,就是进件信息的拼装 电商二级商户进件申请单-状态流转 ...

  7. vue3.x相对于vue2.x生命周期改动

    vue3.x已经正式发布了,部分小伙伴已经用了vue3.x开发,部分小伙伴还在观望中,下面是两个影响比较大的改动 1.beforeDestroy和destroyed不能用了. 这个应该是vue2.x项 ...

  8. Egg.js学习与实战系列 · Post请求`csrf token`问题

    在使用axios请求egg.js封装的post接口时出现missing csrf token 或 invalid csrf token.踩过坑的新手估计不在少数,本篇记录一下解决方法. 问题原因 引用 ...

  9. JVM:体系结构

    JVM:体系结构 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 概览 Java GC 主要回收的是 方法区 和 堆 中的内容 类加载器 类加载器是什么 双亲委派 ...

  10. 面试题系列:new String("abc")创建了几个对象

    new String("abc")创建了几个对象 面试官考察点猜想 这种问题,考察你对JVM的理解程度.涉及到常量池.对象内存分配等问题. 涉及背景知识详解 在分析这个问题之前,我 ...