创建对象的相关知识补充

简介: 创建对象的相关知识补充

创建对象有六种方法:

一,使用new关键字

这个不必多说了,是最常见和最常用的。

二,Class对象的newInstance()方法

Class clazz = Class.forName(className);
Object obj = clazz.newInstance();

三,构造函数对象的newInstance()方法

Constructor constructor = Test.class.getConstructor();
Test test = constructor.newInstance();

四,对象反序列化

就是将一个对象序列化之后,通过反序列化的方式再还原成一个对象。


五,Object对象的clone()方法

clone()方法就是创建一个对象的副本,这个方法可以生成新的对象。


六,使用Unsafe类创建对象

Unsafe类使用起来并不安全,会加大出错的几率,因此官方并不推介使用。

使用反射方式得到Unsafe的对象,再调用allocateInstance(类名.class)可以拿到一个Object对象。


Java对象初始化的步骤:

在博客深入理解Java虚拟机读书笔记(二)–对象的创建与空间分配及定位中,有较为详细的描述,但是篇幅略长,这里做个总结。

步骤一:检查该类型是否已经加载并初始话,没有初始化的话向下一个步骤走。

步骤二:类被正确的加载完以后,在内存中分配空间以用来放置对象。

步骤三:内存分配完成后,将对象中的自己的字段和继承的字段都初始化为对应的零值。

步骤四:设置该对象的对象头,比如该对象是那个类的实现,GC分带信息等。

步骤五:通过构造函数,将字段赋值及其他信息完成,产生一个可用的对象。


再补充一下,类初始话的时候,各个部分的执行顺序。

如果一个类没有继承吉他类,那么初始化的顺序是:

静态变量–>静态代码块–>普通变量–>普通代码块–>构造函数


如果一个类有继承其他父类,那么初始化的顺序是:

父类静态变量–>父类静态代码块–>子类静态变量–>子类静态代码块–>父类普通变量–>父类普通代码块–>父类构造器–>子类普通变量–>子类普通代码块–>子类构造器

目录
相关文章
|
10月前
|
SQL 数据可视化 大数据
QuickBI产品和服务的双重绝杀
作为一名大数据开发工程师,我从2020年开始接触阿里云服务,最初简单尝试了QuickBI的可视化功能。2022年,因公司需求深入使用QuickBI进行数据可视化,对比多款工具后选定QuickBI,因其模板丰富、生态完善和技术售后出色。使用过程中,QuickBI的技术支持帮助我解决了诸多难题,如图表配置、复杂需求调试和SQL问题排查。其API接口功能给我留下深刻印象,能有效解决用户权限控制问题。如今再次选择QuickBI用于实时数仓的数据可视化建设,希望它能继续保持优质服务,助力更多开发者成为数据报表大师。
298 9
|
JavaScript 前端开发 测试技术
React和Vue的性能对比如何?
需要注意的是,性能不仅仅取决于框架本身,还与开发者的代码质量、架构设计以及项目的优化程度等密切相关。因此,在评估性能时,应该综合考虑多个因素,而不是仅仅局限于框架之间的比较。
726 58
|
供应链 安全 API
2024攻防演练:4大趋势凸显,如何做好常态化安全防御?
2024年全国性攻防演练加剧,呈现四大趋势:0day漏洞转攻供应链,攻击手段多元化,工具更隐蔽智能,API接口成主要目标。瑞数信息研究员陆攀建议企业采取四大防御策略:缩小攻击面,加强供应链安全,提升社工安全意识,及建立0day防御体系。企业需构建常态化的安全防御,以应对日益复杂的网络安全挑战。
584 0
|
存储 缓存 NoSQL
分布式缓存Redis(高级)
Redis使用经验分享
317 0
|
SQL 分布式计算 Java
MaxCompute操作报错合集之查询外部表insert到内部表报错,两表字段一致,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
231 4
|
数据可视化 数据挖掘
SPSS多元对应分析
SPSS多元对应分析
367 0
|
安全 PHP Windows
[dvwa] file upload
[dvwa] file upload
|
监控 应用服务中间件 测试技术
4种典型限流实践保障应用高可用
大家好,我叫黄博文,花名延枚,目前负责云效旗下产品Flow流水线的设计和开发。在微服务架构下,服务越来越多,服务之间的调用也会越来越复杂。如何保障服务的高可用性就成为了一个挑战。之前我参与过的某个产品就曾出过故障,原因是某个API调用突然间增加了数十倍,导致服务负载过高,影响了用户使用。如果当时能够...
585 0
4种典型限流实践保障应用高可用
八大常见位运算总结(非常经典,建议收藏)
八大常见位运算总结(非常经典,建议收藏)
241 0
|
存储 Kubernetes 监控
K8s挂载PVC日志采集“轻量级”玩法
本文介绍一种使用K8s挂载PVC日志采集时的轻量级部署方式。
1622 1
K8s挂载PVC日志采集“轻量级”玩法

热门文章

最新文章