哈啰出行Java开发工程师一面面经(校招)
面试过程:
- 自我介绍。
- Java的基本数据类型及其包装类的区别。
- Integer和int比较时需要注意什么。
- 两个Integer比较时用equals还是==。
- 谈谈对Java面向对象的理解,解释Java的三大特性。
- 子类能否访问父类的私有属性,如何在子类中使用super关键字调用父类的私有属性,不用public如何使子类访问父类属性。
- 开发中有哪些需要注意的原则。
- Java中内部类的使用场景。
- 是否使用过static关键字,静态成员能否访问非静态成员。
- JVM的内存区域及类的加载过程。
- Java中的容器,ArrayList和LinkedList的区别,操作List的工具类及其操作方法。
- Stream流中的常用方法,如何用流求列表元素和。
- 如何将一个列表分成三个相等的列表。
- String、StringBuilder、StringBuffer的区别,String是否线程安全。
- 将字符串反转的方法及其所在的类。
- Spring和Spring Boot的区别,Spring Boot中哪个注解起到自动装配的作用。
- 如何排除掉一些配置类并使用自定义的配置类。
- Spring中用到的设计模式。
- 对IOC的理解,@Resource和@Autowired的区别,Spring中如何解决依赖注入和循环依赖。
- AOP的理解和实现,切入点表达式的定义方法,如果要你实现AOP你会怎么做。
- 线程的创建方法,线程池的参数,线程池对新任务的处理。
- 为什么会有多线程,将10000以内的整数进行相加是单线程快还是分组相加再汇总快。
- Redis的数据结构和使用场景。
- Redis为什么速度快,Redis缓存和本地缓存的区别。
- Redis的持久化机制及过期淘汰策略。
- 消息队列的作用。
- RocketMQ如何保证消息不重复消费。
- RocketMQ如何保证消息顺序发送。
- 微服务的设计原则。
- 微服务的调用过程。
- CP和AP的了解,实习公司项目用的是AP还是CP。
- 算法题:删除链表倒数第k个节点。
- 算法题:判断链表是否为环形链表。