JAVA全系列 教程
3762个小节阅读:7090.4k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
学习内存模型是为了更好理解面向对象
我们前面做过的内存分析过程:
Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。
虚拟机栈(简称:栈)的特点如下:
堆的特点如下:
方法区(也是堆)特点如下:
方法区是JAVA虚拟机规范,可以有不同的实现。
i. JDK7以前是“永久代”
ii. JDK7部分去除“永久代”,静态变量、字符串常量池都挪到了堆内存中
iii. JDK8是“元数据空间”和堆结合起来。
JVM只有一个方法区,被所有线程共享!
方法区实际也是堆,只是用于存储类、常量相关的信息!
用来存放程序中永远是不变或唯一的内容。(类信息【Class对象,反射机制中会重点讲授】、静态变量、字符串常量等)
常量池主要存放常量:如文本字符串、final常量值。
实时效果反馈
1. 如下关于java的内存模型,错误的是:
A 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧
B 栈是一个不连续的内存空间!
C 堆用于存储创建好的对象
D 方法区实际也是堆,只是用于存储类、常量相关的信息!
答案
1=>B