内存
内存分析
Java虚拟机的内存大分为三个区域:栈,堆和方法区,其实细分是只有两个,因为方法区也是在堆里的。
栈(stack):
- 每个方法被调用都会创建一个栈帧,用以存储局部变量、操作数和方法出口
- 每创建一个线程都会为该线程创建一个栈,用以存储局部变量的基础数据类型和引用数据类型的引用
- 栈是线程私有的,数据不能在线程间共享
- 存储特点是:先进后出,后进先出
- 一个连续的内存空间!由系统自动分配,速度快!
堆 heap:
- 堆用于存储创建好的对象和数组,也就是new出来的对象
- JVM只有一个堆,被所有线程共享
- 一个不连续的内存空间,分配灵活,速度慢!
方法区:
- 方法区是在堆里的,也是被所有线程共享
- 用于存储类、常量相关的信息
- 方法区中还存在一个静态方法区,里面是存放
static
修饰的方法,是和类一起加载的
引用类型:
除基本类型外,其他的类型都是引用类型,引用就是对象的内存地址
类属性:
也叫成员变量,代表着类的属性,其作用范围是类的全局范围,定义格式:[modifiers] type name = [value]
,定义类属性可以不对其初始化,Java会使用默认的值对其初始化(整数:0,浮点数:0.0,char:u0000,boolean:false,引用类型:null)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!