基本概念的理解
例如:Dog dog = new Dog();
对象:new Dog()为对象,
对象的引用: dog为对象的引用
成员变量:方法外部,类的内部定义的变量,成员变量必须初始化
局部变量:方法或语句块内部定义的变量
栈:存放基本类型的数据和对象的引用,栈中的数据大小和生命周期是可以确定,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是 确定的,缺乏灵活性。栈中主要存放一些基本类型的变量数据(int, short, long, byte, float, double, boolean, char)和对象句柄(引用)。的,当没有引用指向数据时,这个数据就会消失
堆:存放用new产生的数据,由Java虚拟机的自动垃圾回收器来管理
静态域:存放在对象中用static定义的静态成员
常量池:存放常量,常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值(final)还包含一些以文本形式出现的符号引用