堆:存放引用数据类型的实际数据
栈:存放引用数据类型数据的地址、存放基本数据类型的数据
(因为栈的存取速度快,因此Java将基本数据类型从引用数据类型中分离出来,提高运行速度)
1. 对象模型的四个特点:
抽象(将现实世界中的物体抽象出来)、
封装(将成员变量和成员方法封装在对象中,数据尽量隐藏,设计公有方法来操作它,对象可以更改自己的数据,而其他对象不能更改它的数据)、
继承(子类可使用父类非私有的属性和方法,子类的实例就是父类的实例)
多态(通过方法重载和覆盖实现)
2. 过程模型的特点:针对变量编程、对象的数据和方法没有附着在对象上、以变量赋值改变“当前状态”(安全性降低);
3. 类、对象(实例)
MyClass myClass;//声明对象
myClass =new MyClass(); //对象实例化
new的时候在堆中新建了一个对象。这个对象是MyClass的实例。其中myClass是该对象的引用。New运算符调用类的构造方法。
4. 抽象类(包含抽象方法的类)不能被直接实例化,抽象类就是让子类继承的;
final类不能被继承
5. Java中只传值,不传对象。对于基本数据类型,传递的是数据的副本,更改后不影响元始值;对于引用数据类型,传递的是地址,更改后,会影响原始值。
6. 成员变量在方法体外,局部变量在方法体内(必须显式赋初值)
7. 没有创建对象的代码都是模板或设计图纸;类是写在文件中的,对象是运行在内存中的,main方法是组织者,JVM按照main方法指示、按照类模型制造对象并让他们运行起来。