前言
相信每个程序员,都有一个进大厂的梦,但是很多小伙伴都败在了面试的路上,这里,小编总结了一些BAT大厂Java面试必备的知识点,分享给大家,希望大家能早日进入自己理想的公司~~
一、Java基础
String类为什么是final的
HashMap的源码,实现原理,底层结构。
说说你知道的几个Java集合类:list、set、queue、map实现类。
描述一下ArrayList和LinkedList各自实现和区别
Java中的队列都有哪些,有什么区别。
反射中,Class.forName和classloader的区别。
Java7、Java8的新特性
Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高。
Java内存泄露的问题调查定位:jmap,jstack的使用等等。
string、stringbuilder、stringbuffer区别
hashtable和hashmap的区别
异常的结构,运行时异常和非运行时异常,各举个例子。
String 类的常用方法
Java 的引用类型有哪几种
抽象类和接口的区别
java的基础类型和字节大小
Hashtable,HashMap,ConcurrentHashMap底层实现原理与线程安全问题。
如果不让你用Java Jdk提供的工具,你自己实现一个Map,你怎么做。说了好久,说了HashMap源代码,如果我做,就会借鉴HashMap的原理,说了一通HashMap实现。
Hash冲突怎么办?哪些解决散列冲突的方法?
HashMap冲突很厉害,最差性能,你会怎么解决?从O(n)提升到log(n)。
rehash
hashCode() 与 equals() 生成算法、方法怎么重写。
二、Java