記第一次電話面試——釘釘Java工程師

首先,大佬讓我用兩分鐘自我介紹。我本以爲自己能滔滔不絕,將對方視作相親對象般全方位介紹自己。結果不到一分鐘,我就介紹完了。

在這裏插入圖片描述

Java基礎知識

Integer與int

大佬:Java裏面的int是幾個字節?

我:32個字節

大佬:……

大佬(懷疑面錯了人):是嗎?你再想想,java

我(臥槽聽錯了):對不起,是32位,4字節

大佬:Java裏面有integer和int,對吧?它們區別是什麼?

我:Integer是一個對象,int是基本類型,int是一個不可變類型

後來查一下答案:1. Integer是int的包裝類,int是基本類型。2. Integer變量必須實例化後才能使用,而int不需要。3.Integer是對象的引用,而int是直接存儲數值。4. Integer默認值是null,而int默認值是0

大佬:OK,integer和int是否可以相互賦值?

我:可以

大佬:相互賦值的原理是什麼?

我:原理我沒有仔細思考過,但我覺得應該是integer創建的對象是以int類型的一個對象,所以可以相互複製,因爲它們屬性相同。這是我一個猜測。因爲我沒有了解過他們之間的原因。

大佬:OK,比方說我現在描述一段代碼,你看一下這段代碼有什麼問題?第1行:Integer a= null,第二行是:int b=a。這段代碼編譯或者運行時間會有什麼問題?

我:第2行應該是會報錯的。因爲int是不能指向NULL的。所以因int A=B的話,應該是會報錯的。

大佬:報錯類型是什麼?

我:不好意思,我可能不太瞭解報錯類型。

後來運行結果,報錯類型是NullPointerException

Java修飾符

大佬:Java裏面有一些訪問修飾符嗎?然後你說一下有哪幾個?然後分別有什麼作用?它們的區別是什麼?

我:public、protected、private,然後balabala

大佬(就知道你會說這三種):OK,剛纔你說到了三種,還有一種再想想的。

我:……

大佬(放棄希望了):……

查了一下答案:
類內部 本包 子類 外部包
public protected default private

在這裏插入圖片描述

繼承

大佬(聊不下去換了個話題):Java裏面有字符串類型,String這個類型對吧?然後這個類是不是可不可以被繼承?
我:可以(錯誤!!!)

不可以,因爲String類有final修飾符,而final修飾的類是不能被繼承的

大佬(又快聊不下去了):反過來問一下,如果我想要一個類不能被繼承的話,我應該怎麼做?
我:……
大佬(緩和話題):如果我想一個內部不能被繼承,我可能某些關鍵字來聲明一下或者是什麼的。你想一想。
我:……

查一下答案:用final修飾的類不能被繼承

異常

大佬:你平時寫代碼的時候有沒有碰到過異常?說幾個

我(終於可以回答了):有的,比如:RuntimeException和IOException,然後balabala

大佬:RuntimeException和Exception有什麼區別?

我:balabala(重複了一遍原話,楞是沒說出區別)

Exception:定義方法時必須聲明所有可能會拋出的exception;
Runtime Exception:在定義方法時不需要聲明會拋出runtime exception

大佬(不忍心給個臺階下):你剛纔提到一個IOException,你代碼裏面一般處理這種異常的話,你怎麼寫?

我:try catch

線程安全

大佬:再問一個Java裏面有list、map、site對吧?應該平時用的比較多的,你說一下就是三個的特點

我:balabala

大佬:arraylist是線程不安全的,使用arraylist如何使得線程安全?

我:Synchronized關鍵字或Lock鎖機制,balabala

查答案:List list = Collections.synchronizedList(new ArrayList());

JVM

大佬:你的簡歷上有JVM調優講一個你JVM調優的經歷

我(終於看簡歷了):balabala(反正我也沒搞清楚自己在說啥)

大佬:你提到JVM存儲,分爲年輕代、老年代和永久代,請說一下對象從創建到回收的過程

我:……

大佬(尷尬地沉默了幾秒):你介紹一下Young GC和Old GC以及區別

我(這也不會啊):……

計網

大佬:你講一下TCP的三次握手?

我:balabala

大佬:OK,你說一下TCP和UDP的區別

我:balabala

大佬:OK,HTTP我問一下它常見的錯誤有哪些?含義分別是什麼?

我(完了,只記得404):404,指網頁找不到了,網頁被防火牆攔截了

大佬:然後還有哪些錯誤嗎?

我:(求您別問了T T)

400 Bad Request 請求異常
403 Forbidden 服務器拒絕執行

大佬(決定再給最後一次機會):HTTP正確的狀態碼是多少?

我(後悔計網課玩手機了):對不起,我可能不太記得了,我只記得HTTP的端口是80

HTTP成功響應的狀態碼:200 OK

大佬:OK沒關係,你剛纔說HTTP的端口是80,對吧?有沒有可能我們訪問的一個HTTP服務,它端口不是80,什麼情況下會出現一個端口不是80?這個跟什麼相關?

我:(還能再問?)可能和IP有關吧

查一下答案:80端口只是一個標準,而並非強制規定,有時爲了安全,web服務器就算不監聽80端口也是沒有問題的

總結

最後大佬讓我問了他幾個問題,大佬很耐心,在面試過程中也不斷給我機會,但我太菜了QwQ。總結一下,沒答出或答錯較多問題,以後還會有面試,加油吧 !

如果有收穫?希望來個三連擊,給更多的人看到這篇文章

1、關注我的原創微信公衆號「程序猿的進階」,主要是IT與競賽

2、創作不易,順便點個讚唄,可以讓更多的人看到這篇文章,激勵一下我這個小白

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章