这是我个人整理的关于Java面试,笔试题及答案
题目收集于各种面经,博客,书籍等,也有部分题目为我个人原创或经过我个人改编;一部分答案与解析是我在学习中的思考,还有一部分获取自论坛,书籍等优秀解答
如果你觉得还不错,欢迎fork与star~
序号 | 题目 | 答案解析 |
---|---|---|
逻辑智力题 | ||
请说出该问题的答案? | 答案 | |
请说出该问题的答案? | 答案 | |
请说出该问题的答案? | 答案 | |
请说出该问题的答案? | 答案 | |
Java基础 | ||
Java 中的数据类型?String 属于哪种类型?基本数据类型有什么? |
答案 | |
用最有效率的方法计算2 乘以8 ? |
答案 | |
说下& 和&& 的区别? |
答案 | |
说出下面程序运行的结果,并解释为什么? | 答案 | |
访问修饰符public ,private ,protected 以及不写(default )时的区别? |
答案 | |
String ,StringBuilder ,StringBuffer 的区别?哪个是线程安全的?它们的应用场景? |
答案 | |
说出下面程序运行的结果,并解释为什么? | 答案 | |
说出下面程序的输出结果,并解释为什么? | 答案 | |
谈一下你对面向对象的理解? | 答案 | |
重载是什么?重写是什么? | 答案 | |
为什么不能根据返回类型区分重载? | 答案 | |
说出下面程序运行的结果,并解释为什么? | 答案 | |
静态代码块,非静态代码块,构造器的执行顺序?请说出程序的输出结果 | 答案 | |
非静态方法是否可以调用静态成员变量?静态方法是否可以调用非静态成员变量? | 答案 | |
抽象类和接口的异同?谈一下你认为什么时候使用抽象类,什么时候使用接口? | 答案 | |
抽象类中的抽象方法可以被声明为protected 修饰的吗?private 修饰可以吗? |
答案 | |
接口中的抽象方法可以声明为protected 修饰的吗? |
答案 | |
为什么Java 中接口的成员变量被隐式声明为public static final ? |
答案 | |
抽象类是否一定要有抽象方法?如果不是,那你觉得没有抽象方法的抽象类有什么意义? | 答案 | |
equals 和== 的区别? |
答案 | |
你了解equals() 与hashCode() 约定吗? |
||
在Java 中,创建对象有哪几种方式? |
答案 | |
谈一下浅拷贝和深拷贝? | 答案 | |
如何实现字符串和基本数据类型的相互转换? | 答案 | |
Integer.parseInt() 和Integer.valueOf() 有什么区别? |
答案 | |
说出下面程序的输出结果,并解释为什么? | 答案 | |
说出下面程序的输出结果,并解释为什么? | 答案 | |
Java 中 new 一个对象发生了什么? | 答案 | |
请说下类加载的过程? | ||
什么是双亲委派模型? | ||
Java异常 | ||
Error 和Exception 的区别? |
答案 | |
什么是受检查异常(Checked Exception )?什么是不受检查异常(Unchecked Exception )? |
答案 | |
说出一些常见的运行时异常? | 答案 | |
写一个程序,使得运行时抛出StackOverflowError ? |
答案 | |
写一个程序,使得运行时抛出OutOfMemoryError ? |
答案 | |
throw 与throws 有什么区别? |
答案 | |
说出下面程序的输出结果,并解释为什么? | 答案 | |
说出下面程序的输出结果,并解释为什么? | 答案 | |
关于Java 中的异常处理,你有什么心得或经验? |
答案 | |
Java集合 | ||
常见的集合有哪些? | ||
使用过Collections 这个工具类么?简单介绍下你使用过哪些方法? |
||
Collection 和Collections 分别是什么? |
||
ArrayList 与LinkedList 有什么区别? |
答案 | |
你知道有哪些初始化map 的方法? |
答案 | |
你知道有哪些遍历map 的方法? |
答案 | |
初始化一个空的ArrayList ,此时底层数组的容量为多少?添加一个元素后,容量为多少? |
答案 | |
初始化一个大小为 5 的ArrayList ,此时底层数组的容量为多少?添加一个元素后,容量为多少? |
答案 | |
了解ArrayList 的扩容机制吗?扩容增长因子是多少?为什么? |
48 | |
ArrayList 与 LinkedList 是线程安全的么?如果不是线程安全的,在多线程的环境中如何使用? |
||
了解HashSet 的底层实现吗? |
||
既然HashSet 的底层实现为HashMap ,且只使用了 HashMap 的 key ,那么直接使用null 作为HashMap 的value 就好了,还节省内存空间,为何要使用 PRESENT 作为 value 呢? |
||
HashSet 与 TreeSet 的区别? |
||
请说出该程序的运行结果? | ||
你了解HashMap 的底层实现么?HashMap 从 JDK 8 开始发生了怎样的改变? |
||
HashMap 是线程安全的么?如果不是,会发生怎样的问题? |
||
HashMap 的初始化容量为什么是 16 ? 为什么 HashMap 的初始化容量要设计成 2 的幂? |
||
HashMap 的负载因子为什么是 0.75 ? 为什么要设计成链表长度超过 8 的时候转变为红黑树? |
||
HashTable 与 HashMap 的区别? |
||
ConcurrentHashMap 是如何实现线程安全的?为何它比 HashTable 更高效? |
||
Comparable 和Comparator 接口有什么区别? |
答案 | |
git 和svn 有什么区别? |
||
说下你平时常用的几个git 命令? |
||
说下什么是单例模式? | ||
请写出一个单例模式的示例程序? | ||
了解代理模式吗?请简单描述下? | 答案 | |
简单说明下 JDK 动态代理是如何实现的? | 答案 | |
为什么 JDK 动态代理是基于接口实现的? | 答案 | |
CGLIB 动态代理和 JDK 动态代理的区别? | 答案 |
序号 | 题目 | 答案解析 |
---|---|---|
说一下什么是JDK,JRE,JVM?它们之间有什么联系? | ||
为什么Java能够实现平台无关性? | ||
请说下类加载的过程? | ||
什么是双亲委派模型? | ||
说出下面程序的输出结果,并尝试以类初始化顺序的角度解释为什么? | 答案 |
序号 | 题目 | 答案解析 |
---|---|---|
说一下数据库事务的四大特性? | ||
620. 有趣的电影 | 题解 |