空指標異常發生哪幾種
字串變數沒有初始化
物件的值為空,但是沒有判空,就拿來用了。
springboot統一異常處理(具體見:
首先定義乙個globalexceptionhandler
然後定義過濾器攔截exception異常(統一捕獲)
如何進行異常處理
1.如果異常在try/catch語句中,捕獲到然後頁面**到友情提示介面,後台打乙個log(模板引擎這種)。如果是前後分離,就是返回乙個異常的狀態碼,前端自行提示錯誤,後台打乙個log。(catch的是業務異常)
2.如果異常不在try/catch內,就是統一異常處理捕獲了,然後**到友情提示介面,後台打乙個log
怎麼寫執行緒
建立執行緒:定義thread子類、重新run方法、建立thread子類物件、呼叫執行緒物件的start方法。
實現runnable介面,實現run方法,用new thread.starter方法啟動。
執行緒是作業系統進行運算排程的最小單位。
乙個程序可以有很多執行緒,執行緒是作業系統進行資源排程的基本單位,執行緒是作業系統進行運算排程的最小單位。
synchronized
當synchronized用來修飾靜態方法或者類時,將會使得這個類的所有物件都是共享一把類鎖,導致執行緒阻塞,所以這種寫法一定要規避
無論synchronized關鍵字加在方法上還是物件上,如果它作用的物件是非靜態的,則它取得的鎖是物件;如果synchronized作用的物件是乙個靜態方法或乙個類,則它取得的鎖是對類,該類所有的物件同一把鎖。
每個物件只有乙個鎖(lock)與之相關聯,誰拿到這個鎖誰就可以執行它所控制的那段**。
實現同步是要很大的系統開銷作為代價的,甚至可能造成死鎖,所以盡量避免無謂的同步控制。
單例模式例項、哪些設計模式
spring中容器管理bean就是單例模式
單例模式、工廠方法模式、抽象工廠模式。
集合:list、map、set
list:有順序、可以重複。
map:鍵值型別儲存,。無順序、鍵不能重複
set:無序、不能重複
定時任務
quartz
scheduling
執行緒池、連線池
連線池:建立和管理連線的緩衝池技術。
執行緒池:當併發的執行緒很多時,頻繁的建立執行緒和銷毀執行緒會浪費資源,需要重複利用執行緒,然後引入了執行緒池技術。
延遲載入
真正需要資料的時候,才真正執行資料載入操作。
mybatis中可以使用association實現延遲載入。
訊息佇列(activemq)
例子:在使用者進行註冊操作的時候,我們首先向資料庫儲存使用者資訊,成功後,把成功訊息傳送到佇列中去,驗證碼系統會監聽訊息,一旦接收到訊息,就會給該使用者傳送驗證碼。
如何防止重**送訊息:增加訊息狀態表,每次處理訊息之前,都去狀態表中查詢一次,如果已經有相同的訊息存在,那麼就不處理,防止重**送訊息。
如果訊息傳送失敗怎麼辦:activemq有兩種訂閱方式:點到點形式和發布訂閱模式。
跨域springboot中使用cors協議解決跨域問題。
新增配置類,進行全域性的跨域配置。
顯示日誌最後指定行內容
tail –n 20 檔名
檢視當前cpu運**況
top/free
索引為查詢的字段建立索引,其實就是為該字段進行排序
應該給哪些字段建立索引:
經常需要搜尋的字段新增索引,可以加快搜尋速度。
為外來鍵新增索引,加快連線速度。
不應該為哪些字段新增索引:
記錄比較少的字段不應新增索引
對大量重複的字段不該新增索引
實際新增索引操作:
1.normal、unique、fulltext型別進行選取
回滾
具體操作是:spring預設是在丟擲uncheck exception後進行回滾操作,捕獲異常,返回錯誤資訊。
資料庫配置
驅動、連線字串、使用者名稱、密碼。
常用註解
@controller:控制層元件
@service:業務層元件
@repository:資料訪問層元件
@autowired:自動裝配
ioc:控制反轉,理解:ioc容器控制依賴物件(控制),再需要由容器向程式注入依賴物件(反轉)。
di:依賴注入,理解:由容器將依賴關係注入到元件中去
nginx:nginx反向**為什麼能夠提公升伺服器效能:nginx會將請求和響應首先快取主,再傳送或者接受,這樣後端就傳遞的是完整http請求和響應,減輕了後端壓力。
webservice:跨語言和作業系統的遠端呼叫技術
zookeeper
docker dubbo
儲存過程、觸發器
mybatis插入資料返回自增id:usegeneratedkeys="true" keyproperty="userid"
mysql常見的字串處理函式、日期處理函式、系統函式:
trim() length()
year() month() day() now()
database() version()
完整原文:
mysql left join實際遇到的問題
sql1 select a.b.from zf sys user a left join select from zf user exam info where user id in 1,2,3 and exam id 1 b on a.id b.user id where a.id in 1,2,...
css實際遇到的小問題
1 使用inline block將塊級元素同行顯示,會使li之間有看不見的間隙。比如ul的li設定為inline block後,li之間有看不見的間隙,並且這個間隙不同瀏覽器顯示不同。2 div絕對定位後,裡面的文字如何居中?class banner text 好專案不愁錢,50萬助你創業 安徽農信...
Java面試筆試常遇到的問題
for int j 0 jarray i 1.繼承類不同 a hashmap繼承 abstractmap b hashtable繼承dictionary 2.執行效率不同 a hashmap是非執行緒安全的,是hashtable的輕量級實現,效率較高 b hashtable是執行緒安全的,效率較低 ...