资讯专栏INFORMATION COLUMN

Java基础知识整理之代码块

shery / 560人阅读

摘要:代码块我们主要观察普通代码块构造块静态块的主要作用。代码实例构造方法类的构造方法将代码块写在了类里面类的构造块控制台输出类的构造块类的构造方法此时实例化类对象时,虽然执行的是类的构造方法,但是构造块里面的代码也执行了。

代码块

我们主要观察普通代码块、构造块、静态块的主要作用。

在程序编写之中可以直接使用"{}" 定义一段语句,那么根据此部分定义的位置以及关键字的不同可以分为以下几种:

普通代码块

构造块

静态块

不过,我们在写程序的时候,尽量不去使用代码块。

普通代码块

如果说一个代码块写在了方法里,那么就称它了普通代码块。

代码实例

下面说的变量,只是相对关系。

public class TestDemo {

    public static void main(String[] args) {
        {// 普通代码块
            int num = 10;    //局部变量
            System.out.println(num);
        }
        
        int num = 100;    // 相对的上面的局部变量,为全局变量
        System.out.println(num);
    }
}

实际上普通代码块就是为了防止在方法里面编写的代码过多时,有可能产生的变量重名。对一个方法的代码进行局部分割。

构造块

如果说现在将一个代码块写在了一个类里面,那么我们就称为构造块。

代码实例

class Book{
    public Book() {    // 构造方法
        System.out.println("【A】 Book 类的构造方法");
    }
    
    {// 将代码块写在了类里面
        System.out.println("【B】 Book 类的构造块");
    }
}

public class TestDemo {

    public static void main(String[] args) {
        new Book();
    }
}

控制台输出

【B】 Book 类的构造块
【A】 Book 类的构造方法

此时实例化 Book 类对象时,虽然执行的是 Book 类的构造方法,但是构造块里面的代码也执行了。并且会发现构造块的代码是优先于 构造方法执行。

代码实例

class Book{
    public Book() {    // 构造方法
        System.out.println("【A】 Book 类的构造方法");
    }
    
    {// 将代码块写在了类里面
        System.out.println("【B】 Book 类的构造块");
    }
}

public class TestDemo {

    public static void main(String[] args) {
        new Book();
        new Book();
        new Book();
    }
}

控制台输出

【B】 Book 类的构造块
【A】 Book 类的构造方法
【B】 Book 类的构造块
【A】 Book 类的构造方法
【B】 Book 类的构造块
【A】 Book 类的构造方法

从控制台的输出可以看到,每当我们实例化一个 Book 类时,我们的构造块都会被执行一次。

静态块

如果我们的代码块使用了 static 进行定义的话,那么就被称为静态块。我们分为两种情况来看。

在非主类中使用

代码实例

class Book{
    public Book() {    // 构造方法
        System.out.println("【A】 Book 类的构造方法");
    }
    
    {// 将代码块写在了类里面
        System.out.println("【B】 Book 类的构造块");
    }
    
    static {// 将代码块写在了类里面
        System.out.println("【C】 Book 类的构造块");
    }
}

public class TestDemo {

    public static void main(String[] args) {
        new Book();
        new Book();
        new Book();
    }
}

控制台输出

【C】 Book 类的构造块
【B】 Book 类的构造块
【A】 Book 类的构造方法
【B】 Book 类的构造块
【A】 Book 类的构造方法
【B】 Book 类的构造块
【A】 Book 类的构造方法

从上面我们可以看到,静态块只是执行了一次,并且是优先于构造方法和构造块。也就是说,不管实例化多少个对象,静态块只执行一次。

在主类中使用

代码实例

public class TestDemo {
    
    static {
        System.out.println("**********");
    }

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

控制台输出

**********
main()

从控制台的输出,我们就可以知道,static 静态块 是优先于 main 方法执行的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76746.html

相关文章

  • Java核心技术教程整理,长期更新

    以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总。 Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串...

    Anchorer 评论0 收藏0
  • 后端好书阅读与推荐

    摘要:后端好书阅读与推荐这一两年来养成了买书看书的习惯,陆陆续续也买了几十本书了,但是一直没有养成一个天天看书的习惯。高级程序设计高级程序设计第版豆瓣有人可能会有疑问,后端为啥要学呢其实就是为了更好的使用做铺垫。 后端好书阅读与推荐 这一两年来养成了买书看书的习惯,陆陆续续也买了几十本书了,但是一直没有养成一个天天看书的习惯。今天突然想要做个决定:每天至少花1-3小时用来看书。这里我准备把这...

    clasnake 评论0 收藏0
  • 后端好书阅读与推荐

    摘要:后端好书阅读与推荐这一两年来养成了买书看书的习惯,陆陆续续也买了几十本书了,但是一直没有养成一个天天看书的习惯。高级程序设计高级程序设计第版豆瓣有人可能会有疑问,后端为啥要学呢其实就是为了更好的使用做铺垫。 后端好书阅读与推荐 这一两年来养成了买书看书的习惯,陆陆续续也买了几十本书了,但是一直没有养成一个天天看书的习惯。今天突然想要做个决定:每天至少花1-3小时用来看书。这里我准备把这...

    Juven 评论0 收藏0
  • JAVA基础整理(一)

    摘要:方法区存储不变的东西类加载信息,静态变量,字符串常量。通用分代垃圾回收基础时只需要知道有这几种方法即可四内存分析静态变量,静态方法,静态初始化块静态变量与方法不需要具体的对象就可以调用用类名调用,静态初始化块后就会调用了。 一:面向对象与面向过程   笼统说,一个流程简单一个复杂,面向过程好比开车上路,可以简单罗列出几个动作:上车,系安全带,点火,出发;向过程好比造出一辆汽车,肯定不能...

    Half 评论0 收藏0
  • 高并发

    摘要:表示的是两个,当其中任意一个计算完并发编程之是线程安全并且高效的,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入的。电商秒杀和抢购,是两个比较典型的互联网高并发场景。 干货:深度剖析分布式搜索引擎设计 分布式,高可用,和机器学习一样,最近几年被提及得最多的名词,听名字多牛逼,来,我们一步一步来击破前两个名词,今天我们首先来说说分布式。 探究...

    supernavy 评论0 收藏0

发表评论

0条评论

shery

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<