final、finally、finalize区别,怎么使⽤?
Final是关键词
Finally是try块结束时必须执行的代码块
Finalize是Object进行GC前调用的函数
Hashcode和equals的区别?
HashCode可以O(1)定位key所在的位置
Equals进行判断引用是否相等
包装类和基本类区别?
是基本类的升级工具类,并出现了装箱和拆箱细节
为什么要提供包装类?
包装类更面向对象,是对基本类型的封装
构造器代码块、局部代码块、静态代码块执⾏顺序和执⾏次数?
类创建成功分为:实例化 到 初始化,所以静态代码块 -> 局部代码块 -> 构造器代码块
Integer是否可以被继承?为什么?
不能,所有的包装类被Final修饰词所修饰
Integer缓存区间?什么时候触发缓存区间?
-127 ~ 128 自动转换为 int ,否则将会触发变为 Integer
String、StringBuffer、StringBuild区别?是否线程安全?怎么做到线程安全?
String 不可变对象
StringBuffuer 可变 不安全非Syc
StringBuilder 可变 线程安全Syc
包装类型、Math类常⽤的⽅法有哪些?在项⽬中怎么使⽤?
包装类:ValueOf 数据初始化或转换
Math: Num运算方法
&和&& | || 区别是什么?
JDK1.8之后有哪些新特性?
Java中深克隆和浅克隆的区别?怎么实现?
深克隆除Copy引用,还会重新生成一个地址值
浅克隆仅Copy引用
HashMap 和Hashtable 的区别?
线程不安全
线程安全
HashMap是线程安全的吗?如何得到一个线程安全的HashMap?
非线程安全
使用currentHashMap
使用Sychorinized 或 Lock
HashMap的底层原理?
Node<K,V>
List和set的区别?
插入有序,可重复
插入无序,自动排序,不重复
ArrayList和LinkedList的区别?
数组 索引查询读速度快
链表 链表指针写速度快
线程池的构造方法里几个参数的作用分别都是什么?
线程工厂
核心线程数
阻塞队列
等待时间
等待单位
最大线程数
拒绝策略
线程的生命周期?
初始化、就绪、阻塞、执行、死亡
notify()和 notifyAll()有什么区别?
随机唤醒一个等待的线程 和 唤醒全部等待的线程
char 型变量中能不能存储一个中文汉字?为什么?
Unicode统一处理编码:允许使用中文
什么是反射?
在类加载时的实例化阶段,获取方法区中类的相关信息。对于反射而言,类的方法,属性都将面向对象的操作。
什么是 Java 序列化?什么情况下需要序列化?
对象转换为二进制流文件,网络IO传输时需要进行实现序列号接口Serilazerble
动态代理是什么?有哪些应用?
对方法的上下文进行增强,或者直接覆盖逻辑