Java代码块的基本使用

2023-11-08

概念:

在Java中,使用 { } 括起来的代码被称为代码块

局部代码块:

位置: 方法中定义
特点:执行完就会在内存中消失
作用: 限定变量的生命周期,及早释放,提高内存利用率

 public static void main(String[] args) {
        {
            int a = 10;
            System.out.println(a);
        }// System.out.println(a); 
    }

构造代码块:

位置: 类中方法外定义
特点: 每次构造方法(创建对象)执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行
作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性

    public static void main(String[] args) {
        Student stu1 = new Student();
        Student stu2 = new Student(10);
    }
}

	class Student {
    {
    
        System.out.println("我是构造代码块");
    }

    public Student() {
        System.out.println("空参数构造方法");
    }

    public Student(int a) {
        System.out.println("带参数构造方法...........");
    }

静态代码块:

位置: 类中方法外定义
特点: 需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
作用:在类加载的时候做一些数据初始化的操作

    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person(10);
    }
}

class Person {
    static {
        System.out.println("我是静态代码块, 我执行了");
    }

    public Person() {
        System.out.println("我是Person类的空参数构造方法");
    }

    public Person(int a) {
        System.out.println("我是Person类的带...........参数构造方法");
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java代码块的基本使用 的相关文章

  • 无法在 Android 10 中创建目录

    我无法在 android 10 中创建目录 它可以在 android Oreo 之前的设备上运行 我尝试了两种创建文件夹的方法 Using File mkdir File f new File Environment getExternal
  • 清理码头 - 删除“不必要”的东西

    我习惯用Jetty http jetty codehaus org jetty 作为我的网络容器 我对我做了什么安装步骤得到原始的焦油球并且清理一些目录和文件从中 我在这里想提出的是 您通常从 Jetty 中删除什么以在生产 登台环境中使用
  • 无法解析类型为 xxx 的任何 bean;限定符:[@javax.enterprise.inject.Any()]

    我有一个 LoginProvider 接口 public interface LoginProvider boolean login String username String password 以及两种不同的实现 public clas
  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java套接字:在连接被拒绝异常时重试的最佳方法?

    现在我正在这样做 while true try SocketAddress sockaddr new InetSocketAddress ivDestIP ivDestPort downloadSock new Socket downloa
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • Java:拆箱整数时出现空指针异常?

    此代码导致空指针异常 我不知道为什么 private void setSiblings PhylogenyTree node Color color throws InvalidCellNumberException PhylogenyTr
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • SpringBoot中静态资源不能访问

    解决SpringBoot中静态资源不能访问的问题 在编写SpringBoot项目上的html页面时 直接调试html页面时 页面可以正常显示 但是在启动项目后 html页面样式丢失 因此想到了 可能是讲台资源被过滤掉了 参考一些大神的博客
  • HTML表单

  • AcWing 422. 校门外的树

    题目 某校大门外长度为L的马路上有一排树 每两棵相邻的树之间的间隔都是1米 我们可以把马路看成一个数轴 马路的一端在数轴0的位置 另一端在L的位置 数轴上的每个整数点 即0 1 2 L 都种有一棵树 由于马路上有一些区域要用来建地铁 这些区
  • 【vscode运行nodemon报错解决方法】

    看这篇文章的都是使用 vscode 的开发者吧 都遇到 nodemon app js 这种命令报错吧 话不多说 我来帮你解决这个问题 nodemon app js 1 如果你运行 nodemon 命令报的错是这个的话 那么恭喜你 看对文章了
  • c++中c_str()的用法详解

    转载地址 http blog csdn net u013682388 article details 39547773 cpp view plain copy 标准库的string类提供了三个成员函数来从一个string得到c类型的字符数组
  • 前端开发弄懂了这些shell命令就足够了

    最新内容我会即时在github更新 建议在github阅读 1 set命令 set通过选项来开关shell的不同特性 每个特性都对应一个选项 每个特性都有两种配置方式 1 一种是通过 set e 和 set e 这种形式 即直接指定选项 2
  • 【web nodejs】node-sass离线方式安装

    前言 npm命令可以很方便的从npm库中安装依赖的类库 实际开发时 操作是非常简单的 但是如果网络不好或受限制的话 可以通过离线安装 一安装 1 查看服务器的node版本 把下面的脚本添加到package json scripts prei
  • chart.js使用学习

    chart js是用JavaScript编写的基于Canvas的开源图表库 其官网 文档及源码地址请见参考文献1 3 本文开始学习该图表库的使用方法 本文主要介绍chart js的安装及使用示例 安装 根据参考文献2 chart js有几种
  • SOJSONV5解密,SOJSON.V5解密方法,SOJSONV5解密分析

    首先 JS加密只要给浏览器能运行就是可逆的 只是难度和时间问题 如果一个加密他有规则 那么他就是可以系统化可逆 我们来分析下 sojson v5 sojsonv5解密 使用者较多 知名企业都在使用 证明这个加密工具还是值得信奈的 JS加密
  • mybatis——example文件形式——多表联查

    mybatis example文件形式 多表联查 并且每个表中都有同样的id不能识别问题解决 方法名称 orderListByStatus mapper xml文件中写法
  • 酷炫的python日志库-loguru

    Loguru是一个python的日志库 比logging更简单 好用 功能丰富 GitHub Delgan loguru Python logging made stupidly simple 安装 pip install loguru 特
  • asp.net2.0学习历程 菜鸟到中级程序员的飞跃

    asp net2 0学习历程 菜鸟到中级程序员的飞跃 如果你是一个菜鸟或者自认为初学者那么本文非常适合你 不能说这30本书就是最佳组合 但是可以说这个组合不差 本人曾博览群书 很多书重复 很多书讲的不适用 这些书都是目前书店可以买到的 达到
  • 创建Springboot+vue3项目

    项目概述 创建springboot项目 加入mybatis plus支持 1 加入依赖代码 2 创建数据库实例 3 yml文件的配置 4 编写测试代码 5 测试结果 创建vue项目 报错 错误一 错误二 错误三 项目概述 后端 Spring
  • javaweb知识点总结

    JavaWeb JDBC 简介 JDBC就是使用Java语言操作关系型数据库的一套API 快速入门 0 创建工程 导入驱动jar包 mysql connector java 5 1 48 jar 1 注册驱动 Class forName c
  • 贪吃蛇游戏(java)(全注释)

    没想到发的第一篇关于java的博客会是这个 写作业用来练手 顺道就搬上来了 代码肯定不最优的 欢迎大家一起来探讨 先搬个效果图 然后结构 一共分成4个部分 Define包下有蛇 食物和成绩数据的类 主要包括他们的初始化和像蛇的移动之类的东西
  • 决策树(Decision Tree)-机器学习ML

    参考 1 统计学习方法 李航 2 https baike baidu com item E5 86 B3 E7 AD 96 E6 A0 91 10377049 fr aladdin 3 http www jianshu com p 6eec
  • qt 手动设置控件的位置

    QT中的Layout用着很不错 但有时候你想指定控件绝对位置 用以下红色代码就可以了 chanel1 new QPushButton tr 通道1 chanel1 gt setGeometry rect x 200 rect y 10 10
  • HTTP协议与HTTPS协议的区别

    一 HTTP和HTTPS的基本概念 1 HTTP 是互联网上应用最为广泛的一种网络协议 是一个客户端和服务器端请求和应答的标准 TCP 用于从WWW服务器传输超文本到本地浏览器的传输协议 它可以使浏览器更加高效 使网络传输减少 2 HTTP
  • 在数组中寻找和为目标值的 N 项(算法)

    这类问题可以使用递归 动态规划 或者回溯的方式完成 下面我将使用递归来完成这个算法的实现 递归函数 用于在数组中寻找 n 项之和等于目标值的组合 function findNSum nums target n startIndex curr
  • Java代码块的基本使用

    概念 在Java中 使用 括起来的代码被称为代码块 局部代码块 位置 方法中定义 特点 执行完就会在内存中消失 作用 限定变量的生命周期 及早释放 提高内存利用率 public static void main String args in