前言
从3月份开始,打算找工作,一个偶然的机会,拉勾上一个蚂蚁金服的师兄找到我,说要内推,在此感谢姚师兄,然后就开始了蚂蚁金服的面试之旅。把简历发过去之后,就收到了邮件通知,10个工作日联系我,请耐心等待。
没过2天就接到一个杭州的座机,说要约我进行电话面试,效率还是挺高,然后当天晚上就进行了一面。下班后,吃了饭,专门找了一条人比较少的小路,到了7点,电话准时打过来了。
1 基础
-
为什么 Java 中只有值传递?
-
int 范围?float 范围?
-
hashCode 与 equals,什么关系?
-
String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
-
Java 序列化中如果有些字段不想进行序列化 怎么办?
-
构造器 Constructor 是否可被 override?
-
java 异常体系?RuntimeException Exception Error 的区别,举常见的例子
-
字符型常量和字符串常量的区别?
-
在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
2 集合
集合这块关注一下 1.8 的实现吧,和 1.7 相比变化了很多
-
ArrayList和linkedList的区别?
-
堆是怎么存储的,插入是在哪里?
-
HashMap和HashTable的区别?讲一下 hashMap 原理。hashMap 可以并发读么?并发写会有什么问题?
-
集合类存放于 Java.util 包中, 主要有几种接口?
-
Array与ArrayList有什么不一样?简单介绍下 ArrayList 怎么实现,加操作、取值操作,什么时候扩容?
-
说说ConcurrentHashMap?头插法还是尾插法?扩容怎么做?
-
集合在迭代的过程中,插入或删除数据会怎样?
3 并发
-
notify()和notifyAll()有什么区别?
-
volatile 是什么?可以保证有序性吗?
-
为什么wait, notify 和 notifyAll这些方法不在thread类里面?
-
SynchronizedMap和ConcurrentHashMap有什么区别?
-
什么是线程安全?Vector是一个线程安全类吗?
-
线程进程和线程的区别?并行和并发的区别?了解协程么?进程间如何通信:进程 A 想读取进程 B 的主存怎么办?线程间通信?线程的生命周期有哪些状态?怎么转换?wait 和 sleep 有什么区别?什么情况下会用到 sleep?怎么停止线程?怎么控制多个线程按序执行?</