# 面試總整理 # Java 1. 物件導向 2. 封裝 private getter/setter 避免直接存取 3. 繼承 - spring IOC容器希望你不要繼承,希望大家都是獨立的 - 什麼時候用繼承 - 套件用繼承 - service直接依賴注入 4. 多型 - 根據情況決定用什麼 - List = ArrayList(動態陣列)/LinkedList - 加資料方式 - ArrayList會先複製然後加新的,刪除舊的(index) - LinkedList加在尾端 - 寫入速度ArrayList快 - 讀取速度LinkedList快 - Map = HashMap 沒順序 /LinkedHashMap (node),除了自己還知道下一筆的位置 ## SQL 1. 什麼是Left Join/Right Join - from b join a - A表PK跟B表FK做合併 - 保留表格空值的那一邊 - join 是PK配FK - null就不會保留 - right join是保留右邊所有表格資料,包含null 2. full join - 就是兩邊都保留(sql server) - my sql >union join 兩種 3. --- https://medium.com/%E7%A7%91%E6%8A%80%E7%A0%94%E7%A9%B6%E9%99%A2/java%E9%9D%A2%E8%A9%A6%E9%A1%8C%E6%95%B4%E7%90%86-ed44d4b10437 Java 1.什麼是物件導向? Java 1.什麼是物件導向? 封裝/繼承/多型 讓物件導向達成的三個手法 避免直接影響到所以封裝 用getter setter 繼承 Spring IOC破壞了繼承 他希望大家都是獨立的 多型 List放左邊 右邊放ArrayList 或 LinkedList 讀取的話Arraylist(動態陣列)比較快 但其實現在CPU都很快感覺不出差別 除非資料上億筆 只要型別一樣就可以自己決定要用哪個 Map Hashmap 根據Hash演算法 沒有順序 --- SQL 1.甚麼叫過Left Join跟Right join 差別是什麼?90%會問 或是紙跟筆把三個table join起來 要保留的放在join的左邊 做join就是A表PK參考到B表FK 若想保留B表FKnull那一列 表格 就要寫 from b join a