1、方法修饰符访问级别
- public > default > protected > private
2、修饰符的使用范围
3、常见Java容器类型区别
4、接口和抽象类的相同和不同点
相同点:
- 都不能被实例化
- 只有在实现或继承后实现类或子类才能实例化
不同点:
- 关键字:实现接口implements;继承抽象类 extends。
- 关系:接口可以有多个实现类;抽象类只能有一个继承类。
- 成员变量:接口只能是public static final修饰的,且必须赋初值;抽象类可以是public,default,protected,private修饰的。
- 成员方法:接口只能public abstract修饰的;抽象类可以是public abstract的抽象方法,也可以是其他正常方法。
5、Object类中方法
6、原始类型 (8种)
- 浮点型:float,double(包装类:Float,Double)
- 布尔型:boolean(包装类:Boolean)
- 字符型:char(包装类:Character)
- 数值型:byte,short,int,long(包装类:Byte,Short,Integer,Long)
7、实现多线程的方法
- 继承Thread类,重写run方法
- 实现Runnable接口,实现run方法
- 实现Callable接口,重写call方法
8、什么是不可变量类,包括哪些
- 不可变类:是指创建实例之后,就不允许修改它的值,只允许读操作
- 基本类型的包装类:Short, Integer, Long, Float, Double, Byte, Character, Boolean
- 此外String类等
参考资料: https://www.cnblogs.com/jaylon/p/5721571.html https://www.zhihu.com/question/20618891
9、关键字功能介绍
static
- 为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。
- 在不创建对象的情况下,可以通过类来直接调用方法或使用类的属性。
- 被static修饰的属性(方法)是类的属性(方法),不属于任何对象。
synchronized
- 主要用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块时,同一时刻最多只有一个线程执行这段代码。
serialize
- 序列化,将对象的字节序列永久地保存到硬盘上,通常存放在一个文件中。
- 在网络上传送对象的字节序列。
对象的序列化指的是把对象转换为字节序列的过程。 对象的反序列化指的是把字节序列恢复为对象的过程。
transient
- 一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
- transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。
- 被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。
volatile
- 保证变量对所有的线程的可见性,即当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。
- 禁止编译器 指令重排优化。
final
- 修饰类,表明这个类不能被继承(断子绝孙类)。
- 修饰方法,这个方法不能被子类重写。
- 修饰变量,如果是基本数据类型的变量,则其数值一旦被初始化之后便不能更改,如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
supper
- 调用父类的构造方法、父类的方法和属性
this
- 调用当前对象的某个方法或某个成员时
10、构造方法
- 类中的构造方法是可以省略的,当省略的时候,编译器会提供一个默认的构造方法以供使用。
- 构造方法必须与类名相同。
- 构造方法可以重载,一个类可以定义多个构造方法。
- 当一个对象被 new的时候必定会调用构造方法。