Java newInstance方法学习


用newInstance与用new是有区别的,区别在于创建对象的方式不一样,前者是使用类加载机制;

newInstance方法要求该 Class 对应类有无参构造方法;
执行 newInstance()方法实际上就是使用对应类的无参构造方法来创建该类的实例,
其代码的作用等价于 a1 = new A();

从jvm的角度看,我们使用new的时候,这个要new的类可以没有加载;
但是使用newInstance时候,就必须保证:1 这个类已经加载;2 这个类已经连接了;

newInstance: 弱类型,低效率,只能调用无参构造;
new: 强类型,相对高效,能调用任何public构造;
newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程;
 

一个使用newInstance()的简单示例,

public class myni {
    public static void main(String[] args) throws Exception {

        StringBuilder s1 = new StringBuilder();
        Class cls1 = s1.getClass();

        Object s2 = cls1.newInstance();
        Class cls2 = s2.getClass();

        System.out.println("Instance s1: " + cls1.toString());
        System.out.println("Instance s2: " + cls2.toString());
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【prometheus-operator】k8s监控集群外redis

1、部署exporter GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x redis_exporter-v1.57.0.linux-386.tar.gz # 解压 tar -zxvf redis_exporter-v1.57.0.linux-386.tar.gz # 启动 nohup ./redi…

流畅的 Python 第二版(GPT 重译)(三)

第五章:数据类构建器 数据类就像孩子一样。它们作为一个起点是可以的,但要作为一个成熟的对象参与,它们需要承担一些责任。 马丁福勒和肯特贝克 Python 提供了几种构建简单类的方法,这些类只是一组字段,几乎没有额外功…

软件管理rpm与yum

源代码包下载 Compare, Download & Develop Open Source & Business Software - SourceForgehttps://sourceforge.net/ rpm包下载 Welcome to the RPM repository on fr2.rpmfind.nethttp://rpmfind.net/linux/RPM/ 软件包管理 1.rpm包管理: 1)查询: 安装…

蓝桥杯Python B组练习——完美的代价

一、题目 问题描述   回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。   交换的定义是…

计算机网络相关

OSI七层模型 各层功能: TCP/IP四层模型 应用层 传输层 网络层 网络接口层 访问一个URL的全过程 在浏览器中输入指定网页的 URL。 浏览器通过 DNS 协议,获取域名对应的 IP 地址。 浏览器根据 IP 地址和端口号,向目标服务器发起一个 TCP…

电影aac是什么意思?如何播放、转换、编辑aac?

"电影AAC"这个术语可能是指电影中的音频编码格式。AAC(Advanced Audio Coding)是一种常见的音频编码格式,通常用于压缩音频文件,以在保持高质量的同时减小文件大小。在电影中,AAC格式的音频通常用于提供高质…

webpack5零基础入门-13生产模式

1.生产模式介绍 生产模式是开发完成代码后,我们需要得到代码将来部署上线。 这个模式下我们主要对代码进行优化,让其运行性能更好。 优化主要从两个角度出发: 优化代码运行性能优化代码打包速度 2.生产模式准备 我们分别准备两个配置文件来放不同的…

【RAG实践】基于 LlamaIndex 和Qwen1.5搭建基于本地知识库的问答机器人

什么是RAG LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented G…

PC 端 LVGL 模拟器之 Visual Studio

LVGL(Light and Versatile Graphics Library)是一个轻量化的、开源的、在嵌入式系统中广泛使用的图形库,它提供了一套丰富的控件和组件,只需要少量的内存和计算资源,使得在资源受限的设备上创建高端的图形界面成为可能…

pycorrector检测OCR错字实践

参考:https://github.com/shibing624/pycorrector/tree/master/examples/macbert stopwords.txt 添加专业停用词,避免错误 设置自定义词典,避免将正确的词错误检测成错误的词 from pycorrector import Corrector m Corrector() m.set_cus…

Mysql——基础命令集合

目录 前期准备 先登录数据库 一、管理数据库 1.数据表结构解析 2.常用数据类型 3.适用所有类型的修饰符 4.使用数值型的修饰符 二、SQL语句 1.SQL语言分类 三、Mysql——Create,Show,Describe,Drop 1.创建数据库 2.查看数据库 3.切换数据库 4.创建数据表 5.查看…

ELK快速搭建图文详细步骤

目录 一、下载地址二、安装docker-compose(已安装则跳过)三、初始化ELK1. 赋予/setup/entrypoint.sh执行权限2. 初始化 docker-elk 所需的 Elasticsearch 用户和组3. 重置默认用户的密码4. 替换配置文件中的用户名和密码5. 重启 Logstash 和 Kibana,使用新密码重新连…

改进粒子群优化算法||粒子群算法变体||Improved particle swarm optimization algorithm

粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,其思想来源于鸟群寻食和鱼群捕食等自然现象。PSO算法通过模拟群体智能的行为,以一种启发式的方式寻找最优解,因此具有全局搜索能…

【FAQ】BSV区块链代码库常见问题解答

​​发表时间:2024年2月27日 BSV区块链协会上线了JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,让开发者可以在BSV区块链上便捷地进行开发,尤其是开发那些可…

C语言中的联合和枚举(未完)

1、联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。因为所有变量公用…

echart多折线图堆叠 y轴和实际数据不对应

当使用 ECharts 绘制堆叠折线图时,有时会遇到 y 轴与实际数据不对应的问题。 比如明明值是50,但折线点在y轴的对应点却飙升到了二百多 解决办法: 查看了前端代码发现在echart的图表中有一个‘stack’的属性,尝试把他删除之后y轴的…

流畅的 Python 第二版(GPT 重译)(八)

第十五章:关于类型提示的更多内容 我学到了一个痛苦的教训,对于小程序来说,动态类型很棒。对于大型程序,你需要更加纪律严明的方法。如果语言给予你这种纪律,而不是告诉你“嗯,你可以做任何你想做的事情”&…

航顺车规级SoC全新亮相,助推汽车智能化发展

受益于汽车电动化、智能化和网联化的推进,汽车车身域和座舱域MCU市场规模持续扩大。据统计,2021年中国车载芯片MCU市场规模达30.01亿美元,同比增长13.59%,预计2025年市场规模将达42.74亿美元。 在技术要求方面,对…

DXP学习1-使用DXP软件创建工程并熟悉相关操作

目录 实验内容(任务) PCB项目文件及原理图文件的创建及保存: 熟悉窗口界面、主菜单、各工具栏及图纸参数的设置: 首先先通过"纸张选择"做如下修改 修改纸张大小👇 修改标题栏的格式👇 修改…

21---EEPROM电路设计

视频链接 EEPROM电路设计01_哔哩哔哩_bilibili EEPROM电路设计 1、存储器的分类 一般根据掉电丢失来划分的存储器。可分为易失性存储器和非易失性储存器。 ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据。 1.1、易失性存储器-R…