1、java内存分析

2.2、面向对象内存分析

Java虚拟机的内存可以分为三个区域:栈(stack)、堆(heap)、方法区(method area);

2.2.1、栈

栈的特点如下:

1、栈描述的是方法的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等);

2、JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等);

3、栈属于线程私有,不能实现线程键的共享;

4、栈的存储特性是:先进先出,后进后出;

5、栈是有系统自动分配,速度快;栈是一个连续的内存空间;

2.2.3、堆

堆的特点如下:

1、堆用于存储创建好的对象和数组(数组也是对象);

2、JVM只有一个堆,被所有线程共享;

3、堆是一个不连续的内存空间,分配灵活,速度慢;

2.2.4、方法区

方法区特点如下:

1、JVM只有一个方法区,被所有线程共享;

2、方法区实际也是堆,只是用于存储类、常量相关的信息;

3、用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等);

public class SxtStu {
int id;
String sname;
int age; Computer comp;//计算机 void study(){
System.out.println("我在认真学习,使用电脑:"+comp.brand);
} void play(){
System.out.println("我在玩游戏:王者农药!");
} SxtStu(){ } public static void main(String[]args){
SxtStu stu=new SxtStu();
stu.id=1001;
stu.sname="小明";
stu.age=18; Computer c1=new Computer();
c1.brand="联想"; stu.comp=c1; stu.play();
stu.study();
} } class Computer{
String brand;
}

最新文章

  1. Linux删除多个java进程的其中一个
  2. 读javascript高级程序设计17-在线检测,cookie,子cookie
  3. offsetTop、clientTop、scrollTop、offsetTop
  4. FFmpeg-20160428-snapshot-bin
  5. 深入分析 ThreadLocal 内存泄漏问题
  6. 「OC」类的深入研究、description方法和sel
  7. 3天CSS总结
  8. Windows API 之 CreateThread、GetExitCodeThread(未完)
  9. poj2976(01分数规划)
  10. 蓝桥杯比赛javaB组练习《方格填数》
  11. 安装Sublime Text 3插件的方法:
  12. 一、Html简介
  13. redux+saga+reducer
  14. vue的基本操作
  15. 行业观察报告:从SAAS困局看行业趋势 ZT
  16. Addition Chains
  17. Android 编码规范
  18. Thinkphp 关联模型
  19. tispark部署步骤
  20. 反爬虫和抗DDOS攻击技术实践

热门文章

  1. C++练习2 强制类型转换
  2. pdf转MD、HTML、word网址收集
  3. 题解 P7623 [AHOI2021初中组] 收衣服
  4. [EULAR文摘] 新证据: NSAID对AS放射学进展的影响
  5. .Net 调用 sqlserver 存储过程实例
  6. nodemon 实现 TypeScript 项目热部署
  7. PG统计信息和系统表
  8. Landsat数据在USGS中无法下载Surface Reflectance产品的解决方法
  9. 客户端发送信息给服务器以及服务器接收客户端发来的信息(socket)
  10. Springboot 添加redis