2018年面經,希望幫到大家【持續更新】
面試公司
按一些收集到的資訊加自己的經驗總結給大家
oracle
-
筆試[網上]
總體還是特別難的【全英文】在快速看題的過程中,如果有不會的單詞或則會產生歧義的段落,就會導致真正做題時間很短,大概一分鐘一道的感覺。
-
for(;;)
可以塞方法進去嗎?可以for (int i = 0; i < 10; System.out.println("hello")) { i++; }
-
treeSet和linkedHashSet的區別
簡略的說,以後再專門講:treeSet有序,按樹結構儲存,LinkedHashSet連結串列的形式儲存,用HashSet的形式
-
thread.run()
.start()
區別run()複寫掉用來放要執行的事情,當你直接執行run()時就直接跑起來了,如果你跑start()則啟動執行緒,而方法並不一定會馬上執行。【這個部分後面會開個專題講,Thread的原始碼還是有很多可以值得討論的地方】
-
volatile
使得這個變數在各執行緒間是可視的,比起synchronize效能好很多,又能起到避免衝突的問題,打個比方,Thread原始碼中有threadStatus,設為volatile讓大家都能知道執行緒當前狀態是怎樣的。
/* * Java thread status for tools, default indicates thread 'not yet started' */
-
@Retention(RetentionPolicy.RUNTIME)
決定標註的型別要執行怎樣的保留政策【或者說持久化】
-
has-a 與 is-a的關係
正方形是圖形,正方形有四條邊
-
廣東電信
-
筆試[網上]
NAT
Network Address Translation 專用網連線到Internet的路由器上加裝NAT軟體,當訪問網路時,由本機地址轉為全球IP地址
- 解決IP不夠、保護主機不受侵害,因為訪問時是路由器上的全球IP
- 靜態轉換【一對一】安全性較差,且對IP資源消耗大
- 動態轉換【一對多】安全性好,能滿足多使用者需求
- 埠多路複用【Port Address Translation PAT】改變資料包外出時埠,所有主機都共享一個IP,且隱藏主機
- 解決IP不夠、保護主機不受侵害,因為訪問時是路由器上的全球IP
-
覆蓋(重寫)【Overriding】
-
HDFS【Hadoop分散式檔案系統】 以Block為儲存單位,預設64MB
-
TELNET
遠端終端協議,明文傳輸協議,應用層(協議)
- 建立tcp連線
- 將使用者名稱等等以(Net Virtual Terminal)形式傳送
- 回收響應
- 撤銷TCP連線
-
Linux常用命令
- head 顯示檔案開頭
head -n 5 hello.log
- less 對檔案、輸出等進行分頁顯示
history | less
- more 一次顯示一屏文字
more -5 hello.log
- nl 文字加上行號
nl hello.log
- touch 修改檔案訪問時間【一直以為這是拿來建立檔案的?】
- du 每個檔案磁碟用量
du --max-depth=1
- free 空閒記憶體
- iostat io狀態
- vmstat 虛擬記憶體
- df 檔案系統資訊
df -h
【以人類形式顯示】 - chmod 檔案模式修改
- chown 檔案所有者修改
- find 查詢
find . -regex
- whereis 定位指令的二進位制程式bin,原始碼,man手冊等
- which 在path變數中找到命令所在位置,返回第一個
- pwd 列印絕對路徑
- head 顯示檔案開頭
-
語義網路
用圖表示知識的結構化方式
-
虛擬化 //TODO 待更
-
判斷IP是不是為主機,子網劃分
An Internet Protocol address (IP address) is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing. 【from wiki】
> 簡單翻譯下就是ip地址是一串數字標識,用於標記裝置連入計算機網路,同時也用於標記地址。
同時這裡就只講解ipv4的概念,因為現在ipv6目前也就在校園網上活躍而已。
一共32位的ip地址,為了更好地利用它們,將它大致分為了兩部分網路標識部分以及主機標識部分。按照這個思路分法,就可以分出3種類型ABC地址,另外兩種型別DE就不分網路和主機標識了。
種類 | 網路部分 | 主機部分 | 地址範圍 | 私有地址 | 保留地址 | 優點 | 缺點 |
---|---|---|---|---|---|---|---|
A | 一個位元組【0開頭】 | 3個位元組 | 1.0.0.1~126.255.255.254 | 10.0.0.0~10.255.255.255 | 127.x.x.x | 每個網路可以分配到1600多萬的計算機,畢竟三個位元組用於表示主機部分 | 但ip地址太少,也就126個,僅少部分政府部門和公司能用的起,apple之類的 |
B | 兩個位元組【10開頭】 | 兩個位元組 | 128.0.0.1~191.255.255.254 | 172.16.0.0~172.31.255.255 | 169.254.x.x | 網路數量增大了,且同時每個網路ip也能分配65534臺計算機 | 即便比A少了很多,但依然很少能有公司或組織用滿,對於平民使用者而言又太浪費了 |
C | 三個位元組【110開頭】 | 一個位元組 | 192.0.0.1~223.255.255.254 | 192.168.0.0~192.168.255.255 | ---- | 網路ip多了 | 不過導致主機ip減少了,不過通過子網掩碼,這個問題其實現在也不大 |
D | 不分網路主機【1110開頭】 | 不分 | 224.0.0.0-224.0.0.255【用於廣播】 | 239.0.0.0-239.255.255.255 【用於測試】 | 224.0.1.0-238.255.255.255【用於組播】 | 多點廣播地址用來一次定址一組計算機,標識共享同一協議的一組計算機 | 這個不太清楚 |
E | 不分網路主機【11110開頭】 | 不分 | 240.0.0.0~255.255.255.254 | 無 | 無 | 用於測試、實驗用 | 不太清楚 |
子網掩碼
子網掩碼是一個32位地址,是與IP地址結合使用的一種技術。它的主要作用有兩個,一是用於遮蔽IP地址的一部分以區別網路標識和主機標識,並說明該IP地址是在區域網上,還是在遠端網上。二是用於將一個大的IP網路劃分為若干小的子網路。
面試題常有:A、B的IP是否在同一子網下【子網N:xxx】
R1=A&N=xxx;
R2=B&N=xxx;
若R1等於R2,則在同一子網
一智通(SaaS)
SpringBoot+SpringCloud+Docker
面試感觸:對基礎一定要牢,要有引導性地往自己熟悉的方面走,資料結構一定要了解,寧可說不會也不能說錯的東西。
-
Java特性:繼承,多型,抽象,封裝。
- 繼承:父子關係,體現is-a關係,節省不必要的重複程式碼。
- 多型:一個介面,有不同的實現方式。(過載重寫)
但是需要滿足繼承,複寫,父類引用指向子類物件。
- 抽象: 通過把類的共同特性抽象出來,減少開發時間。
- 封裝: 類的體現,我們通過物件的形式去呼叫它的行為(方法),而不必知道它的具體實現。
-
棧,堆,圖,佇列····資料結構一定要紮實。
- 棧:後入先出,保證出去的永遠是最新的
- 堆:也可命名為優先佇列,是一棵樹的陣列體現,保證每次提取的是佇列的第一個(最大,最小or其他設定)
-
SQL語句掌握
-
應用釋出,dependency如何分開war還是jar
-
springCloud
-
Docker
高新興
-
hashmap與concurrentHashMap
注意concurretntHashMap的兩個版本,segement以及基於CAX方式的大陣列Node<k,v>
-
redis與資料庫如何實現一致化
-
restfult service
就是@service介面
-
多執行緒
-
爬蟲如何實現
-
死鎖
-
Java專案