- ClassLoader将xx.class文件加载到JVM中的方法区内存区,代码片段在内存中只有一份,但是重复调用时,会在栈内存空间分配内存。 栈内存中分配方法运行时所需要的内存空间。方法调用时,会给该方法分配独立的内存空间,在栈中分配,此时发生压栈动作,当方法调用结束时,给方法分配的内存空间会全部释放,此时发生弹栈动作。
- 局部变量运行阶段在栈中分配内存
- JVM中内存空间包含但不限于 栈内存,堆内存,方法区内存
- 方法重载:不同的方法名字一样,但是参数不同。功能是近似的才有必要进行重载
方法重载和返回值类型,修饰符列表无关,和方法名和参数列表有关 - 实例变量系统赋初始值是在构造函数执行过程中完成的。
- 构造方法的作用:一是创建对象,二是创建对象的同时,初始化实例变量的内存空间。(也就是赋值)
- 参数传递时:传递的都是变量里存放的东西,基本数据类型变量里保存的是值,引用数据类型里保存的是对象的地址。
- this 使用一定要在有实例时,表示的是当前这个对象
- static方法执行过程中没有“当前对象”,没有实例,是可以通过类名访问的(当然也可以通过引用访问),此时“上下文”没有“当前对象”,也就没有this
- this的使用场景:一是在实例方法中 代表当前对象 二是构造方法中 使用当前的构造方法调用其他的构造方法
- 带static的方法既可以采用类名的方式访问,也可以采用引用的方式访问。即使使用引用访问,实际上执行的时候和引用指向的对象无关,会被默认转换成类名访问。所以此时不会出现空指针异常。比如建立一个实例,将它指向null,然后访问带static的方法,不会出现异常。
- 静态变量在类加载的时候初始化,内存已经开辟了
- 静态代码块 子类加载时执行,并且只执行一次。可以定义多个静态代码块。static{}
- 单继承,不能继承私有的和构造方法。其他的都可以继承。隐式继承java.lang.Object

- super保存的不是地址,不是对父类的引用,super代表的只是当前对象继承的父类型特征。当子类和父类中有相同数据时,想在子类中访问父类中的特征,则使用super

被折叠的 条评论
为什么被折叠?



