b站韩顺平java基础
文章目录- java面向对象
- **类与对象的关系**
- **对象的内存布局**
- **类的属性的细节**
- **对象的分配机制**
- **创建对象的流程简单分析**
- **方法调用的机制**
- **方法的细节**
- **方法传参机制**
- **递归的执行机制**
- **递归的注意事项**
- **方法的重载**
- **作用域**
- **构造器**
- **对象创建的流程**
- **this**
- **this的注意事项**
- **IDEA常用快捷键**
- **包**
- **访问修饰符**
- **封装**
- **继承**
- **继承的细节**
- **继承的内存布局**
- **super**
- **方法重写**
- **方法重载和方法重写的区别**
- **多态**
- **java的动态绑定机制**
- **equals和==的对比**
- **hashcode**
- **toString()方法**
- **finalize方法**
栈区:一般存放基本数据类型(局部变量)
堆区:存放对象(Cat cat、数组等)
方法区:常量池(存放常量,比如字符串)、类加载信息
类的属性的细节 对象的分配机制 创建对象的流程简单分析 方法调用的机制 方法的细节 方法传参机制 swap方法传递的是基本数据类型 是值拷贝,形参的任何改变不影响实参的值。
test100方法传递的数组引用,是引用类型(传递的是数组的地址),可以通过形参来影响实参的值。
test200方法传递的是一个对象引用,是引用类型(传递的是对象的地址),可以通过形参来影响实参的值。
递归的执行机制 递归的注意事项 方法的重载 如果方法名相同,参数列表相同,但是返回值类型不同,此时也不构成重载。
作用域 构造器 对象创建的流程- 首先在方法区加载Person类的信息。只会加载一次
- 在堆中分配空间
- 完成对象的初始化
- 默认初始化 age=0 name=null
- 显式初始化 age=90 name=null
- 构造器的初始化 age=20 name=小倩
- 在对象在堆中的地址返回给p(p是对象名,也可以理解为对象的引用)
this.属性名就是当前对象的属性。
哪个对象调用,this就代表哪个对象。
this的注意事项 IDEA常用快捷键 包 访问修饰符 封装 继承 继承的细节 继承的内存布局 super 方法重写 方法重载和方法重写的区别 多态向上转型调用方法的规则如下:
- 可以调用父类中的所有成员(需遵守访问权限)
- 但是不能调用子类中的特有的成员,因为在编译阶段,能调用哪些成员是由编译器决定的
- 最终运行效果看子类(运行类型)的具体实现,即调用方法时,按照从子类(运行类型)开始查找方法,然后调用。
向上转型:父类的引用指向子类的对象
向下转型:把指向子类对象的父类引用,转成指向子类对象的子类引用
java的动态绑定机制 equals和==的对比 hashcode toString()方法 finalize方法


