`
dengminghua1016
  • 浏览: 125642 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java创建实例的几种方法

    博客分类:
  • java
阅读更多
从大体上分,有三种
1.使用new关键字
2.使用反射
3.序列化
4.其他(应该用的反射,不作为新的分类)

再细分
1使用new关键字
a.使用工厂类(接口)
b.克隆clone()方法
public static void main(String[] args) {
Student student1 = new Student("aa", "11");
/**
* 克隆时必须捕获CloneNotSupportedException异常
* */
try {
Student student2 = (Student) student1.clone();
if (student1 != null) {
System.out.println(student2);
} else {
System.out.println("Clone Not Supported");
}
} catch (CloneNotSupportedException c) {
c.printStackTrace();
}
}
}

2.使用反射
a.调用Class的newInstance(),方法
b.使用ClassLoad类,加载类全名,下面同上
//它会调用无参构造方法
// 1.Class.forName 
Dog d2 = (Dog) Class.forName("com.test.Dog").newInstance(); 
d2.say(); 
// 2.Class.forName 
Dog d2 = (Dog) Dog.Class.newInstance(); 
d2.say(); 
// 3.ClassLoader 
ClassLoader c = ClassLoader.getSystemClassLoader(); 
Class classT = c.loadClass("com.test.Dog"); 
Dog d = (Dog) classT.newInstance(); 
d.say(); 

3.序列化
必须继承Serializable接口,比如
public static void main(String[] args)throws IOException {
try {
Student stu=new Student("aa","11");
//创建一个对象输出流
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("d:/obj.dat"));
oos.writeObject(stu);
oos.close();
//创建一个对象输入流
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("d:/obj.dat"));
Object obj=ois.readObject();
Student stuBak=(Student)obj;
//打印数据在控制台,检查序列化和反序列化是否成功
System.out.println("stu name is: "+stuBak.getUsername());
System.out.println("stu pass is: "+stuBak.getPassword());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

4.其他
a.如spring的DI
分享到:
评论

相关推荐

    Java中Executors类中几种创建各类型线程池

    Java中Executors类中几种创建各类型线程池方法及简单实例

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java开发的几种常见设计模式

    java开发的几种常见设计模式. 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new...

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java经典编程源码基础例程300.zip

    实例070 实例化Class类的几种方式 107 实例071 查看类的声明 108 实例072 查看类的成员 110 实例073 查看内部类信息 112 实例074 动态设置类的私有域 113 实例075 动态调用类中方法 115 实例076 动态实例化类 116 ...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    Java范例开发大全(全书源程序)

    实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 6.3.1 servletexception类 224 6.3.2 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 6.3.1 servletexception类 224 6.3.2 ...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 6.3.1 servletexception类 224 6.3.2 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例150 实例化Class类的5种方式 196 实例151 获得Class对象表示实体的名称 197 实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 ...

    Kettle API - Java调用示例

    对向前兼容性的推荐 :如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API。 XML文件兼容Kettle所有版本,同样对job有效的。 下面的例子进行以下操作: 1创建Transformation ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 6.3.1 servletexception类 224 6.3.2 ...

    基础深化和提高-Java多线程技术

    在Java中,实现多线程有几种方式: 继承Thread类:创建一个类继承自java.lang.Thread类,并重写run()方法来定义线程的执行逻辑。然后可以创建该类的实例并调用start()方法启动线程。 java class MyThread extends ...

Global site tag (gtag.js) - Google Analytics