Java基础知识
- java中==和equals和hashCode的区别
- int与integer的区别
- 抽象类的意义
- 接口和抽象类的区别
- 能否创建一个包含可变对象的不可变对象?
- 谈谈对java多态的理解
- String、StringBuffer、StringBuilder区别
- 泛型中extends和super的区别
- 进程和线程的区别
- final,finally,finalize的区别
- 序列化的方式
- string 转换成 integer的方式及原理
- 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
- 成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用
- 讲一下常见编码方式?
- 如何格式化日期?
- Java的异常体系
- 什么是异常链
- throw和throws的区别
- 反射的原理,反射创建类实例的三种方式是什么。
- java当中的四种引用
- 深拷贝和浅拷贝的区别是什么?
- 什么是编译器常量?使用它有什么风险?
- 你对String对象的intern()熟悉么?
- a=a+b与a+=b有什么区别吗?
- 静态代理和动态代理的区别,什么场景使用?
- Java中实现多态的机制是什么?
- 如何将一个Java对象序列化到文件里?
- 说说你对Java反射的理解
- 说说你对Java注解的理解
- 说说你对依赖注入的理解
- 说一下泛型原理,并举例说明
- Java中String的了解
- String为什么要设计成不可变的?
- Object类的equal和hashCode方法重写,为什么?
多线程
- 开启线程的三种方式?
- 说说进程,线程,协程之间的区别
- 线程之间是如何通信的?
- 什么是Daemon线程?它有什么意义?
- 在java中守护线程和本地线程区别?
- 为什么要有线程,而不是仅仅用进程?
- 什么是可重入锁(ReentrantLock)?
- 什么是线程组,为什么在Java中不推荐使用?
- 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- Java中用到的线程调度算法是什么?
- 同步方法和同步块,哪个是更好的选择?
- run()和start()方法区别
- 如何控制某个方法允许并发访问线程的个数?
- 在Java中wait和seelp方法的不同;
- Thread类中的yield方法有什么作用?
- 什么是不可变对象,它对写并发应用有什么帮助?
- 谈谈wait
- tify关键字的理解
- 为什么wait, notify 和 notifyAll这些方法不在thread类里面?
- 什么导致线程阻塞?
- 讲一下java中的同步的方法
- 谈谈对Synchronized关键字