拉勾Java就业集训营

基础题
语言
谈谈你对java语言的理解;
是否接触过其他开发语言,谈谈Java语言与其他语言的优缺点或区别;
特性
阐述下你对Java语言的三大特性的理解;
结合项目,说说你对三大特性的使用和理解;
如何看待Java中三大特性的滥用,或者时极简代码与冗余代码区别,更倾向于哪一种;
如果让你设计一个功能模块,你会从哪些方面考虑;
类是否可以多继承或多实现;
接口类与抽象类之间的区别;
设计模式
Java常用的设计模式;
项目中用到的设计模式;
Spring框架中用到的设计模式,列举几个;
类型
Java中的基础类型;
谈谈对String的理解;
如果让你重新去定义一个String类,讲讲实现方式;
变量的创建几种方式:
基本类型比较,’==’ 与 'equals’区别;
String、StringBuilder和StringBuffer之间的区别;
/**

  • 整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象,所以f1f2的结果是true,而f3f4的结果是false.
    */
    @Test
    public void compareTest() {
    Integer num1 = 100, num2 = 100, num3 = 150, num4 = 150;
    System.out.println(num1 == num2); // true
    System.out.println(num3 == num4); // false
    }
    序列化
    谈谈你对序列化的理解;
    谈谈在项目哪些场景中使用到了序列化;
    类实现序列化时会有一个serialVersionUID,谈谈它的作用;
    多线程
    谈谈对Java多线程的理解;
    谈谈你项目中使用的多线程;
    如何保证线程安全;
    简述下ThreadLocal;
    服务中的Bean实例是单线程还是多线程;
    Redis底层实现是单线程还是多线程;
    谈谈对线程池的理解;
    排序
    简述几种排序算法和对应的复杂度;
    冒泡排序;
    快速排序,什么情况下达到最大复杂度;
    堆排序;
    插入排序;
    集合
    ArrayLIst 和 LInkList区别;
    ArrayList 和 LinkList的实现原理;
    ArrayList 和 LInkList是否是线程安全;
    ArrayList 和 LinkList的最优使用场景;
    是否了解过jdk源码,简述下Map的几种实现类;
    说说对HashMap的理解;
    HashMap底层的存储结构;
    HashTable和HashMap之间的区别;
    HashTable和HashMap中是否线程安全;
    JVM
    对象的创建是在堆还是栈里面;
    简述下GC流程;
    简述下新生代和老生代;
    新生代中各个区的作用;
    方法在栈中的调用流程;
    进阶题
    框架
    谈谈对SpringMVC的理解;
    SpringBoot与SpringMVC之间的区别;
    谈谈对SpringBoot的理解(优缺点);
    谈谈你对Dubbo框架的了解;
    Rpc调用与Http调用之间的区别;
    Dubbo服务基于什么协议调用;
    Dubbo服务的调用方式;
    zookeeper作用;
    zookeepper挂了,dubbo服务之间是否能正常调用;
    在项目开发过程中是否对dubbo进行过扩展开发;
    简述下Spring中的AOP和IOC;
    是否了解SpringCloud;
    zookeeper实现分布式锁原理;
    Redis
    redis中存储数据类型有哪些;
    讲述下redis中zSet排序的实现原理;
    如何用redis实现分布式锁;
    用redis做分布式锁时,会有什么问题,如何解决;
    redis中数据的存储结构;
    redis底层是单线程还是多线程;
    redis的性能瓶颈在哪;
    简述下I/O多路复用原理;
    简述下一致性Hash或hash环;

你可能感兴趣的:(拉勾Java就业集训营)