首页 > 其他分享 ><init>方法与<clinit>方法的区别

<init>方法与<clinit>方法的区别

时间:2024-05-25 23:30:24浏览次数:21  
标签:初始化 clinit 对象 接口 init 执行 方法 加载

 全套【JVM虚拟机面试题】视频。视频讲解的更加详细~~~

<init>方法:

  • <init>是对象构造器方法,是在程序用于初始化实例对象调用该对象类的 constructor 方法时才会执行方法;

  • 主要目的是执行对象的实例变量的显示赋值操作和非静态代码块;

  • 每个实例中都会执行一次该方法;

<clinit>方法:

  • <clinit>是类型构造器方法,也叫静态初始化方法,是在jvm进行类加载-连接-初始化流程中的初始化阶段jvm会调用方法;

  • 主要目的是执行对象静态变量的赋值和静态代码块;

  • 一个类型的加载,只会加载一次;

子类的<clinit>方法执行前,必先执行父类的<clinit>方法。

接口中也有<clinit>方法,但是子接口的<clinit>方法执行不会影响父接口的<clinit>方法。接口的实现子类,在执行<clinit>方法时,也同样不会影响父接口的<clinit>方法执行。

一个对象的创建,JVM虚拟机去会方法区内找该对象的class对象:

  • 若找到了,则说明该类已被加载过,执行init方法初始化

  • 若没有找到,则会加载该类,经历加载、连接、初始化,将该类加载到方法区,在实例化的时候,会去调用init方法。

标签:初始化,clinit,对象,接口,init,执行,方法,加载
From: https://blog.csdn.net/pleaseContinue/article/details/139205366

相关文章

  • junit测试对应功能,方法使用
    1.介绍和使用Ø SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)Ø SqlSessionFactory:是“生产”SqlSession的“工厂”。Ø 工厂模式:如果创建某一个对象,使用的过程基本固定,就可以把创建这个对象的相关代码封装到一个“工厂类”中......
  • JavaSE的方法 (函数)
    目录Java中的方法(函数)方法声明格式:(与函数类似)Java中的方法(函数)Java方法是一段可重复使用的代码块,用于执行特定的任务。方法可以接受输入参数并返回一个值。在Java中,方法由方法名、参数列表、返回类型、方法体组成。方法声明格式:(与函数类似)[访问权限修饰符修饰符.........
  • [AIGC] 你能简要解释一下CompletableFuture中thenCompose()方法的用法吗?
    thenCompose()是CompletableFuture的一个方法,用于链接两个CompletableFuture对象。这可以用来促成函数式风格的编程,而无需再额外处理Future对象的嵌套。thenCompose()方法接受一个函数作为参数,这个函数的输入是先前CompletableFuture的结果,它返回的是一个新的Co......
  • Python_DataFrame-的apply方法的应用示例_pandas
    DataFrame拆分-应用-合并split-apply-combineapply()方法是针对某些行或列进行操作的,applymap()方法是针对所有元素进行操作的DataFrame对象,apply函数的语法如下:DataFrame.apply(func,axis=0,raw=False,result_type=None,args=(),**kwds)Series对象,ap......
  • Java SE入门及基础(53)& 方法引用
    目录方法引用1.应用场景示例分析2.方法引用符示例解释说明3.静态方法引用语法示例4.成员方法引用语法示例示例5.this引用成员方法语法示例6.super引用父类成员方法语法示例7.构造方法引用语法示例方法引用1.应用场景方法引用   来......
  • 使用EasyX制作游戏需要读写文件时遇到编码问题的解决方法
    使用EasyX制作游戏需要读写文件时遇到编码问题的解决方法一、编码问题例如我们需要从file.txt中读取文字,再使用outtextxy()函数向窗口绘制文字。查找EasyX的官方文档可知,该函数有两个重载,分别为:voidouttextxy(intx,inty,LPCTSTRstr)和voidouttextxy(intx,inty,TCHAR......
  • PLSQL启动报错:Initialization error,不能初始化
    1.Oracle客户端的oci.dll是32位的,而PLSQLDeveloper是64位应用程序,所以无法加载oracle精简客户端下载地址,连接2.没有安装正确的VisualStudioRedistributable版本解读:很多人忽略了官网的“安装说明”,里面有重要的一点,就是必须安装VisualStudioRedistributable,这是......
  • 【Python进阶】轻松上手,6种打包Python代码的方法,让你的程序变成exe应用!
    Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。本文将介绍6种将Python代码打包成exe应用的方......
  • 国产数据库TiDB的常用方法
    TiDB的常用方法主要涉及安装配置、数据操作、性能调优以及监控和维护等方面。以下是对这些常用方法的归纳和介绍:1.安装与配置安装TiDB:根据官方文档的指引,用户可以按照步骤进行TiDB的安装。配置TiDB:安装完成后,需要对TiDB的相关参数进行配置,包括端口号、数据目录等。这些配......
  • 安卓APP活动Activity的生命周期及其各方法,注意onPause()和onStop()的区别
    安卓APP活动Activity的生命周期及其各方法,注意onPause()和onStop()的区别前言:1.我并没有深入了解,难免出错一、Activity完整生命周期(如下图)onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()二、解释1. onCreate():Activity第一次被创建的时候调用,该方......