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小时内与您取得联系。