阿里Java架构师面试题+答案

一、Java基础和高级

  • String类为什么是final的?

  • 答案

  • HashMap的源码,实现原理、底层结构

  • 答案

  • 反射中,Class.forName和classloader的区别?

  • 答案

  • session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。

  • session与cookie

  • session生命周期

  • Java中的队列都有哪些,有什么区别。

  • Queue

  • JDK Queue

  • JDK Queue基本特性比较

  • Java的内存模型以及GC算法

  • Java8内存模型

  • 【面试】你了解JVM内存模型吗?

  • 再有人问你Java内存模型是什么,就把这篇文章发给他

  • 垃圾回收

  • 垃圾收集器和垃圾收集算法

  • Java8的新特性

  • Java8新特性【终极版】

  • Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高?

  • Java数组和链表

  • Java内存泄露的问题调查定位:jmap,jstack的使用等等。

  • 排查 Java 的内存问题

  • Java内存泄漏分析和解决

  • 记一次JVM堆外内存泄露Bug的查找

二、spring框架

  • spring框架中需要引用哪些jar包,以及这些jar包的用途

  • srpingMVC的原理

  • springMVC注解的意思

  • spring中beanFactory和ApplicationContext的联系和区别

  • spring注入的几种方式

  • spring如何实现事物管理的

  • springIOC和AOP的原理

  • spring中循环注入的方式

  • Spring AOP与IOC的实现原理

  • Spring的beanFactory和factoryBean的区别

  • Spring的事务隔离级别,实现原理

  • 对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的?

  • spring boot特性,优势,适用场景等

    三、java多线程常见问题

  • Java创建线程之后,直接调用start()方法和run()的区别?

  • 常用的线程池模式以及不同线程池的使用场景

  • newFixedThreadPool此种线程池如果线程数达到最大值后会怎么办,底层原理。

  • 多线程之间通信的同步问题,synchronized锁的是对象,衍伸出和synchronized相关很多的具体问题,例如同一个类不同方法都有synchronized锁,一个对象是否可以同时访问。或者一个类的static构造方法加上synchronized之后的锁的影响。

  • 可重入锁的含义,以及ReentrantLock 和synchronized的区别?

  • 同步的数据结构,例如concurrentHashMap的源码理解以及内部实现原理,为什么他是同步的且效率高

  • atomicinteger和volatile等线程安全操作的关键字的理解和使用

  • 线程间通信,wait和notify