原创 Spring 常用模塊

Spring Core: 基礎,可以說 Spring 其他所有的功能都需要依賴於該類庫。主要提供 IoC 依賴注入功能。 Spring AOP :提供了面向切面的編程實現。Spring JDBC : Java數據庫連接。 Spring W

原创 Spring 核心組件

原创 TCP和UDP的區別?有TCP爲什麼還要有UDP?

UDP 在傳送數據之前不需要先建立連接,遠地主機在收到 UDP 報文後,不需要給出任何確認。雖然 UDP 不提供可靠交付,但在某些情況下 UDP 確是一種最有效的工作方式(一般用於即時通信),比如: QQ 語音、 QQ 視頻 、直播等等

原创 數據庫事務,事務的隔離級別

事務(TRANSACTION)是作爲單個邏輯工作單元執行的一系列操作,這些操作作爲一個整體一起向系統提交,要麼都執行、要麼都不執行 。事務是一個不可分割的工作邏輯單元。 事務必須具備以下四個屬性,簡稱 ACID 屬性:原子性(Atomic

原创 關於搭建虛擬環境的一系列問題(僅供參考)

看到有同學用Anaconda環境來做實驗,我自己也搭了一個。使用jupyter notebook 確實比在終端直接操作方便。但是很頭疼的一點就是有可能會出現Anaconda自帶的Python跟原來的Python發生衝突,各種百度、Goog

原创 Java反射機制概念(運行狀態中知道類所有的屬性和方法)

在Java中的反射機制是指在運行狀態中,對於任意一個類都能夠知道這個類所有的屬性和方法;並且對於任意一個對象,都能夠調用它的任意一個方法;這種動態獲取信息以及動態調用對象方法的功能稱爲Java語言的反射機制。 反射的應用場合: 首先說一下

原创 Java 中 static 關鍵字(改)

1、static方法一般稱作靜態方法,由於靜態方法不依賴於任何對象就可以進行訪問,因此對於靜態方法來說,是沒有this的,因爲它不依附於任何對象,既然都沒有對象,就談不上this了。並且由於這個特性,在靜態方法中不能訪問類的非靜態成員變量

原创 面試被問到,不會。

面試被問到。不會。晚點來搞。 使用Dubbo遇到的問題? 同時配置了XML和properties文件,則會使properties中的配置無效。只有XML沒有配置時,properties才生效。 Dubbo線程模型? 錄音。

原创 HashMap JDK1.7(1.8之前) 和 JDK1.8對比

1、JDK1.7採用了數組+鏈表的數據結構,JDK1.8採用了數組+鏈表/紅黑樹的數據結構 2、JDK1.8對HashMap的hash函數做出了優化,JDK 1.8 的 hash 方法 相比於 JDK 1.7 hash 方法更加簡化,但是

原创 Arraylist 與 LinkedList 異同

1. 是否保證線程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保證線程安全; 2. 底層數據結構: Arraylist 底層使用的是Object數組;LinkedList 底層使用的是雙向鏈表數據結構(JD

原创 獲取用鍵盤輸入常用的的兩種方法

方法1:通過 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close(); 方法2:通過 BufferedRead

原创 ConcurrentHashMap線程安全的具體實現方式/底層具體實現

JDK1.7 首先將數據分爲一段一段的存儲,然後給每一段數據配一把鎖,當一個線程佔用鎖訪問其中一個段數據時,其他段的數據也能被其他線程訪問。 ConcurrentHashMap 是由 Segment 數組結構和 HashEntry 數組結

原创 String 和 StringBuffer、StringBuilder 的區別是什麼?String 爲什 麼是不可變的?

可變性 String 類中使用 final 關鍵字修飾的字符數組保存字符串, private final char value[] ,所以 String 對象是不可變的。 而StringBuilder 與 StringBuffer 都繼承

原创 Java 中 finally 中的代碼一定會被執行嗎?

至少有兩種情況下finally語句是不會被執行的: 1、try語句沒有被執行到,如在try語句之前return就返回了,這樣finally語句就不會執行。       這也說明了finally語句被執行的必要而非充分條件是:相應的try語

原创 sleep() 與 wait() 的區別

1. sleep()方法是屬於Thread類中的。而wait()方法,則是屬於Object類中的。 2. wait()和sleep()都是讓出CPU佔有權,讓其它線程能夠得到運行,不同的地方在於wait()可以通過notify()或者no