总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
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 的四大引用
==============
四大引用面试出现概率比我想象中要高,我原本以为就强引用、软引用、弱引用、虚引用这四个玩意儿没啥可讲的。实际上也确实没啥好讲的,稍微问的深一些的面试官会和内存泄漏检测原理以及垃圾回收糅杂在一起。
5. Java 的泛型,<? super T> 和 <? extends T> 的区别。
===========================================================================================================
Java面试题五:Java 的泛型, super T 和 extends T 的区别
Java 泛型还是会在面试中出现的,不过几率不是很高,大概是因为我简历中有提到泛型擦除相关的东西。所以会被问到泛型、泛型擦除、通配符相关的东西。不过这个东西,不应该是为了应付面试,实际开发中真的很重要。
===========================================================================================
Java面试题六:Java 线程有哪些状态,有哪些锁,各种锁的区别
这个问题讲真,我也只懂一点皮毛,并且当时回答不是很全面,出现概率的话,不是很高吧。
7. final
、finally
、finalize
区别。
最后
现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
/4f45ff00ff254613a03fab5e56a57acb)收录**