Java——class对象

Class对象的生成方式如下:

1.Class.forName("类名字符串")  (注意:类名字符串必须是全称,包名+类名)

2.类名.class

3.实例对象.getClass()

  1. Class testTypeForName=Class.forName("TestClassType");
  2. System.out.println("testForName---"+testTypeForName);
  3. //测试类名.class
  4. Class testTypeClass=TestClassType.class;
  5. System.out.println("testTypeClass---"+testTypeClass);
  6. //测试Object.getClass()
  7. TestClassType testGetClass= new TestClassType();
  8. System.out.println("testGetClass---"+testGetClass.getClass());

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

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

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

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

时间: 2024-10-09 08:30:38

Java——class对象的相关文章

转载---Java集合对象的深度复制与普通复制

原博文:http://blog.csdn.net/qq_29329775/article/details/49516247 最近在做算法作业时出现了错误,原因是没有弄清楚java集合的深度复制和浅度复制的区别. 1.首先是对Java集合对象得浅复制与深度复制的理解 普通的集合复制只是将内存中栈的地址快拷贝一份,使得一个新的集合对象指向这个地址块,但是集合中的对象变量却是指向堆中的同一块区域.所以当拷贝的集合修改了集合对象内的数据,那么源集合对象也就随之改变了,这样的效果我们称之为Java集合对象

Java Class对象

Java Class对象 @author ixenos 关键字:RTTI.动态绑定.动态加载.获得Class引用.泛型Class引用.newInstance的坑 RTTI和动态绑定 RTTI即运行时类型识别 Run-Time Type Identification 或 Run-Time Type Information 例如,当把Shape对象放入List<Shape>的数组时会向上转型,但在向上转型为Shape的时候也会丢失Shape对象的具体类型,对于数组而言,他们只是Shape对象.从L

如何快速通过json构建java bean对象

和第三方对接的时候,返回给我们的json时参数字段多是很常见的现象,所以我们手动去创建javabean肯定是要花费不少时间,可用通过json自动生成javabean的工具,这里简单的介绍一下Intellij IDEA 中的插件GsonFormat. 1.什么是GsonFormat 将json数据格式转换为java bean对象的as插件. 2.快捷键 Ctrl+ALT+S,或settings -->Plugins -->输入GsonFormat   install plugins 安装完成,重

Java实现对象的序列化

什么是对象的序列化? 序列化:把对象转化成字节序列的过程就是对象的序列化:反序列化:把字节序列转化成对象的过程就是对象的反序列化.单看概念比较抽象,但是看代码就会明白. 对象序列化的用途 1.Java程序在运行中,对象都是分配在内存中,而序列化的一个用途就是将内存的中对象转化成磁盘中的对象. 2.对象不能直接在网络中传输,有时候需要将对象转成字节序列在网络中传输,这就是对象序列化的第二个用途. 如何实现对象的序列化? 1.新建一个实体对象,实现Serializable接口,这个实体对象就可以进行

spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(value = { "/actor_details" }, method = { RequestMethod.POST }) @ResponseBody public ResultObject actorDetails(@RequestBody ActorDetailsRequest req)

Java类对象数组声明和初始化

Java是纯面向对象语言.类是其重要构成单位. 然后,在实际编程中,我们会自己定义一些类,如Point <span style="font-size:14px;">public class Point { public Point(){ Lat=0.0; Lng=0.0; } public double GetLat(){ return Lat; } public double GetLng(){ return Lng; } public void SetLat(doubl

Android中关于JNI 的学习(三)在JNI层访问Java端对象

前面两篇文章简单介绍了JNI层跟Java层的一些对应关系,包括方法名,数据类型和方法名称等,相信在理论层面,能够很好地帮助我们去了解JNI在Native本地开发中的作用,对JNI的一些概念也有了一个初步的认识,由于表达能力或者理解还是有限,有些地方讲得不是很清楚,如果各位朋友有觉得云里雾里,欢迎大家留言一起学习. 概念上的理解有助于我们更好地认识JNI,而一些实际点的例子则能够更好地帮我们从代码上去掌握并应用JNI. 在第一篇文章,我们是从一个小例子来入门学习的,在其中,我们通过JNI层函数返回

Java面向对象-对象的多态性

Java面向对象-对象的多态性 Java中的多态性表现: 1,方法的重载和重写(覆盖): 2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现: 我们先搞个父类Animal: 1 package com.java1234.chap03.sec13; 2 3 public class Animal { 4 5 public void say(){ 6 System.out.println("我是一个动物"); 7 } 8 } 再搞两个子类,分别是Dog和Cat类,

[转]java类 对象 和构造方法

github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等等,他们都能跑,都能呼吸,总之他们有一些动物的共同特征,java中可以把他们归为一类.这就是java中的类:而猫,狗等,就是这个类中的一个具体的对象.猫,狗又有一些动作行为,就是方法.当你想调用那些动作行为的时候,不能直接在类中调用,因为不同的动物的行为不一样,你就必须new一个对象,来调用. ja

Java Object 对象创建的方式 [ 转载 ]

Java Object 对象创建的方式 [ 转载 ] @author http://blog.csdn.net/mhmyqn/article/details/7943411 显式创建 有4种显式地创建对象的方式: 1.构造器:用new语句创建对象,这是最常用的创建对象的方式. 2.反射:运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法. 3.克隆:调用对象的clone()方法. 4.序列化:运用反