紮實的基本功+系統的知識體系+自學派=學院派
基本功
面向對象的特徵
面向對象的三個基本特徵是:封裝、繼承、多態。
封裝
封裝最好理解了。封裝是面向對象的特徵之一,是對象和類概念的主要特性。
封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。
繼承
面向對象編程 (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)關閉數據庫語句,關閉數據庫連接。
系統的知識體系
這就是我們從業幾年一直沒有升職加薪的原因。
閱讀更多 架構師交流圈 的文章