为什么Java中代码可以正常运行,封装成方法后却出现bug?(未完)
参考价值:未完善,不建议参考、等待重置(遥遥无期)
解决标题问题需要以下知识点:
- 栈和堆
- 基础数据类型和引用数据类型
- 局部变量
- 数组和类的声明和初始化解析
知识点解释:
栈和堆
栈和堆是内存中的两个存储结构,相互之间通过地址进行联系。
栈:
用于存储局部变量,声明变量并初始化后没有默认初始化值,赋值后才能使用,方法结束后会被垃圾回收机制清理掉(不会立刻清理)。
ps:通常说的栈是指虚拟机的栈
堆:
用于存储对象实例和数组的元素也就是new出来的东西,通过地址和栈里的局部变量相关联,如果关联消失会被垃圾回收机制清理掉(不会立刻清理)。
堆里的数据具有默认初始化值。
局部变量:
在方法(包括main方法)和参数列表里声明的变量都是局部变量。
基础数据类型和引用数据类型:
基础数据类型:
整型、char型、浮点型、布尔型都属于基础数据类型
引用数据类型:
只能用来存储地址或null,一般用来和基础数据类型产生联系。
数组的声明和初始化解析:
数组的类型:
数组的类型是引用类型
数组的元素是基本数据类型或者引用数据类型(类的数组)。
声明并初始化一个数组在内存中的实现:
1
int[] num = new int[3];
类的声明和初始化解析:
类的对象是引用类型存储在栈里,是局部变量,与类的实例相关联
类的声明和初始化:
1
2
3
4
5
6
7
8
9
10
11public class Text{
public static void main(String[] args){
Worker xiaoming = new Worker();
}
}
class Worker{
//属性:
String name;
int age;
boolean isMale;
}类的声明(创建一个对象):
1
Work xiaoming;
对象的初始化:
1
xiaoming = new Worker();
案例分析:
1 | class Text{ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 青春玩命的年代!
评论