最近整理了一份面试题,只要你能好好地背,找工作就妥妥的稳。
话不多说,请看题。
注意:文章有点长。
Java基础
Java语言有哪些特点
面向对象和面向过程的区别
面向对象编程三大特性
八种基本数据类型的大小,以及他们的封装类
说说你对JDK、JRE、JVM的理解
说说标识符的命名规则
熟悉instanceof 关键字的作用吗?
说说Java自动装箱与拆箱
说说重载和重写的区别
Integer a= 127 与 Integer b = 127相等吗?
抽象类和接口的对比
什么是内部类?
内部类有什么优点?
内部类有哪些应用场景?
局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?
为什么 Java 中只有值传递?
熟悉JDK哪些包?
说说Java代码初始化顺序
说说你对 equals与== 的理解
说说hashcode的作用
String、StringBuffer 和 StringBuilder
说说HashMap和HashTable的区别
Collection与Collections的区别
熟悉 Java的对象引用类型吗?
说说泛型常用特点
Java创建对象有几种方式?
有没有可能两个不相等的对象有相同的hashcode
深拷贝和浅拷贝的区别是什么?
final有哪些用法?
final finally finalize区别
说说this关键字的用法
说说super关键字的用法
说说this与super的区别
static都有哪些用法?
平时使用static应该注意些什么?
&和&&的区别?
switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
a=a+b与a+=b有什么区别吗?
try catch finally,try里有return,finally还执行么?
说说你对Excption与Error包的理解
Java 序列化中如果有些字段不想进行序列化,怎么办?
说说Java 中 IO 流
简单说说Java IO与 NIO的区别
说说你对Java反射的理解
说说反射机制的优缺点
Object 有哪些常用方法?大致说一下每个方法的含义
获取一个类Class对象的方式有哪些?
String s = new String(“abc”)创建了几个String对象?
说说你对String类的intern()方法的理解
String 类的常用方法都有哪些?
String字符串为什么说是不可变?
简单说说Java中接口和抽象类的区别
BIO、NIO、AIO 有什么区别?
Files的常用方法都有哪些?
JDK 1.8 之后有哪些新特性?
什么是多态机制?
值传递和引用传递有什么区别?
Class.forName和ClassLoader有什么区别 ?
简单说说List,Set,Map三者的区别?
Collection和Collections的区别
ArrayList 和 LinkedList 的区别有哪些?
有数组了为什么还要搞个 ArrayList 呢?
ArrayList是线程安全的么?
说说ArrayList 的扩容机制
ArrayList 在JDK1.7和JDK1.8版本初始化的区别
我想ArrayList集合中加入1万条数据,应该怎么提高效率?
HashMap 和 Hashtable 的区别
HashMap 的长度为什么是2的幂次方?
HashMap 是线程安全的么?
什么是加载因子?加载因子为什么是 0.75 ?
为什么 HashMap 的初始化长度是 16 ?
为什么树化是 8,退树化是 6?
请说说 HashMap 多线程操作导致死循环问题
为什么重写 equals 方法的时,需要重写 hashCode 方法呢?
ConcurrentHashMap 和 Hashtable 的区别
JDK1.8中满足什么条件后将链表转化成红黑树?又什么时候转回来?
HashMap为什么会引入红黑树做查询优化呢?
为什么把8作为阈值?
HashMap如何解决冲突?
我们自定义类来作为 HashMap的key 吗?
HashMap 的长度为什么是 2 的 N 次方呢?
HashMap 与 ConcurrentHashMap 的异同
简单说说HashMap的put方法过程
说说我们写的java程序是如何执行的?
JVM
Java 是如何实现跨平台的?
什么是 JVM ?
说说JDK、JRE、JVM的关系?
请你描述一下 JVM 的内存区域?
运行时常量池的作用是什么?
直接内存是什么?
为什么使用元空间替换了永久代?
方法区、堆、栈之间到底有什么关系?
为什么需要两个大小一样的Survivor区?
新生代中Eden:S1:S2为什么是8:1:1?
请你描述一下 Java 中的类加载机制?
描述一下JVM加载Class文件的原理机制?
类加载器是有了解吗?
熟悉哪些类加载器?
每个类加载器加载哪个目录中的类库
Java 虚拟机是如何判定两个 Java 类是相同的?
类加载器是如何加载 class 文件的?
说说什么是双亲委派模型以及作用
双亲委派模型的工作过程?
如何破坏双亲委派模型?
你知道哪些打破双亲委派机制的例子?
如何自定义类加载器?
对象分配内存是否线程安全?
在 JVM 中,对象是如何创建的?
内存分配方式有哪些呢?
对象一定分配在堆中吗?
请你说一下对象的内存布局?
对象访问定位的方式有哪些?
GC是什么?为什么要GC
如何判断对象已经死亡?
说说你对Java 中四大引用类型的理解
如何判断一个不再使用的类?
了解finalize方法吗?
你知道哪些垃圾收集算法?
说一下 JVM 有哪些垃圾回收器?
如何选择垃圾收集器?
简单说说你对G1收集器的理解
ZGC了解吗?
能够触发条件 Full GC 有哪些?
说说垃圾回收过程
你知道哪些JVM调优参数?
8G内存的服务器该如何设置相应JVM参数?
如何排查线上系统CPU飙高
说说内存泄漏和内存溢出
生产环境服务器变慢,怎么办?
JVM 监控与分析工具你用过哪些?
如何开启和查看 GC 日志?
你们生产环境用的什么JDK?如何配置的垃圾收集器?
怎么打出线程栈信息?
线上出现 OOM 的问题,怎么排查?
MinorGC、MajorGC、FullGC 什么时候发生?
如何解决线上GC频繁的问题?
简述一下内存溢出的原因,如何排查线上问题?
并发编程
说说Java中实现多线程有几种方法
如何停止一个正在运行的线程
notify()和notifyAll()有什么区别?
sleep()和wait() 有什么区别?
volatile 是什么?可以保证有序性吗?
Thread 类中的start() 和 run() 方法有什么区别?
为什么wait, notify 和 notifyAll这些方法不在thread类里面?
为什么wait和notify方法要在同步块中调用?
Java中interrupted 和 isInterruptedd方法的区别?
Java中synchronized 和 ReentrantLock 有什么不同?
有三个线程T1,T2,T3,如何保证顺序执行?
SynchronizedMap和ConcurrentHashMap有什么区别?
什么是线程安全
Thread类中的yield方法有什么作用?
说一说自己对于 synchronized 关键字的了解
说说你是如何使用 synchronized 的?
Vector是一个线程安全类吗?
volatile关键字的作用?
常用的线程池有哪些?
简述一下你对线程池的理解
ThreadPoolExecutor 有哪些常用的方法?
线程池中submit() 和 execute()方法有什么区别?
线程池中线程是如何复用的?
了解线程池状态吗?
锁的优化机制了解吗?
说说进程和线程的区别?
产生死锁的四个必要条件?
如何避免死锁?
线程池核心线程数怎么设置呢?
Java线程池中队列常用类型有哪些?
线程池原理知道吗?以及核心参数
线程池的拒绝策略有哪些?
线程安全需要保证几个基本特征?
说一下线程之间是如何通信的?
CAS的原理呢?
CAS有什么缺点吗?
引用