【阿里巴巴】Java岗-非科班水硕春招
阿里新商场(模拟面试)
个人情况
- 个人情况
- 自我介绍
- 你为什么学 Java ?
- 你的计算机专业基础课是怎么学习的?和计算机科班的比较,你觉得你学的比他们更深还是说差不多?
Java 基础
- Java 的八种基本数据类型,每个占多少个字节?
- Java 中抽象类和接口的区别?
- Java 的三大特性
- 排序算法
- 讲一下快排的思想
- 在最好的情况下快排的时间复杂度是多少呢?
- 快排是如何选择切分元素的?
操作系统
- 说一下线程和进程,它们之间的区别
- 线程同步的机制
- 同步和异步的区别
- 阻塞和非阻塞的区别
- 操作系统中死锁的四个必要条件
Java 集合类
- ArrayList 初始化时数组的默认长度是多少?
- ArrayList 扩容是扩容多少倍?扩容后是用原来的数组还是新的数组?
- ArrayList 是一个线程安全的集合类吗?
- 判断一个集合类是否为线程安全的机制是什么?
- 说一下 Fail-Fast 机制,结合源码说一下(如果可以的话)
- ArrayList 和 LinkedList 的使用场景
- 说一下 HashMap 的底层数据结构
- 说一下 HashMap 的存储逻辑(put() 函数)
- HashMap 存储元素时 key 完全一样该怎么处理?
- HashMap 的默认长度是多少?扩容是扩成几倍?
- 若两个 key 的 hashcode 值相同但 equals 不同,也就是说它们会插入到同一个桶里,新添加的节点是插入到已有元素的前面还是后面?
- 为什么 JDK 1.7 是头插法,JDK 1.8 是尾插法?
- JDK 1.8 的 HashMap 是否线程安全?
- 既然 HashMap 不是线程安全的类,有啥办法解决这个问题?
- ConcurrentHashMap 和 HashMap 的区别?为什么 ConcurrentHashMap 会线程安全?
- ConcurrentHashMap 虽然是线程安全的,但它也存在什么问题?
- 了解 TreeMap 吗?TreeMap 最大的特点是什么?为什么已经有了 HashMap 了还要有 TreeMap 类?
- 说一下红黑树的特点
- 你知道 Http 状态码?302 是代表啥意思?502 是代表啥意思?
线程池
- Java 中多线程有哪几种实现方式?
- 线程池了解吗?说一下为什么要有线程池?
- 说一下线程池核心的几个参数
JVM
- 说一下 JVM 的垃圾回收器 CMS G1
- 说一下 CMS 的优缺点
- 回收的机制是什么?凭什么判断一个对象会被回收?
- 说一下 GC Roots 包含哪些内容?
- 什么情况下会发生新生代 gc?
- Eden 区满了之后会怎么样呢?说一下这个处理流程
- Eden 区 和 From Survivor 区中经过 gc 后还能存活的对象移动到 To Survivor 区后,那第二次 GC 时是取 Eden 区和 From Survivor 进行 gc 还是说取 Eden 区和 To Survivor 区?
项目
- Redis 和 数据库是怎么保持一致性的?
- Spring 和 SpringBoot 的区别?
- 说一下 Spring IOC 和 AOP
- 说一下 bean 的四个注解,可以让对象注入的注解
- 说一下你这个项目是根据什么来做的
- 看你项目中用 Redis 中的 List 来实现异步队列,说一下具体是怎么做的?是如何基于 Redis 来实现异步的?有没有一个拉取消息的过程?还是说基于 Redis 你就把它放到队列里,然后有人来处理还是说订阅处理