【阿里巴巴】Java岗-热乎乎的浙江扁鹊面经

投了一段时间了,还以为简历被刷了,没想到五一收假后立马来了个面试电话,lz 也没想太多就直接面了,面试官还是挺好的,不懂的还耐心引导和解释部分问题,这点挺好的,面试结果说是综合整体面试情况再决定是否有下一轮面试,多半是婉拒了吧,留下了没技术的泪水.jpg,下面是记录的面经分享给牛油们,希望对大家有所帮助。

Java 集合类

  • 介绍下 HashMap 的原理,源码,扩容机制,加载因子等内容
  • 介绍下 ConcurrentHashMap 的分段锁
  • 解释下哈希碰撞,当两个元素哈希值相等时,它是怎么一个操作原理和过程呢?

Java 多线程

  • 了解过线程(Thread)吗?
  • 说一下实现线程有哪几种方法?
  • 在实际场景中有使用过 Callable 吗?
  • 平时一般使用哪种类型的线程池?
  • 假设你的 CPU 是 2 核或者是 4 核的,如果采用固定大小的线程池,那你会固定多少个线程?
  • 说一下对 synchronized 关键字的了解
  • 平时在实际场景中是如何使用这个关键字的?
  • 一般是将这个关键字加在方法上还是代码体上?
  • 平时在项目中是有没有使用过 synchronized,是如何是用的?
  • 说一下对 volatile 关键字的了解
  • volatile 关键字会禁止指令重排序吗?
  • 平时有使用过 volatile 关键字吗?
  • 有了解过 volatile 的底层原理吗?比如说在操作系统中,在内存中的过程
  • AQS 了解吗?简单讲一下

JVM

  • 说一下你对 JVM 的了解
  • 了解 JVM 的内存分配吗?
  • 比如 private String a = “abc” 语句,定义了一个字符串常量,它是存储在哪里?
  • 说一下堆细分成哪几部分?
  • 比如 new String(“字符串”) 这种方式,常量的值是放到哪一区域?新生代还是老年代?
  • 如果是大对象的话是优先放到老年代,对吧?
  • 说一下一个对象从 Eden 区到 From Survivor ,再到 To Survivor 区,再到老年代的过程
  • 如何判断一个对象死亡?
  • 说一下四种引用类型
  • 像我们日常当中是使用哪一个引用?
  • 日常中使用强引用的时候会导致 gc 无法回收,虚拟机内存从而会抛出一个什么异常或错误?
  • Error 和 Exception 的区别?
  • 如何判断一个类是无用的类?

数据库

  • 说一下你对索引的理解,优缺点等
  • 平时有使用过联合索引吗?
  • 比如说有 a,b,c,d,e,f,g 这些字段,把 b,c,d 三个字段做一个索引,有没有这样使用过?或者说当我这样去使用的时候,为了使索引生效,我应该怎样去查询?比如当我有 b,c,d 三个字段的值的时候可以生效,如果只有 b,c 或 c,d 等字段的值时可以让联合索引生效吗?
  • 如果使用模糊查询,那这个索引还能生效吗?
  • 如果是前后都有 % ,它能生效吗?
  • 除了 % 能让索引失效,还有哪些能让索引失效?
  • 平时在设计数据库表的一些基础字段时是如何设计的?
  • 说一下事务的隔离级别

框架

  • 有看过 Spring 的 IOC 和 AOP 的源码吗?
  • 在日常使用中有没有了解过 xml 配置文件,使用注解之类的?

发表评论

后才能评论