近段时间在准备实习的面试,在网上看到一份面试题,就慢慢试着做,争取每天积累一点点。
暂时手头上的面试题只有一份,题量还是挺大的,有208题,所以可能讲的不是很详细,只是我自己帮助记忆的笔记,希望对你们有启发,同时有什么说的不准确的可以互相讨论一下。
现在每天给自己在面试题编写的任务是4题,有时候忙起来可能就没有时间写了,但是争取日更,即使当天没更也会在之后的更新补上。
JDK 和 JRE 区别
==和equals的区别
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗
final 在 Java 中作用
Java 中的 Math.round(-1.5)
String 属于基础的数据类型吗
Java 中操作字符串都有哪些类?它们之间有什么区别?
String str="i"与 String str=new String(“i”)一样吗
如何将字符串反转
String 类的常用方法
字符类
* charAt(int),根据索引找到索引上字符 * indexOf,寻找条件在当前字符串上的索引
字符串信息类
* length,字串长度 * isEmpty,判断字符串是否为空
字符串操作类
* trim,删除字符串中所有空格 * substring,截取一部分字符串 * toUpperCase,将字符串全变成大写 * spilt,根据条件切割字符串并返回数组 * concat,追加字符串
对比
* equals * compareTo
抽象类必须要有抽象方法吗
普通类和抽象类有哪些区别
抽象类能使用 final 修饰吗?
接口和抽象类有什么区别?
Java 中 IO 流分为几种?
BIO、NIO、AIO 有什么区别?
File的常用方法都有哪些?
获取文件名字及路径
* getName,获取文件名字 * getPath。获取文件当前路径 * getPath,获取文件绝对路径 * isAbsoulute,判断文件是否绝对路径
文件信息
* canRead/canWrite,是否可读/可写 * isFile,是否是文件 * isDirectory,是否是目录 * length,文件内容长度
文件操作
* createFile,新建一个文件/目录 * delete,删除当前文件/目录 * exists,判断文件/目录是否存在
Java 容器都有哪些?
Collection 和 Collections 有什么区别?
Collections常用方法
* addAll * binarySearch,二分查找 * emptyList,返回一个有序空列表 * synchronizedXxx,将线程不安全的集合转换成线程安全的集合
List、Set、Map 之间的区别是什么?
HashMap 和 Hashtable 有什么区别?
如何决定使用 HashMap 还是 TreeMap?
说一下 HashMap 的实现原理?
2019.4.24更新
说一下 HashSet 的实现原理?
ArrayList 和 LinkedList 的区别是什么?
List则是通过for循环寻找插入位置。 * 数据量小于30,两者没有明显差别,当数据量大于容量1/10时,LinkedList的效率没有ArrayList高 * 在元素个数大致相等的情况下,两者遍历的性能差不多
如何实现数组和 List 之间的转换?
List转Array
Array转List
ArrayList 和 Vector 的区别是什么?
Array 和 ArrayList 有何区别?
2019.04.25更新
在 Queue 中 poll()和 remove()有什么区别?
哪些集合类是线程安全的?
java.util.concurrent包中的集合
迭代器 Iterator 是什么?
Iterator 怎么使用?有什么特点?
2019.04.26更新
Iterator 和 ListIterator 有什么区别?
相同
* 都是迭代器,都可以用于迭代Collection集合 * 都可以顺序向后遍历集合元素 * 都可以移除底层集合元素
不同
* ListIteaator有add方法,可以添加元素到底层集合中,位置在迭代器当前位置之前 * ListIterator可以向前遍历,Iterator不能 * ListIterator可以通过nextIndex以及preIndex定位索引位置,Iteratoor不能 * ListIterator可以通过set方法对元素进行修改
怎么确保一个集合不能被修改?
并行和并发有什么区别?
线程和进程的区别?
2019.04.27更新
守护线程是什么?
创建线程有哪几种方式?
说一下 runnable 和 callable 有什么区别?
线程有哪些状态?
2019.04.28更新
sleep() 和 wait() 有什么区别?
notify()和 notifyAll()有什么区别?
线程的 run()和 start()有什么区别?
创建线程池有哪几种方式?
2019.04.29更新
线程池都有哪些状态?
线程池中 submit()和 execute()方法有什么区别?
在 Java 程序中怎么保证多线程的运行安全?
多线程锁的升级原理是什么?
2019.05.02更新
什么是死锁?
怎么防止死锁?
预防死锁
避免死锁
ThreadLocal 是什么?有哪些使用场景?
说一下 Synchronized 底层实现原理?
synchronized 和 volatile 的区别是什么?
synchronized 和 Lock 有什么区别?
synchronized 和 ReentrantLock 区别是什么?
说一下 Atomic 的原理?