Java中创建对象的四种方式
为什么80%的码农都做不了架构师?>>>
Java中创建对象的四种方式
(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
一.用new语句创建对象
- User user = new User()
二.运用反射手段
(1)调用java.lang.Class.newInstance()
- Class.forName(classname).newInstance()
- Wife wife = (Wife) Class.forName("com.java.clone.Wife").newInstance();
(2)调用java.lang.reflect.Constructor类的newInstance()
- Constructor<Wife> constructor = Wife.class.getDeclaredConstructor(int.class,String.class);
- Wife wife = (Wife) constructor.newInstance(1,"nihao");
三.调用对象的clone()方法
详情参考: http://ncs123.iteye.com/blog/1775631
- Wife wife = new Wife(1,"wang");
- Wife wife2 = null;
- wife2 = (Wife) wife.clone();//运用clone()方法产生新对象
四.运用反序列化手段
被序列化的对象必须implements Serializable
- public class BeanUtil {
- @SuppressWarnings("unchecked")
- public static <T> T cloneTo(T src) throws RuntimeException {
- ByteArrayOutputStream memoryBuffer = new ByteArrayOutputStream();
- ObjectOutputStream out = null;
- ObjectInputStream in = null;
- T dist = null;
- try {
- out = new ObjectOutputStream(memoryBuffer);
- out.writeObject(src);
- out.flush();
- in = new ObjectInputStream(new ByteArrayInputStream(
- memoryBuffer.toByteArray()));
- dist = (T) in.readObject();
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (out != null)
- try {
- out.close();
- out = null;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- if (in != null)
- try {
- in.close();
- in = null;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- return dist;
- }
- public static void main(String[] args){
- Husband husband = new Husband(1);
- Wife wife = new Wife(1,"jin");
- husband.setWife(wife);
- Husband husband2 = cloneTo(husband);//运用反序列生成了一个对象
- }
- }
转载于:https://my.oschina.net/sky319/blog/112634
Java中创建对象的四种方式相关推荐
- java中创建对象的方式有哪些,Java中创建对象的四种方式
四种方式: http://wenku.baidu.com/link?url=mv6VbMd3d-aCkbGMhn6rbLwFbef7v60nRbyA-thP6Y7hqtjiv0K0_kdtfOWaUj ...
- 12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!...
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...
- Java中创建对象的几种方式
Java中创建对象的几种方式 1.使用new创建对象,在堆上创建. 2.克隆 3.反序列化 4.反射创建对象 5.NIO中可以使用本地方法直接分配堆外内存. 转载于:https://www.cnblo ...
- Java中创建对象的5种方式 -[转] http://www.codeceo.com/article/5-ways-java-create-object.html...
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...
- Java中创建对象的5种方式
转载 https://www.cnblogs.com/wxd0108/p/5685817.html 作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然 ...
- Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网
核心提示:Java 是面向对象的语言,不可避免的,"对象"这个概念是 Java 语言的核心部分,这里来简单讨论一下在 Java 中创建一般对象的方法. 总结下来有以下4种创建对象的 ...
- java clone方法_干货满满:Java中创建对象的五种方式详解
通常来说,对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为. 作为Java开发者,我们通常都是使用依赖管理系统,比如Spring去创建Java对象,但使用管理系统创建对象并不是唯一 ...
- Java反射之创建对象的四种方式
Java反射之创建对象的四种方式 1.使用new关键字 2.使用Java反射机制,反射构造器 3.使用克隆方式创建对象Cloneable 4.使用序列化Serializable 1.使用Java反射机 ...
- Java 创建类的四种方式
Java 创建类的四种方式 对于上学期已经学习过c++的同学,是不是对另一大编程语言产生了浓厚的兴趣,对于c++的面向对象编程,又和java的面向变量有何区别,下面我们从java四种创建对象来说起. ...
最新文章
- UA MATH523A 实分析3 积分理论15 乘积测度
- SVM中为何间隔边界的值为正负1
- oracle模块损坏,Oracle中模拟及修复数据块损坏
- Java:放心(或非常容易)
- 剑指Offer——求1+2..+n的和
- 使用between and查找时间范围时的日期边界问题
- Linux写出相应密码的用途,linux运维面试题中级
- 林肯android auto,林肯mkz仪表盘怎么设置中文
- Linux性能测试(UnixBench)(bench)一键脚本
- 天池项目总结,特征工程了解一下!
- 本地设置测试域名转向
- 【NOI2008】 赛程安排
- python+appium在使用swipe滑动时,报错The swipe did not complete successfully的解决办法
- c语言程序设计选修让我学到的东西,电子课程设计心得体会
- ThinkAdmin学习总结
- 普博也有120万房补!40万安家费+50万科启,硕士也可入教职!浙江该高校大量招人...
- docker portainer agent 安装
- 房地产稳经济作用正在显现
- Xz1 android p更新,终于等到:索尼XZ1/XZP港版正式推送Android 9.0更新
- MATLAB BPSK通信系统调制解调仿真原理及代码(二)
热门文章
- manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析
- 5.0安装没有costom mysql_mysql5.0 64位
- python作品_学习 Python 有些枯燥?那是你学错方法了,看这里
- csrf攻击原理与解决方法_信息安全之CSRF攻击
- 网络库urillib3
- 大二学生一年通过信息系统项目管理师+中级
- Python 应用 uWSGI + Nginx 部署
- CentOS7 安装 mircosoft Netcore 自测部署安装
- Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面
- 信息系统项目管理师-项目合同管理考点笔记