1.spring springboot springcloud的區別css
spring框架爲開發java應用程序提供基礎架構支持,如:springJDBC,springMVC,springAOPhtml
springboot:消除了設置spring應用程序所需的xml配置,快速開發框架,經過maven依賴的繼承方式,內置http服務器java
springcloud:是微服務框架的有序集合,springcloud依賴springboot框架實現微服務開發,rpc遠程調用技術,springboot的web組件默認集成了springmvc,能夠實現http+json的輕量級傳輸mysql
2.springboot實現了什麼減小配置linux
3.springboot中有幾種事務程序員
4.索引的類型,非主鍵索引細分web
主鍵索引:數據庫主鍵列使用的就是主鍵索引,一張表只有一個主鍵,且主鍵不能爲null,部重複,在innodb表中,當沒有顯示指定表的主鍵時,innodb會自動檢測表中是否有惟一索引的字段,有則設置默認主鍵,不然會自動建立自增主鍵ajax
二級索引(輔助索引),二級索引有惟一索引,普通索引,前綴索引算法
惟一索引:容許數據爲null,一張表容許多個惟一索引spring
普通索引:容許數據重複和null
前綴索引:適用於字符串的索引
全文索引:檢索大文本數據中的關鍵字信息
彙集索引與非彙集索引
彙集索引即索引結構與數據存放一塊兒的索引,主鍵索引屬於彙集索引,優勢:查詢速度快,缺點:依賴有序數據,更新代價大
非彙集索引:索引結構和數據分開存放的索引,二級索引 優勢:更新代價比彙集索引要小,缺點:依賴有序數據,可能會二次查詢(回表)
覆蓋索引,若須要查詢的字段正好是索引的字段,就直接根據索引查到數據,無需回表查詢
5.索引的數據結構
6.運行時數據區分爲那幾塊
程序計數器,虛擬機棧,本地方法棧,堆,方法區
7.方法私有變量存在哪
8.年輕代垃圾回收算法
9.對java中數據流的理解,做用分類,適用場合
10.web開發基礎,servlet,jsp
servlet的生命週期:web容器加載servlet,聲明週期開始,調用servlet的init()方法進行servlet的初始化,經過調用service方法()實現根據請求的不一樣調用do方法,結束服務,web調用servlet的destory()方法
11.web發送請求後,請求和整個響應流程
域名解析-與服務器創建鏈接(3次握手)-發起http請求-服務器響應http請求,瀏覽器得到html代碼-瀏覽器解析html代碼,並請求html代碼中的資源(js,css,圖片)-瀏覽器對頁面進行渲染
12.經常使用請求方式,get和post區別
get、post是http協議發送請求的兩種方法,都是tcp鏈接,但因爲http協議的規定和瀏覽器的限定,在應用中產生區別,
get產生一個數據包,post產生兩個tcp數據包,
get請求只能進行url編碼,而post支持多種編碼
get請求參數會完整保留在瀏覽器歷史記錄裏,而post中參數不會保留
get在url傳輸的參數是由長度限制,而post沒有
get只接受ascii字符,post沒有限制
get將參數暴露在url中,更不安全
get經過url傳遞,post放在request body中
get回退是瀏覽器會從以前緩存拿結果,post每次調用建立新的資源
13.請求那幾部分組成,響應由那幾部分組成
http請求報文由請求行,請求頭,空行,請求數據組成
請求行:請求方法(get,post,head,put),url,http協議版本
請求頭:產生請求的瀏覽器類型,客戶端可識別的內容類型列表,主機地址
空行:發送回車符和換行符,通知服務器下再也不有請求頭
請求數據:用戶提交的查詢信息,在post方法中數據以keyvalue形式發送請求
http響應由響應消息行,響應消息頭,響應正文
響應消息行:包含協議、版本,響應狀態碼,對響應狀態碼的描述
響應消息頭:服務器與客戶端通訊的暗碼,告訴客戶端執行某些操做
響應消息正文
14.maven的理解
maven是java的自動化構建工具,1.約定的目錄結構,2.pom,構建過程一切設置都在這個文件中進行配置,3,座標(groupid,artfactid,version)肯定一個maven工程4.倉庫:本地倉庫,遠程倉庫,5依賴,maven解析依賴信息從本地倉庫查找被依賴的jar包,6.聲明週期:清理,編譯,測試,打包,安裝,部署,生成項目報告,發佈站點,7.繼承,聚合
15.cookie和session
存儲位置,cookie數據信息存放在客戶端瀏覽器上,session存放在服務器上
存儲容量,單個cookie保存<=4kb,站點最多保存20個cookie,session沒有上限,但保證服務器端性能,設置session刪除機制
存儲方法:cookie只保存ascii字符串,經過編碼方式存儲unicode字符或二進制數據,session能存儲任何類型數據
隱私:cookie對服務端可見,能夠進行cookie欺騙,不安全,session在服務器上
有效期:cookie設置屬性,達到長期有效,session不能長期有效
服務器壓力,每一個用戶都會產生一個session,若併發訪問十分多,會耗費大量內存
跨域支持,cookie支持跨域名訪問,session不支持
16.轉發和重定向
17.json數據格式和數據傳遞
json有兩種格式:①對象格式:{"key1":obj,"key2":obj,"key3":obj...}、②數組/集合格式:[obj,obj,obj...]。
在服務器端對象的轉換過程可使用官方提供的API,JSONObject和JSONArray分別爲對象和數組的轉換類型
若是使用JS原生的方法進行轉換的話,可使用eval()方法,但須要在JSON的先後鏈接上左右圓括號
18.程序的同步和異步
同步:
主機A發送數據的時候,主機B必須等待接收,處於阻塞狀態。
異步:
主機A發送數據的時候,主機B無須等待接收,主機B要得到數據就從緩存裏取,就比如別人給你發郵件同樣。
19.ajax
20.動態代理
21.紅黑樹爲何查找快
22.object有哪些方法
23.數據庫處理字符串的方法
concat(str1,str2)鏈接字符串函數
convert(str,signed)將str轉化爲數字類型
convert(datatype,getdate(),1)將數據類型datetime轉爲字符串
substring_index(str,分隔符,n)n表明第幾個分隔符,n爲正截取左邊,n爲負,截取右
substring(str,起始下標,長度)截取字符串
24.linux經常使用的命令
25.mapper文件怎麼對應到dao層
26.mybatis標籤類型,怎麼使用,結果集怎麼用,$和#的用法
resulttype返回類型
1.返回通常數據類型,像string,hashmap
2.返回javabean類型
3.返回list類型 注意這裏的 resultType 返回值類型是集合內存儲數據的類型,不是 'list'
4.返回map類型,reslutype填map
Mybatis 的Mapper.xml語句中parameterType向SQL語句傳參有兩種方式:#{}和${}
咱們常用的是#{},通常解說是由於這種方式能夠防止SQL注入,簡單的說#{}這種方式SQL語句是通過預編譯的,
它是把#{}中間的參數轉義成字符串,舉個例子:
select * from student where student_name = #{name}
預編譯後,會動態解析成一個參數標記符?:
select * from student where student_name = ?
而使用${}在動態解析時候,會傳入參數字符串
select * from student where student_name = 'lyrics'
總結:
#{} 這種取值是編譯好SQL語句再取值
${} 這種是取值之後再去編譯SQL語句
#{}方式可以很大程度防止sql注入。
$方式沒法防止Sql注入。
$方式通常用於傳入數據庫對象,例如傳入表名.
通常能用#的就別用$.
27.select from where groupby orderby執行順序
(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) HAVING <having_condition> (9) ORDER BY <order_by_condition> (10) LIMIT <limit_number>
首先執行from,from對兩個表進行笛卡爾積,獲得虛擬表
執行on進行條件過濾
添加外部和,只有當outer join纔會發生,left outer join把左表做爲保留吧,左表數據所有查詢,若右表無對應數據,用null填充
執行where執行條件過濾
執行groupby對where的字句進行分組操做
執行having
執行select
執行distinct
執行orderby
執行limit分頁
https://blog.csdn.net/weixin_43907800/article/details/105374147
28.線程的interrupt方法
中斷線程,會設置該線程中斷狀態位,即設置爲true,線程會不時檢查這個中斷標誌位,以判斷線程是否應該被中斷
判斷線程釋放被中斷,使用thread.currentThread().isinterrupted()方法(不會馬上清除中斷標示位,不會中斷標設置爲false),而不要使用thread.interrupt(會將中斷標示位清除,從新設置false)
如何中斷線程
若線程處於阻塞狀態,則在線程組檢查中斷表示若是發現中斷表示爲true,則會在調用出拋出interruptedException異常,拋出異常後當即將線程中斷位標識清除,從新設置爲false,拋出異常是爲了線程從阻塞狀態醒過來,並在結束線程前讓程序員有足夠的時間來處理中斷請求
29.mysql中分頁怎麼作
a.limit關鍵字
select * from table limit m,n
m表明記錄開始的index,從0開始,n指從m+1條開始,取n條
b.主鍵索引或惟一索引加limit實現
假設每頁10條,SELECT * FROM 表名稱 WHERE id_pk > (pageNum*10) LIMIT M
c.基於索引再排序
SELECT * FROM 表名稱 WHERE id_pk > (pageNum*10) ORDER BY id_pk ASC LIMIT M
30.aop和ioc
32.頭插法和尾插法
33.髒讀幻讀
34.try和catch中有return時,finally裏面的語句會被執行嗎
若是程序是從try代碼塊或者catch代碼塊中返回時,finally中的代碼總會執行。並且finally語句在return語句執行以後return返回以前執行的。當finally有返回值時,會直接返回。不會再去返回try或者catch中的返回值。