IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 面向对象的内存分析 -> 正文阅读

[Java知识库]面向对象的内存分析

JAVA虚拟机内存模型概念:

? ? ?

1.从属于线程的内存区域

? ? ?①程序计数器(Program Counter Register)

? ? ?②Java虚拟机栈(Java Virtal Machine Stack)? ? 栈帧(frame)

? ? ?③ 本地方法栈(Native Method Stack)

2.堆(heap)<创建的对象在这里>

?分为新生代,老年代,永久代<JDK8以后没有永久代>

3.方法区(Method Area)<类信息、常量、静态变量>

运行时常量池(Run-Time Constant Pool),主要存放:①字面量(Literal),如文本字符串、final常量值? ②符号引用

4.直接内存(Direct Memory)

程序执行的内存分析过程?

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

1.虚拟机栈,简称栈。

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

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

(3)栈属于线程私有,不能实现线程间的共享

(4)栈的存储特性是"先进后出,后进先出"? ? //<类比子弹夹里的子弹>

(5)栈由系统自动分配,速度快。栈是一个连续的内存空间

2.堆

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

(2)JVM只有一个堆,被所有线程共享

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

3.方法区(又叫静态区)

(1)方法区是JAVA虚拟机的规范

(2)JVM只有一个方法去,被所有线程所共享

(3)方法区实际上也是堆,只是用存储类、常量相关信息

(4)用来存放程序中永远不变或唯一不变的内容(类信息、静态变量、字符串常量等)

/*
编写Prseon类
*/
public class Person{
	String name;
	int age;
	public void show(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}
/*
创建Person类对象并使用
*/
public class TestPerson{
	
	public static void main(String[] args){
		
		//创建对象p1
		Person p1 = new Person();
		p1 age = 24;
		p1 name = "张三";
		p1 show();
		
		//创建对象p2
		Person p2 = new Person();
		p2 age = 35;
		p2 name = "李四";
		p2 show();
		
		
	}
}

内存分析详解:【【尚学堂】Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通-哔哩哔哩】https://b23.tv/IxYoai

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:03:50  更:2021-08-04 11:04:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 6:45:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码