*菜鸟求问:java 的 加载类和实例化的区别?分别有什么作用?*

蓝水晶飞机
蓝水晶飞机 05/05 16:54

加载就是 defineClass,实例化就是 newInstance。

JVM ClassLoader 加载指定路径的类,加载到内存里面,并可能会执行这些类的 static 代码块。

newInstance 创建类的实例,为实例分配专用的内存。

JPer
JPer 05/05 16:41

有new才有加载

cion
cion 05/05 16:49

加载是找设计图纸,实例化是根据设计图纸造飞机。

星汉
星汉 05/05 16:56

具体来说,就是当你需要用到一个类的时候,JVM会预先将这个类加载到内存中,这个过程你是看不到的。实例化就是真用的new出了一个对象,就是将一个类具体到一个对象上。

举个例子,你要喝水,那么你会用水瓢从水缸里取出水来喝,JVM所干的事情就相当于替你取水到水瓢中,那么水缸就相当于你的硬盘,水瓢就相当于内存,你真正喝水的时候相当于实例化。你不喝水,那么水也是在水瓢中,当你喝的时候就可以直接喝了,也就是你可以直接new对象了。

风青山
风青山 05/05 16:58

加载类是查找并准备图纸,实例化是使用准备好的图纸新建对象。

非洲小白先生
非洲小白先生 05/06 15:08

总结起来时new对象的时候有两步:(1)类的加载;(2)实例化。

JVM(java虚拟机)会预先将类加载进内存,这个就是类的加载(你自己是看不到的)。

类的实例化,就是从类到具体的一个对象。

另外补充一下,使用getInstance()方法进行实例化类的时候不存在类的加载,类在之前就已经加载好了。如有错误,欢迎指正!

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值