面试题学习与复习:Java相关面试题汇总

目录

1. HashMap和HashTable以及ConCurrentHashMap的原理和区别

2. synchronized 和 volatile 、ReentrantLock 、CAS 的区别。

3. JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等。

4. Java 的四大引用

5. Java 的泛型, 和 的区别。

6. Java 线程有哪些状态,有哪些锁,各种锁的区别。

7. final 、finally、finalize 区别。

8. 接口和抽象类的区别。

9. sleep 、wait、yield 的区别,wait 的线程如何唤醒它?


1. HashMap和HashTable以及ConCurrentHashMap的原理和区别

Java面试题一:HashMap 和 HashTable 以及 ConcurrentHashMap的原理和区别

更加简略回答:

  • 1、底层实现
  • 2、线程安全性不同
  • 3、key和value是否允许null值
  • 4、内部实现使用的数组初始化和扩容方式不同

2. synchronized 和 volatile 、ReentrantLock 、CAS 的区别。

Java面试题题二:synchronized 和 volatile 、ReentrantLock 、CAS 的区别

这个问题被问频率不在 HashMap 之下,因为并发编程,真的很重要。能问到这几个点的方式真的是太多了,我们能发挥的空间也同样很大。CAS 的 ABA 问题?上面几个东西的特性?使用场景?大概我不用再例举了吧?对了,我多次被问到的一个问题是:synchronized 修饰实例方法和修饰静态方法有啥不一样。

3. JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等。

Java面试题三:JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等

这三个问题大概出现概率 40%,基本只需要看我每日一问系列的推文就差不多了吧,希望更清楚明白的可以直接看《深入理解 Java 虚拟机》。当你讲到分代回收算法的时候,不免会被追问到新生对象是怎么从年轻代到老年代的,以及可以作为 root 结点的对象有哪些两个问题。

4. Java 的四大引用

Java面试题四:Java 的四大引用

四大引用面试出现概率比我想象中要高,我原本以为就强引用、软引用、弱引用、虚引用这四个玩意儿没啥可讲的。实际上也确实没啥好讲的,稍微问的深一些的面试官会和内存泄漏检测原理以及垃圾回收糅杂在一起。

5. Java 的泛型,<? super T> 和 <? extends T> 的区别。

Java面试题五:Java 的泛型, super T 和 extends T 的区别

Java 泛型还是会在面试中出现的,不过几率不是很高,大概是因为我简历中有提到泛型擦除相关的东西。所以会被问到泛型、泛型擦除、通配符相关的东西。不过这个东西,不应该是为了应付面试,实际开发中真的很重要。

6. Java 线程有哪些状态,有哪些锁,各种锁的区别。

Java面试题六:Java 线程有哪些状态,有哪些锁,各种锁的区别

这个问题讲真,我也只懂一点皮毛,并且当时回答不是很全面,出现概率的话,不是很高吧。

7. final 、finallyfinalize 区别。

Java面试题七:final 、finally、finalize 区别

老生常谈的问题,没啥好说的,实际上这次社招面试也只遇到了两次。比较喜欢追根溯源的面试官可能会对这个 finalize 有点执念,一定希望搞清楚,这玩意儿我们是不是可以真的搞点黑科技骚操作。

8. 接口和抽象类的区别。

Java面试题八:接口和抽象类的区别

没想到还被问了一次这个,这玩意儿给我的感觉就是随时都在用,但真要较真,还真不能一口气把所有区别都信手拈来。

9. sleep 、waityield 的区别,wait 的线程如何唤醒它?

Java面试题九:sleep 、wait、yield 的区别,wait 的线程如何唤醒它

大多数 Android 应用开发并接触不到很多并发相关的东西,不过这玩意儿还是在面试中挺容易出现的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值