Java:面向对象理解、集合、IO、NIO、并发、反射源码分析
一.面向对象
1.创建对象的5种方式
(1)使用new关键字(2)使用Class类的newInstance方法(3)使用构造函数类的newInstance方法(4)使用clone方法 --》未实现Cloneable会报错(5)使用反序列化5动态代理
2.this、super的用法
它们都是用来调用构造器,有什么区别呢?
(1)thisthis.属性名;当局部变量与成员变量名称相同时,使用this关键字代表成员变量如果局部变量和成员变量名称不同,this可以省略this.方法名();本类中可以省略thisthis();this("小花",2);调用本类的构造函数,首行、只能用一个(2)supersuper.属性名;当父类和子类有相同的同名成员变量时,调用父类中的普通中的属性super.方法名(); ❌调用父类的成员方法super();super("小花",2);调用父类的构造方法,首行、只能用一个
3.static、final的用法 JVM内存模型
(1)static[1]属性 --静态变量/类变量≠成员变量[2]方法 --静态方法/类方法(no Constructor)[3]代码块 --静态代码块[4]内部类 --静态内部类(2)final[1]修饰类 --不能被继承[2]修饰方法 --不能被重写[3]修饰变量 --值不能修改,常量
4.abstract、interface的用法
接口、抽象类的区别,普通方法、抽象方法的区别
5.extends、implements的用法
继承、实现的区别
.@Override方法的重载、方法重写的区别继承:当我们想要一个模板,实现多种对象,把代码提取出来放到一个单独的类中 --这个存放的类叫作父类父类(超类,基类): 被继承者子类(派生类) : 继承者语法:public class 子类名 extends 父类名{}注意事项:1、一个类只能直接继承一个类,但是可以间接继承其他类2、一个类如果没有明确extends另一个类,那么默认继承Object类:一个类,是所有类的超类范围:子类可以继承父类的所有数据,包括私有数据,但是要间接访问,构造函数不能继承好处:省代码方法重写:如果子类和父类方法名完全相同,子类的这个方法就叫做方法的重写重写需要注意的地方:1、构成重写的条件: 方法的返回值,方法名,参数列表要完全相同,修饰符的范围不能小于父类 2、私有的方法和构造函数不能被重写3、静态方法不存在重写的概念,但是可以被继承
6.向上转型、向下转型
7.静态代码块、构造代码块、同步代码块
8.静态内部类、匿名内部类
9.面向对象的理解
10.类变量、实例变量、全局变量、局部变量的区别
类变量:独立于方法之外的变量,用static修饰实例变量/全局变量:独立于方法之外的变量,不过没有static修饰局部变量:类的方法中的变量
11.各种数据类型的显示转换、隐式转换
Object是所有引用类型的父类 包装类型都是Number的子类java.lang.包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean整型常量池的长度是固定的, byte
11.交换两个对象的数值
二.集合
1.HashMap源码分析
Java中基本数据结果 –》数组、指针(引用)
(1)影响性能 --》初始容量、加载因子容量:哈希表中的桶的容量,初始容量:哈希表创建时的容量,加载因子:哈希表扩容之前能达到的容量百分比(2)寻址方式key-计算方式-hashcode-数组长度取模 位移运算
更新中…