04.05 阿里資深HR告訴你自學和學院派的程序猿差距在哪

紮實的基本功+系統的知識體系+自學派=學院派

基本功

面向對象的特徵

面向對象的三個基本特徵是:封裝、繼承、多態。

封裝

封裝最好理解了。封裝是面向對象的特徵之一,是對象和類概念的主要特性。

封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。

繼承

面向對象編程 (OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴展。

多態

多態性(polymorphisn)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。

實現多態,有二種方式,覆蓋,重載。

final, finally, finalize 的區別

final 用於聲明屬性,方法和類, 分別表示屬性不可變, 方法不可覆蓋, 類不可繼承.

finally 是異常處理語句結構的一部分,表示總是執行.

finalize 是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等. JVM不保證此方法總被調用.

int 和 Integer 有什麼區別

int是java提供的8種原始數據類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。

int的默認值為0,而Integer的默認值為null,是引用類型,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,

Java中int和Integer關係是比較微妙的。關係如下:

1、int是基本的數據類型;

2、Integer是int的封裝類;

3、int和Integer都可以表示某一個數值;

4、int和Integer不能夠互用,因為他們兩種不同的數據類型;

POST是沒有大小限制的,HTTP協議規範也沒有進行大小限制和session 與 cookie 區別

1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。

2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙

考慮到安全應當使用session。

3、session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能

考慮到減輕服務器性能方面,應當使用COOKIE。

4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

5、所以個人建議:

將登陸信息等重要信息存放為SESSION

其他信息如果需要保留,可以放在COOKIE中

session 分佈式處理

1.Session複製

在支持Session複製的Web服務器上,通過修改Web服務器的配置,可以實現將Session同步到其它Web服務器上,達到每個Web服務器上都保存一致的Session。

優點:代碼上不需要做支持和修改。

缺點:需要依賴支持的Web服務器,一旦更換成不支持的Web服務器就不能使用了,在數據量很大的情況下不僅佔用網絡資源,而且會導致延遲。

適用場景:只適用於Web服務器比較少且Session數據量少的情況。

可用方案:開源方案tomcat-redis-session-manager,暫不支持Tomcat8。

2.Session粘滯

將用戶的每次請求都通過某種方法強制分發到某一個Web服務器上,只要這個Web服務器上存儲了對應Session數據,就可以實現會話跟蹤。

優點:使用簡單,沒有額外開銷。

缺點:一旦某個Web服務器重啟或宕機,相對應的Session數據將會丟失,而且需要依賴負載均衡機制。

適用場景:對穩定性要求不是很高的業務情景。

3.Session集中管理

在單獨的服務器或服務器集群上使用緩存技術,如Redis存儲Session數據,集中管理所有的Session,所有的Web服務器都從這個存儲介質中存取對應的Session,實現Session共享。

優點:可靠性高,減少Web服務器的資源開銷。

缺點:實現上有些複雜,配置較多。

適用場景:Web服務器較多、要求高可用性的情況。

可用方案:開源方案Spring Session,也可以自己實現,主要是重寫HttpServletRequestWrapper中的getSession方法,博主也動手寫了一個,github搜索joincat用戶,然後自取。

Spring,MyBatis,Netty源碼分析的朋友可以加Java進階群:582505643,群裡有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給大家。

4.基於Cookie管理

這種方式每次發起請求的時候都需要將Session數據放到Cookie中傳遞給服務端。

優點:不需要依賴額外外部存儲,不需要額外配置。

缺點:不安全,易被盜取或篡改;Cookie數量和長度有限制,需要消耗更多網絡帶寬。

適用場景:數據不重要、不敏感且數據量小的情況。

總結

這四種方式,相對來說,Session集中管理更加可靠,使用也是最多的。


JDBC 流程

(1)向DriverManager類註冊驅動數據庫驅動程序

(2)調用DriverManager.getConnection方法, 通過JDBC URL,用戶名,密碼取得數據庫連接的Connection對象。

(3)獲取Connection後, 便可以通過createStatement創建Statement用以執行SQL語句。

(4) 有時候會得到查詢結果,比如select,得到查詢結果,查詢(SELECT)的結果存放於結果集(ResultSet)中。

(5)關閉數據庫語句,關閉數據庫連接。

系統的知識體系

阿里資深HR告訴你自學和學院派的程序猿差距在哪

阿里資深HR告訴你自學和學院派的程序猿差距在哪

阿里資深HR告訴你自學和學院派的程序猿差距在哪

阿里資深HR告訴你自學和學院派的程序猿差距在哪

阿里資深HR告訴你自學和學院派的程序猿差距在哪

阿里資深HR告訴你自學和學院派的程序猿差距在哪

這就是我們從業幾年一直沒有升職加薪的原因。


分享到:


相關文章: