十天還沒整理一篇,十日為限,先到這裡吧。以後都採取這個模式。
2020-9-22 08:00-09:00
1、offer()和add()區別:
增加新項時,如果佇列滿了,add會丟擲異常,offer返回false。
2、poll()和remove()區別:
poll()和remove()都是從佇列中刪除第一個元素,remove丟擲異常,poll返回null。
3、peek()和element()區別:
peek()和element()用於查詢佇列頭部元素,為空時element丟擲異常,peek返回null。
使用區域性變數實現執行緒同步
1、Semaphore同步器
特徵:
2、CountDownLatch同步器
特徵:
3、CyclicBarrier同步器
特徵:
4、交換器(Exchanger)同步器
5、Phaser同步器
https://www.cnblogs.com/pamne/p/11731797.html
2020-9-24 08:25-09:00
一般預設情況下,在對談中,伺服器儲存 session 的 sessionid 是通過 cookie 存到瀏覽器裡。
如果瀏覽器禁用了 cookie,瀏覽器請求伺服器無法攜帶 sessionid,伺服器無法識別請求中的使用者身份,session失效。
但是可以通過其他方法在禁用 cookie 的情況下,可以繼續使用session。
Spring支援IOC,自動裝配不用類範例化,直接從bean容器中取。
1、設定在xml中
<bean id="employeeDAO" class="com.guor.EmployeeDAOImpl" autowire="byName" />
2、@Autowired自動裝配
有五種自動裝配的方式,可以用來指導 Spring 容器用自動裝配方式來進行依賴注入。
1、no
預設的方式是不進行自動裝配,通過顯式設定 ref 屬性來進行裝配。第 402 頁 共 485 頁
2、byName
通過引數名 自動裝配,Spring 容器在組態檔中發現 bean
的 autowire 屬性被設定成 byname,之後容器試圖匹配、裝配和該 bean 的屬
性具有相同名字的 bean。
3、byType:
通過引數型別自動裝配,Spring 容器在組態檔中發現 bean
的 autowire 屬性被設定成 byType,之後容器試圖匹配、裝配和該 bean 的屬
性具有相同型別的 bean。如果有多個 bean 符合條件,則丟擲錯誤。
4、constructor
這個方式類似於 byType, 但是要提供給構造器引數,如
果沒有確定的帶引數的構造器引數型別,將會丟擲異常。
5、autodetect
首先嚐試使用 constructor 來自動裝配,如果無法運作,
則使用 byType 方式。
2020-9-25 08:30-09:00
要使用 @Autowired
,需要註冊 AutowiredAnnotationBeanPostProcessor
,可以有以下兩種方式來實現:
引入組態檔中的<bean>
下引入 <context:annotation-config>
<beans>
<context:annotation-config />
</beans>
在bean組態檔中直接引入AutowiredAnnotationBeanPostProcessor
<beans>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
</beans>
1、什麼是spring batch?
spring batch是一個輕量級的、完善的批次處理框架,它主要的目的在於幫助企業建立健壯、高效的批次處理應用。
spring batch是Spring的一個子專案,它使用java語言並基於spring框架作為基礎開發,使得已經使用Spring框架的開發者或者是企業可以更加容易存取和利用企業服務。
spring batch提供了大量可重用的元件,包括了紀錄檔、追蹤、事務、任務作業統計、任務重新啟動、跳過、重複、資源管理。
對巨量資料量和高效能的批次處理任務,spring batch同樣提供了高階功能和特性來支援。
例如:分割區功能、遠端功能。
總的來說,spring batch可以支援簡單的、複雜的和巨量資料量的批次處理作業。
2、spring batch業務場景
週期性的提交批次處理
把一個任務並行處理
訊息驅動應用分級處理
大規模並行批次處理
手工或排程使任務失敗之後重新啟動
有依賴步驟的順序執行(使用工作流驅動擴充套件)
處理時跳過部分記錄
成批事務:為小批次的或有的儲存過程/指令碼的場景使用
https://blog.csdn.net/qq_35112567/article/details/100152445
(1)JavaBean 類必須是一個公共類,並將其存取屬性設定為 public
(2)JavaBean 類必須有一個空的建構函式:類中必須有一個不帶引數的公用構造器,此構造器也應該通過呼叫各個特性的設定方法來設定特性的預設值。
(3)一個javaBean類不應有公共範例變數,類變數都為private
(4)持有值應該通過一組存取方法(getXxx 和 setXxx)來存取:對於每個特性,應該有一個帶匹配公用 getter 和 setter 方法的專用範例變數。
屬性為布林型別,可以使用 isXxx() 方法代替 getXxx() 方法。
通常屬性名是要和 包名、類名、方法名、欄位名、常數名作出區別的:
首先:必須用英文,不要用漢語拼音
1、包(package)
用於將完成不同功能的類分門別類,放在不同的目錄(包)下,包的命名規則:將公司域名反轉作為包名。比如www.sohu.com 對於包名:每個字母都需要小寫。比如:com.sohu.test;該包下的Test類的全名是:com.sohu.Test.Java 。
如果定義類的時候沒有使用package,那麼java就認為我們所定義的類位於預設包裡面(default package)。
2、類
首字母大寫,如果一個類由多個單詞構成,那麼每個單詞的首字母都大寫,而且中間不使用任何的連線符。儘量使用英文。如ConnectionFactory
3、方法
首單詞全部小寫,如果一個方法由多個單詞構成,那麼從第二個單詞開始首字母大寫,不使用連線符。addPerson
4、欄位
與方法相同。如ageOfPerson
5、常數
所有單詞的字母都是大寫,如果有多個單詞,那麼使用下劃線連結即可。
如:public static final int AGE_OF_PERSON = 20; //通常加上static
public class User {
private String busName;
private String pCount;
private Boolean isRunning;
//正確的命名方式,駝峰式的
public String getBusName() {
return busName;
}
public void setBusName(String busName) {
this.busName = busName;
}
//這是什麼?
public String getpCount() {
return pCount;
}
public void setpCount(String pCount) {
this.pCount = pCount;
}
//這個也是不允許的
public Boolean getIsRunning() {
return isRunning;
}
public void setIsRunning(Boolean isRunning) {
this.isRunning = isRunning;
}
}
1. javabean屬性命名儘量使用常規的駝峰式命名規則
2. 屬性名第一個單詞儘量避免使用一個字母:如eBook, eMail。
3. boolean屬性名避免使用 「is」 開頭的名稱
4. 隨著jdk, eclipse, spring 等軟體版本的不斷提高, 底版本的出現的問題可能在高版本中解決了, 低版本原來正常的程式碼可能在高版本環境下不再支援。
下一篇:Java面試題總結(附答案)