近段時間在準備實習的面試,在網上看到一份面試題,就慢慢試着作,爭取天天積累一點點。
暫時手頭上的面試題只有一份,題量仍是挺大的,有208題,因此可能講的不是很詳細,只是我本身幫助記憶的筆記,但願對大家有啓發,同時有什麼說的不許確的能夠互相討論一下。
如今天天給本身在面試題編寫的任務是4題,有時候忙起來可能就沒有時間寫了,可是爭取日更,即便當天沒更也會在以後的更新補上。java
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 的原理?