从大体上分,有三种
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实例化对象是编程中的基本操作,它涉及到类的构造,内存分配,...
Java实例化的几种方法总结 Java实例化的几种方法总结是Java编程语言中一个重要的知识点,主要介绍了Java实例化的几种方法总结的相关资料。下面是Java实例化的几种方法总结的详细介绍: 1. 用new语句创建对象 用...
### JAVA单例模式的几种实现方法 #### 一、饿汉式单例模式 饿汉式单例模式是在类初始化时就已经完成了实例化的操作。这种模式下,类一旦被加载,就会创建一个单例对象。 ##### 代码示例: ```java class ...
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型应用程序。这个"Java Applet实例编程"很可能是包含了一系列的Java Applet编程示例,帮助学习者理解如何利用Java ...
在Java学习中,以下几个核心知识点是非常重要的: 1. **基础语法**:包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、比较、逻辑、位操作等)、流程控制(如if语句、switch语句、for循环...
1. 继承Thread类:通过创建新的Thread子类并重写其run()方法,然后创建该子类的实例并调用start()方法来启动线程。这种方式使得线程拥有自己的特定逻辑。 2. 实现Runnable接口:创建一个实现了Runnable接口的类,并...
Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和安全性著称。对于初学者来说,了解并掌握Java的基础知识是至关重要的。这里,我们有五个不同的RAR压缩文件,每个可能包含了一系列的Java实例,这些...
本文将详细探讨C回调Java的几种方法。 1. **注册本地方法** 在JNI中,Java虚拟机(JVM)启动时会加载一个`JNI_OnLoad`函数,这是C代码与Java世界接触的第一个入口。在这个函数中,我们可以使用`RegisterNatives`...
Java操作XML主要涉及三种方法:DOM、SAX和JDOM。每种方法都有其特点和适用场景,下面将详细讲解这三种方法以及它们在处理XML时的工作原理。 1. DOM(Document Object Model)解析: DOM是一种基于树形结构的XML...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能、丰富的类库和强大的功能而闻名。"JAVA基础实例200题"很显然是一份针对初学者或希望巩固Java基础知识的学习资料,它包含了200个不同的练习题目,旨在...
1. 创建Selector:使用Selector.open()方法创建一个Selector实例。 2. 打开SocketChannel:使用ServerSocketChannel.bind()方法监听指定端口,然后调用accept()方法获取连接的SocketChannel。 3. 注册Selector:使用...
2. **布局管理器**: AWT中提供了几种布局管理器,如FlowLayout、BorderLayout、GridLayout和CardLayout,它们用于自动调整组件的位置和大小。例如,`FlowLayout`会按照顺序从左到右、从上到下放置组件,而`...
9. **泛型**:Java泛型提供了一种在编译时检查类型安全的方法,可以避免强制类型转换。理解泛型的声明、约束、通配符等,可以使代码更清晰、更安全。 10. **Java集合框架的高级特性和设计模式**:如并发容器...
这可以通过以下几种方式实现: - 使用`Class.forName()`方法,如`Class<?> clazz = Class.forName("全限定类名");` - 对象的`getClass()`方法,如`MyClass obj = new MyClass(); Class<?> clazz = obj.getClass();...
在这个实例中,我们看到几个Java类,它们展示了如何使用IText进行PDF操作。 首先,`SilentPrintServlet.java`可能是一个实现了PDF静默打印功能的服务端程序。在Java中,由于浏览器限制,客户端无法直接执行PDF打印...
【标题】"从入门到精通 Java编程经典实例"是一本旨在帮助编程初学者及有一定面向对象编程基础的爱好者深入理解Java语言的书籍。通过一系列的经典实例,本书旨在以直观、易懂的方式引领读者掌握Java的核心概念和技术...
本文将详细探讨如何使用Java语言创建一个`Student`类,并通过数组来实例化该类的对象。 #### 创建 Student 类 首先,我们需要定义一个`Student`类,它包含三个私有属性:姓名(`name`)、年级(`grade`)以及所学...
java开发的几种常见设计模式. 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new...