Java中Heap与Stack的区别
2014-10-02Java
2558
1.Heap是 Stack的一个子集。2.Stack存取速度仅次于寄存器,Stack里面的数据可共享,但是其中数据的大小和生存期必须在运行前确定。3.Heap是运行时可动态分配的数据区,从速度看比Stack慢,Heap里面的数据不共享,大小和生存期都可以在运行时再确定。
1.Heap是 Stack的一个子集。
2.Stack存取速度仅次于寄存器,Stack里面的数据可共享,但是其中数据的大小和生存期必须在运行前确定。
3.Heap是运行时可动态分配的数据区,从速度看比Stack慢,Heap里面的数据不共享,大小和生存期都可以在运行时再确定。
4.new关键字 是运行时在Heap里面创建对象。每new一次都一定会创建新对象,因为堆数据不共享。
♦String str1= new String("xyz"); (1)
♦String str2= "xyz"; (2)
♦str1是在Heap里面创建的对象。str2是指向Stack里面值为"xyz"的引用变量,语句(2)的执行,首先会创建引用变量str2, 再查找Stack里面有没有"xyz",有则将 str2指向"xyz",没有则在Stack里面创建一个"xyz",再将str2指向"xyz"。
很赞哦!(482)
- 上一篇
Java通过Jedis连接Redis的三种方式的操作工具类
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
- 下一篇
Tomcat 启动时 SecureRandom 非常慢解决办法
最近使用阿里云的 Ubuntu 16.04 ESC服务器运行 Tomcat时发现,Tomcat启动的特别慢,通过查看日志,发现时间主要花在实例化 SecureRandom对象上了。实例化该对象使用了253秒,导致整个应用启动了275秒之久。