返回顶部
首页 > 资讯 > 后端开发 > Python >Java简明解读代码块的应用
  • 229
分享到

Java简明解读代码块的应用

2024-04-02 19:04:59 229人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录什么是代码块代码块的分类普通代码块构造块(实例代码块)静态代码块代码块的一些特性什么是代码块 java中被 {} 括起来的代码这部分被称为代码块 代码块的分类 普通代码块(本地代

什么是代码块

java中被 {} 括起来的代码这部分被称为代码块

代码块的分类

普通代码块(本地代码块)
构造块(实例代码块)
静态块
同步代码块 

本片文章就先讲普通代码块,构造快和静态块。而同步代码块一般在多线程种用到,后面写到多线程的时候会说同步代码块,在这就不多说了。代码块还是很简答的,但是有一些要注意的点希望大家记住,接下来我会通过普通代码块,构造快和静态块一起对比来讲解。

普通代码块

普通代码块就是用{}括起来的代码,这部分就是普通代码块,也称本地代码块。举个例子,看下面这段代码:

public class Test {
    public static void main(String[] args) {
        {
            System.out.println("这是普通代码块");
        }
    }
}

主函数中,输出 “这是普通代码块”这个部分是被{}括起来的部分,并且它的前面没有任何限制条件,这部分就是 普通代码块。当然这种代码块没什么太大的意义,因为没有限制条件,加不加{}它都会执行,所以平时不加{}也可以。

构造块(实例代码块)

实例代码块一般定义在类的内部,方法的外部。看下面这段代码:

class blocks{
    public int a;
    {
        this.a = 1;
        System.out.println("这是实例代码块");
    }
public class Test {
    public static void main(String[] args) {
    }
}

而实例代码块和普通代码块非常像,只是位置不同而已,还有一点,实例代码块可以为普通的成员变量进行赋值。

静态代码块

静态成员变量也就是被static修饰的变量的初始化分为两种:就地初始化 和 静态代码块初始化。

就地初始化就是在创建变量的时候就给它进行了赋值。接下来我们来看一下静态代码块初始化,

先来了解一下什么是静态代码块,看一下下面的代码:

class blocks{
    static int a ;
    static {
        a = 1;//对静态的成员变量进行赋值
        System.out.println("这是静态代码块");
    }
}
public class Test {
    public static void main(String[] args) {
    }
}

静态代码块就是在普通代码块的前面加了一个static,这就是静态代码块。而我可以在静态代码块里面对静态成员变量进行赋值,静态代码块只能为静态的成员变量进行赋值。

代码块的一些特性

静态代码块不管生成多少个对象,其只会执行一次

如果有多个静态或实例代码块,看定义的顺序

如果没有实例化对象,只会执行静态的

静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的

如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次合并

实例代码块只有在创建对象时才会执行

在这给大家讲解一下代码块的特性,看一下下面这段代码:

class Blocks {
    public int a;
    static int b;
    public double c;
    public Blocks(){
        System.out.println("这是一个不带参数的构造方法");
    }
    {
        this.a = 1;
        System.out.println("这是实例代码块");
    }
    static {
        b = 1;
        System.out.println("这是静态代码块");
    }
}
public class Test {
    public static void main(String[] args) {
        Blocks blocks = new Blocks();
    }
}

我们都知道我们在主函数中创建对象的时候,编译器会调用构造方法,也就是public Blocks这个函数会被执行。那么这段代码的运行结果是什么?是只执行构造方法?还 是从上到下顺序执行?

答案是**静态代码块先执行,然后是实例代码块,最后是构造方法。**运行结果如图所示:

不只是这样,静态代码块在整个程序中,运行且只运行一次。看下面这张图:

这里我在上面代码的基础上又创建了一个对象,除了静态代码块,其它都是执行了两次。剩下的还有一些结论,大家记一下就可以了。

到此这篇关于Java简明解读代码块的应用的文章就介绍到这了,更多相关Java代码块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java简明解读代码块的应用

本文链接: https://lsjlt.com/news/164197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java简明解读代码块的应用
    目录什么是代码块代码块的分类普通代码块构造块(实例代码块)静态代码块代码块的一些特性什么是代码块 java中被 {} 括起来的代码这部分被称为代码块 代码块的分类 普通代码块(本地代...
    99+
    2024-04-02
  • #6 ipdb模块源代码解读
    前言 好久不见,大家最近可好。通过前几节的学习,相信你已经掌握了面向对象的大量知识,但是光知道是不够的,需要自己多写、多看,学一门语言无非不过这两种秘诀嘛。因此本篇博文带着大家剖析一次源代码,剖析对象为代码调试模块:ipdb。为什么选择这...
    99+
    2023-01-30
    源代码 模块 ipdb
  • Java:读取excel文件中的内容(简单、详细、明确、有全部代码)
    Java:读取excel文件中的内容 一、引入依赖二、引入工作类三、读取excel内容 一、引入依赖 注意: jxl 仅支持读取 .xls 文件,读 .xlsx 会报错! 在 pom.xml 中引入 jxl 的依赖 net.s...
    99+
    2023-08-19
    excel java 开发语言
  • JAVA代码块你了解吗
    目录非静态代码块:没有static修饰的代码块静态代码块:用static修饰的代码块用处总结非静态代码块:没有static修饰的代码块 可以有输出语句 可以对类的属...
    99+
    2024-04-02
  • 详解java中的四种代码块
    在java中用{}括起来的称为代码块,代码块可分为以下四种:一.简介1.普通代码块:类中方法的方法体2.构造代码块:构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。3.静态代码块:用static{}包裹起来的代码片段...
    99+
    2023-05-30
    java 代码块 示例
  • Java深入理解代码块的使用细节
    目录1.基本介绍基本语法快速入门2.代码块细节类的调用顺序实例代码块细节2实例代码块细节2实例1.基本介绍 代码块又称为初始化块,属于类中的成员(类的一部分),类似于方法,讲逻辑语句...
    99+
    2024-04-02
  • Java 普通代码块静态代码块执行顺序(实例讲解)
    如下所示:class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普通的代码块B"); } static{ System...
    99+
    2023-05-31
    静态代码块 执行顺序 java
  • Java编程中的4种代码块详解
    在Java编程中,代码块就是指用“{}”括起来的代码。下面看一下这四种代码块。 1、普通代码块 就是指类中方法的方法体。 public void xxx(){ //...
    99+
    2024-04-02
  • Java 多线程的同步代码块详解
    目录synchronized同步代码块同步方法(this锁)静态同步方法死锁问题lock总结火车站抢票问题 由于现实中买票也不会是零延迟的,为了真实性加入了延迟机制,也就是线程休眠语...
    99+
    2024-04-02
  • Java中静态代码块、构造代码块、构造函数和普通代码块的区别
    目录1、静态代码块①、格式②、执行时机③、静态代码块的作用④、静态代码块不能存在任何方法体中⑤、静态代码块不能访问普通变量2、构造代码块①、格式②、执行时机③、构造代码块的作用3、构...
    99+
    2023-05-19
    Java静态代码块 Java代码块区别
  • java代码块之简易qq登录界面及按钮颜色设置代码
    本文主要分享了关于简洁版qq登录界面及按钮颜色设置的相关代码,供参考。java代码块公共包(初始化窗口位置)package util;import java.awt.Dimension;import java.awt.Toolkit;imp...
    99+
    2023-05-30
    java 登录界面代码 ava
  • java 浅析代码块的由来及用法
    1.概述   代码块也是属于类中的成员(即是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过{}包围起来。在类加载时或创建对象时隐式调用。 ̳...
    99+
    2024-04-02
  • Java代码块的使用细节有哪些
    这篇文章主要讲解了“Java代码块的使用细节有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java代码块的使用细节有哪些”吧!1.基本介绍代码块又称为初始化块,属于类中的成员(类的一部...
    99+
    2023-06-30
  • C语言简明讲解快速排序的应用
    目录快速排序1.1快速排序引入1.2快速排序的基本思想1.3快速排序的排序流程1.4实例说明1.5代码实现1.6性能分析快速排序 快速排序,说白了就是给基准数据找其正确索引位置的过程...
    99+
    2024-04-02
  • C语言简明讲解归并排序的应用
    目录一.归并排序1.1归并排序引入1.2归并排序的概念1.3归并排序的原理1.4实例说明1.5具体步骤说明1.6代码实现1.7性能分析一.归并排序 1.1归并排序引入 对于堆排序来说...
    99+
    2024-04-02
  • JavaScript模块化:模块化的魔力,提升代码可读性
    随着JavaScript项目的复杂度和规模日益增长,模块化成为维护代码可读性和可维护性的关键。通过将代码组织成自包含的模块,开发者可以提高代码的可重用性、可测试性和协作效率。 模块化的好处 1. 增强代码可读性 模块化将代码分解成较小的、...
    99+
    2024-04-02
  • 提升代码可读性:Go语言精简else用法详解
    提升代码可读性:Go语言精简else用法详解 在编写代码时,代码的可读性是至关重要的,它可以帮助我们更好地理解和维护代码,提高代码的质量。在Go语言中,精简else用法可以帮助我们简化...
    99+
    2024-03-13
    go语言 可读性 提升代码 代码可读性
  • python如何使用typing模块加强代码的可读性
    这篇文章主要为大家展示了“python如何使用typing模块加强代码的可读性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用typing模块加强代码的可读性”这篇文章吧。一、...
    99+
    2023-06-22
  • 如何利用PHP7的类型声明增加代码的可读性
    如何利用PHP7的类型声明增加代码的可读性在PHP7的版本中,引入了强类型声明的特性,可以让开发者在函数参数和返回值中指定具体的数据类型。这一特性的引入,不仅可以提高代码的可读性,还能减少错误和调试的工作量。下面将通过具体的代码示例,探讨如...
    99+
    2023-10-22
    PHP 可读性 类型声明
  • Java使用lambda表达式简化代码的示例详解
    目录目的推理一下实现接口,使用方法内部类实现接口,使用方法局部内部类实现接口,使用方法匿名内部类实现接口,使用方法使用lamda表达式的,实现方法可带参数只有一个参数有返回值只有一条...
    99+
    2022-11-13
    Java lambda表达式简化代码 Java lambda表达式 Java 简化代码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作