1、内存区域
1) 堆
2) 方法区
3) 栈
4) 值栈
5) 字符串池
2 堆
包含:
1* 对象数据, 普通属性
问题:
1* Java 中是否有指针?
Java中没有指针, 因为不能声明指针类的变量,
但引用类型变量底层封装了指针
2* Java中是按引用传递还是按值传递的(都对)
按引用传递:方法调用完, 是否会改变参数的原始数值
(基本型不会改变, 引用型会改变)
按值传递: 基本型拷贝的具体的数值, 引用型拷贝的内存首地址
3、方法区
包含:
1* 类结构
2* 静待变量的数值
3* 所有方法代码
4、栈
默认内存空间: 1M
包含:
变量的值
引用型: 内存首地址
基本型: 变量值
5、对象使用
声明对象: 分配栈内存, 类似于指针类型变量
创建对象: 根据方法区模板, 分配堆内存, 存储具体值
注:
Java 中 值类型 是按照值传递
引用类型 是按照引用传递(本质上是地址传递)
6、垃圾回收
如果一块堆内存, 没有任何一个指向它的引用, 则视其为垃圾内存
垃圾回收车(garbage collector)运行时刻:
1* 内存资源不够用
2* 系统资源闲置
3* 利用" System.gc "方法 建议垃圾回收车运行(不一定运行)
在对象内存被回收(释放)时调用
为方便大家学习 适合0基础学习Java的教学视频 可以跟着这个视频教程一起来学习Java哦



