再看heap 和stack,还有多了解内存

heap

1.堆石一个“运行时”数据区,类实例化的对象就是从堆上分配的空间。

2.在堆上分配的空间一般通过new 等 等指令来创建

3.Java针对指针操作和C++的区别就是,java不需要在空间不用的时候显示释放。

4.JAVA的堆是由垃圾回收机制来负责处理的 ,堆是动态分配内存大小的,GC可以自动回收不在使用的内存空间

5.因为是动态内存所以 存取速度慢。

 

stack

1.存放基础数据类型和对象句柄

2.存取速度比堆快

3.stack的数据可以共享 (Int a=5 int b=5 两个变量都是用在stack的值)

4.stack的数据必须是大小和生命周期确定,缺乏灵活性。

 

可以看看你有多少内存

最大内存

System.out.print("maxMemory:");
System.out.println(Runtime.getRuntime().maxMemory()/1024/1024+"M");

已使用内存

System.out.println(Runtime.getRuntime().totalMemory()/1024/1024+"M");

 

设置java启动内存大小

-Xms256m -Xmx512m

-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size

 

二维数组比一维数组占用更多内存空间

 

用 "arrayCopy()" 提高数组截取速度


即使程序员可以做的只有调用 "System.gc()" 来 " 建议 " 执行垃圾收集器程序,但也不能保证gc执行

 

" 新生代 " 区域设置参数是 "-Xmn" ,用这个参数可以制定 " 新生代 " 区域的大小。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值