常见
基本数据类型和引用类型
类(class), 接口(interface),数组(array),(枚举类型、注解类型、字符串(String)类型) 记录
简单来说,只要不是基本数据类型,都是引用数据类型
方法声明
重写override和重载overload
重写
1.发生在父类与子类之间
2.方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同
3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
重载
1.重载Overload是一个类中多态性的一种表现
2.重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序)
3.重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准
==和equals
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是 指相同一个对象。
比较的是真正意义上的指针操作。
1、比较的是操作符两端的操作数是否是同一个对象。
2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,
集合框架
集合可以分为Map Collection
面试题:https://blog.csdn.net/xiaotai1234/article/details/116094711
array
array是一个固定大小的数据结构,在连续的内存空间中存放相同类型的数据。
array中的每个元素通过索引或者位置识别,首个元素从0开始。
List接口
List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。
arraylist
arraylist继承于abstractlist,继承于AbstractCollection,实现Collection接口
善于随机访问,非同步
linkedList
ArrayList是一个动态数组,而LinkedList是一个双向链表。
LinkedList不能随机访问
Vector
与ArrayList相似,但是Vector是同步的。所以说Vector是线程安全的动态数组。它的操作与ArrayList几乎一样。
Map
单例模式:
懒汉式
1 | class Bank{ |
饿汉式
1 | class Bank{ |
反射机制
所谓反射机制就是让Java在运行时有自观的能力,
作用:
在Java运行时环境中,对于任意一个类,可以知道这个类有哪些属性和方法。对于任意一个对象,可以调用它的任意一个方法。
在运行时判断一个对象所属的类,构造任意一个类的对象
反射相关的主要API
要想解刨一个类必须要获取到该类的class对象,就要使用下面的相关API
java.lang.Class:代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造器