c java 多用于_为什么 Java 使用的内存比 C/C++ 多那么多?

回答1:为什么

我们知道,就这2个来说,存放在ram里的数据位置,一般认为只有堆栈这两种,c++占优势的寄存器使用与ram无关,Java的常量池也只少部分在ram只读,大部分在rom里(除非非常庞大)

就栈来说,c++和java都是相似的功能,没有特别大的差异

最大的就在于对堆的处理了

java大概就是new一下就不管了(即使想管也没用啊),他的内存是随着线程的产生和消亡过程不断积累的,只有在gc认为需要清理内存的才会释放内存

c++不管是new还是malloc,大部分程序员应该都是手动用吧,他的内存只有在进行heap操作的时候会显著增加,释放后又平复下去

回答2:是不是利用率低

我认为不是的

这其实是一个应用环境和思路问题

跟你们家扔厨房垃圾一样,肯定是垃圾桶里积累一些垃圾后,打包一次扔掉,因为居家生活方便轻松为主

但是像洁净工厂和超3星厨房一样,垃圾是不能积累的,必须使用厨余粉碎之类的马上处理,因为高级厨房品质和服务为主

他们处理的菜品,就是内存。

java本身对内存的使用并不如c++那么细致,因为他侧重发挥的方向与c++就完全不同(关于面向对象,关于跨平台,等等等可以出好几本书,这里就不说了)

所以java对内存的要求就是,不影响的时候懒得管,影响的时候一次释放,万一来不及就内存溢出

而c++的要求就是,每一次都要合理释放,万一控制不住,未来肯定会内存溢出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值