类与对象
严小超
程序猿
展开
-
类的生命周期
引言:java虚拟机为java程序提供运行时环境,其中一项重要的任务就是管理类和对象的生命周期。类的生命周期从类被加载、连接和初始化开始,到类被卸载结束。当类出于生命周期中时,它的二进制数据位于方法区内,在堆区内还会有一个相应的描述这个类的Class对象。只有当类处于生命周期中时,java程序才能使用它,比如调用类的静态属性和方法,或者创建类的实例。java虚拟机及程序的生命周原创 2013-09-10 21:50:08 · 682 阅读 · 0 评论 -
类的初始化时机
前面讲过,java虚拟机只有在程序首次主动使用一个类或接口的时候才会初始化它。只有6种活动被看作是程序对类和接口的主动使用:1、创建类的实例。例如new语句创建实例,或者通过反射、克隆及序列号手段来创建实例。2、调用类的静态方法。3、访问某个类或接口的静态变量或者对该静态变量赋值。4、调用java API中某些反射方法,比如调用Class.forName("Worker")方法,加原创 2013-09-12 21:48:42 · 1211 阅读 · 0 评论 -
对象的声明周期
创建对象的方式有4种显示地创建对象的方式:1、new语句创建对象2、运用反射,调用java.lang.Class或者java.lang.reflect.Constructor的newInstance()方法3、调用对象的clone()方法4、运用反序列化手段,调用java.io.ObjectInputStream的readObject()方法java虚拟机创建一个对原创 2013-09-26 21:53:13 · 570 阅读 · 0 评论 -
java里面的transient和volatile
transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。我们知道,把一个对象写入到文件里面,是要对对象进行序列化的,不然会报错,例如一下,对TestBean这个类进行了序列化,但是对其属性address加了一个transient修饰符,说明这个属性不需要序列化,所以address的值不会写入到文件里面去,原创 2013-09-18 15:51:37 · 925 阅读 · 0 评论