建立一个对象都在内存中作了什么事情?数组
1:先将硬盘上指定位置的person.class文件加载进内存。jvm
2:执行main方法时,在栈内存中开辟了main方法的空间(压栈—进栈),而后在main方法的栈区分配了一个变量p。ide
3:在堆内存中开辟一个实体空间,分配了一个内存首地址值。new函数
4:在该实体空间中进行属性的空间分配,并进行了默认初始化。spa
5:对空间中的属性进行显示初始化。对象
6:进行实体的构造代码块初始化。继承
7:调用该实体对应的构造函数,进行构造函数初始化。()接口
8:将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)内存
public static void main(String[] args){}
字符串
public:访问权限最大。
static:不须要对象,直接类名便可。
void:主函数没有返回值。
main:主函数特定的名称。
(string[] args):主函数的参数,是一个字符串数组类型的参数,jvm调用main方法时,传递的实际参数是 new string[0]。
jvm默认传递的是长度为0的字符串数组,咱们在运行该类时,也能够指定具体的参数进行传递。能够在控制台,运行该类时,在后面加入参数。参数之间经过空格隔开。jvm会自动将这些字符串参数做为args数组中的元素,进行存储。
抽象类和接口的区别:
1:抽象类只能被继承,并且只能单继承。
接口须要被实现,并且能够多实现。
2:抽象类中能够定义非抽象方法,子类能够直接继承使用。
接口中都有抽象方法,须要子类去实现。
3:抽象类使用的是 is a 关系。
接口使用的 like a 关系。
4:抽象类的成员修饰符能够自定义。
接口中的成员修饰符是固定的。全都是public的。