全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈java中类名.class, class.forName(), getClass()的区别

Class对象的生成方式如下:

1、类名.class   

说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象

2、Class.forName("类名字符串")  (注:类名字符串是包名+类名) 

说明:装入类,并做类的静态初始化,返回Class的对象

3、实例对象.getClass() 

说明:对类进行静态初始化、非静态初始化;返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象

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

public class TestClass {
public static void main(String[] args)
{

try {
//测试.class

Class testTypeClass=TestClassType.class;

System.out.println("testTypeClass---"+testTypeClass);


//测试Class.forName()

Class testTypeForName=Class.forName("TestClassType");    

System.out.println("testTypeForName---"+testTypeForName);


//测试Object.getClass()

TestClassType testTypeGetClass= new TestClassType();

System.out.println("testTypeGetClass---"+testTypeGetClass.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("----非静态的参数初始化---");

}    

}

测试的结果如下:

testTypeClass---class TestClassType

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

testTypeForName---class TestClassType

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

----构造函数---

testTypeGetClass---class TestClassType

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

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

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

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

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

以上这篇浅谈java中类名.class, class.forName(), getClass()的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # class.forname  # Java 编程如何使用 Class.forName() 加载类  # Java之Class.forName()用法案例详解  # Java Class.forName()用法和newInstance()方法原理解析  # java中Class.forName方法的作用详解  # java中Class.forName的作用浅谈  # Java 中的 Class.forName(类名) 使用及原理解析  # 就会  # 给大家  # 三种  # 加载  # 是在  # 还没有  # 放在  # 这段  # 希望能  # 此类  # 只有一个  # 不做  # 当我们  # 这篇  # 而非  # 浅谈  # 小编  # 大家多多  # 并做  # 则把 


相关文章: 建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  小程序网站制作需要准备什么资料,如何制作小程序?  制作电商网页,电商供应链怎么做?  图册素材网站设计制作软件,图册的导出方式有几种?  已有域名能否直接搭建网站?  制作销售网站教学视频,销售网站有哪些?  建站主机与虚拟主机有何区别?如何选择最优方案?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  网站制作网站,深圳做网站哪家比较好?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  表情包在线制作网站免费,表情包怎么弄?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何基于PHP生成高效IDC网络公司建站源码?  如何高效利用亚马逊云主机搭建企业网站?  如何实现建站之星域名转发设置?  网站制作报价单模板图片,小松挖机官方网站报价?  模具网站制作流程,如何找模具客户?  长沙做网站要多少钱,长沙国安网络怎么样?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  小型网站建站如何选择虚拟主机?  太平洋网站制作公司,网络用语太平洋是什么意思?  ,柠檬视频怎样兑换vip?  如何快速查询网站的真实建站时间?  在线制作视频网站免费,都有哪些好的动漫网站?  代刷网站制作软件,别人代刷火车票靠谱吗?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何在新浪SAE免费搭建个人博客?  c# 服务器GC和工作站GC的区别和设置  linux top下的 minerd 木马清除方法  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  jQuery 常见小例汇总  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  MySQL查询结果复制到新表的方法(更新、插入)  如何在七牛云存储上搭建网站并设置自定义域名?  *服务器网站为何频现安全漏洞?  建站之星在线版空间:自助建站+智能模板一键生成方案  制作农业网站的软件,比较好的农业网站推荐一下?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何在西部数码注册域名并快速搭建网站?  建站之星Pro快速搭建教程:模板选择与功能配置指南  广平建站公司哪家专业可靠?如何选择?  开心动漫网站制作软件下载,十分开心动画为何停播?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何在阿里云虚拟服务器快速搭建网站?  建站之星如何助力网站排名飙升?揭秘高效技巧  如何在香港服务器上快速搭建免备案网站?  高性价比服务器租赁——企业级配置与24小时运维服务 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。