java 运行时内存分配 堆和栈区别
2015-08-25 14:46
447 查看
java 运行时 内存 分配
一个java进程可以包含多个线程一个Java进程对应唯一一个JVM实例
一个JVM实例唯一对应一个堆
每一个线程有一个自己私有的栈
这儿也可以看出线程共享进程的堆, 但不共享栈
这篇文章里有一道 线程和进程面试题
堆
堆是被线程共享的一个进程只有一个堆
堆中存放对象本身和数组本身
java 中, 数组(比如 int[]) 也是继承Object对象, 不是继承Object[]
栈
数据结构里面讲了, 栈是先入后出栈中存放的是对象的引用(声明和引用对象是有先后顺序的, 可能也是和栈有关)
堆和栈比较
栈的速度比堆快, 堆分配比栈灵活一般来说, 可用的堆空间比栈大
静态存储区
这点好像有异议, java 到底有没有静态存储区?一般 带有
static关键字的就存放在静态存储区
细节的就不要深究了
相关文章推荐
- Java字符串中判断是否有汉字
- Maven更改默认Jdk版本
- 解决 eclipse 上 Keystore was tampered with, or password was incorrect
- java 实现atof函数
- java 随机函数比较
- Java IO流->节点流->字符流:FileReader与FileWriter
- 将java程序编译成独立运行的exe文件
- 【已解决】Exception java.net.ConnectException: Error opening socket to server Connection timed out.
- Spring MVC hello world example
- 学习日志---串的匹配模式(BF和KMP)
- springmvc学习笔记(九)文件上传
- java下载excel文件源码(可选择保存文件路径)
- java系统高并发解决方案
- Java调试的变迁:从System.out.println到log4j
- java web 登录后更新JSESSIONID
- 深入理解Java:SimpleDateFormat安全的时间格式化
- Spring 3 MVC hello world example – Annotation
- Java中的日历类Calendar的常用方法(所有方法都在客户端测试过)
- Java批量插入数据
- 《Java溯本求源》-Java基本数据类型