返回顶部
首页 > 资讯 > 精选 >Java中Class对象生成原理
  • 518
分享到

Java中Class对象生成原理

2023-06-17 11:06:58 518人浏览 独家记忆
摘要

这篇文章主要讲解了“Java中Class对象生成原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中Class对象生成原理”吧!Class对象的生成方式如下:Class.forNam

这篇文章主要讲解了“Java中Class对象生成原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中Class对象生成原理”吧!

Class对象的生成方式如下:

Class.forName("类名字符串")

类名.class

实例对象.getClass()

通过一段小程序,来观察一下Class对象的生成的原理。

  public class TestClass {  public  static void main(String[] args)  {  try {  //测试Class.forName()  Class testTypeForName=Class.forName("TestClassType");          System.out.println("testForName---"+testTypeForName);  //测试类名.class  Class testTypeClass=TestClassType.class;  System.out.println("testTypeClass---"+testTypeClass);  //测试Object.getClass()  TestClassType testGetClass= new TestClassType();  System.out.println("testGetClass---"+testGetClass.getClass());  } catch (ClassNotFoundException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  }   class TestClassType{  //构造函数  public TestClassType(){  System.out.println("----构造函数---");  }  //静态的参数初始化  static{  System.out.println("---静态的参数初始化---");  }  //非静态的参数初始化  {  System.out.println("----非静态的参数初始化---");  }          }

测试的结果如下:

---静态的参数初始化---

testForName---class TestClassType

testTypeClass---class TestClassType

----非静态的参数初始化---

----构造函数---

testGetClass---class TestClassType

根据结果可以发现,三种生成的Class对象一样的。并且三种生成Class对象只打印一次“静态的参数初始化”。

我们知道,静态的方法属性初始化,是在加载类的时候初始化。而非静态方法属性初始化,是new类实例对象的时候加载。

因此,这段程序说明,三种方式生成Class对象,其实只有一个Class对象。在生成Class对象的时候,首先判断内存中是否已经加载。

所以,生成Class对象的过程其实是如此的:

当我们编写一个新的java类时,JVM就会帮我们编译成class对象,存放在同名的.class文件中。在运行时,当需要生成这个类的对象,JVM就会检查此类是否已经装载内存中。若是没有装载,则把.class文件装入到内存中。若是装载,则根据class文件生成实例对象。

感谢各位的阅读,以上就是“Java中Class对象生成原理”的内容了,经过本文的学习后,相信大家对Java中Class对象生成原理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Java中Class对象生成原理

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

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

猜你喜欢
  • Java中Class对象生成原理
    这篇文章主要讲解了“Java中Class对象生成原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中Class对象生成原理”吧!Class对象的生成方式如下:Class.forNam...
    99+
    2023-06-17
  • Java反射(Class类,Class对象获取)
    目录Java反射超详解1.反射基础1.1Class类1.2类加载2.反射的使用2.1Class对象的获取 2.2Constructor类及其用法 2.3Field...
    99+
    2024-04-02
  • java树形菜单对象生成
    本文实例为大家分享了java树形菜单对象生成的具体代码,供大家参考,具体内容如下 1、TreeNode对象 package com.ruoyi.system.utils.Vo; ...
    99+
    2024-04-02
  • 怎么在java中利用反射生成对象
    这期内容当中小编将会给大家带来有关怎么在java中利用反射生成对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系...
    99+
    2023-06-14
  • AJAX中怎么生成XMLHttpRequest对象
    这期内容当中小编将会给大家带来有关AJAX中怎么生成XMLHttpRequest对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码如下:<script ...
    99+
    2024-04-02
  • Java中通过Class类获取Class对象的方法详解
    前言本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 J...
    99+
    2023-05-31
    java class类 class对象
  • 深入理解Java对象实例生成的例子!(转)
    深入理解Java对象实例生成的例子!(转)[@more@]代码如下:class A { public int Avar; public A() { System.out.println("AAA"); doSomething(); } pu...
    99+
    2023-06-03
  • 在java中将inputStream对象转换为File对象(不生成本地文件)
    需求说明 在后端中通过POI生成Excel文件流,将输出流(outputStream)转为输入流(inputStream)后又需要将输入流(inputStream)转为File对象 问题:如果需要将输入流(inputStream)转为Fil...
    99+
    2023-08-18
    java python 开发语言
  • javascript中宿主对象和原生对象有什么区别
    本篇文章为大家展示了javascript中宿主对象和原生对象有什么区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 区别:原生对象是独...
    99+
    2024-04-02
  • Java类和对象的设计原理
    目录一、实验目的二、实验代码1.定义一个类MyProgram,包含两个属性:2. 在Vehicle类的基础上创建一个Tractor(拖拉机)类3. 组合实现汽车类5. USB接口程序...
    99+
    2024-04-02
  • java的预定义Class对象的方法
    今天小编给大家分享的是java的预定义Class对象的方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。基本的 Java 类型(boolean、byte、char、short、int...
    99+
    2023-07-06
  • Java中二维码生成:使用对象还是文件路径?
    随着移动支付的普及,二维码已经成为了一种重要的支付手段。在Java中,我们可以使用第三方库来生成二维码。但是,在使用库的时候,我们通常会有两种选择:使用对象或者使用文件路径。 那么,使用哪种方式更好呢?这个问题并没有一个简单的答案,我们需要...
    99+
    2023-08-29
    二维码 对象 path
  • java无法生成class文件怎么解决
    如果Java无法生成class文件,可能是由于以下几个原因: 代码编译错误:检查代码中是否存在语法错误或逻辑错误,确保代码可以成...
    99+
    2024-02-29
    java
  • Java 精炼解读类和对象原理
    面向对象、面向过程 什么是类? 什么是对象? 这是非常抽象的两个概念!!!!!!!! 在说清楚类和对象的概念之前,给大家讲一下什么是面向对象、面向过程,以此来推出我们类和对象的概念。...
    99+
    2024-04-02
  • 怎么在Android中 library module 生成 class
    这篇文章将为大家详细讲解有关怎么在Android中 library module 生成 class,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Library module 生成 class...
    99+
    2023-05-31
    android library module
  • 关于java的九个预定义Class对象
    目录基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void通过class属性也表示为 Class ...
    99+
    2023-05-20
    java 预定义 预定义Class对象
  • ECMAScript6中Class对象的示例分析
    这篇文章主要为大家展示了“ECMAScript6中Class对象的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ECMAScript6中Class对象的...
    99+
    2024-04-02
  • 【Java 基础篇】Java反射:深入了解Class对象
    Java是一门强类型语言,它要求在编译时知道所有的类和对象类型。然而,有时候我们需要在运行时动态地获取和操作类的信息,这就是Java反射的用武之地。本文将深入探讨Java反射,特别是与Class对象...
    99+
    2023-10-27
    java python 开发语言 ajax 网络 eclipse git 原力计划
  • es6的map对象和原生对象有什么区别
    本篇内容主要讲解“es6的map对象和原生对象有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6的map对象和原生对象有什么区别”吧! ...
    99+
    2024-04-02
  • Java重点梳理类与对象核心原理
    目录前言一、类与对象的基本关系二、类与对象的使用1.类的定义2.对象的创建3.对象的使用4.在类定义内调用方法三、参数传递1.以变量为参数调用方法2.以数组为参数或返回值的方法调用四...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作