Git
作用
git config --list
三個(gè)區(qū)域:工作區(qū),暫存區(qū),本地倉(cāng)庫(kù)
git init
git clone url
git status
git add
.gitignore
git diff
git diff staged
git commit -m "commit說(shuō)明"
git commit -am "commit說(shuō)明"
git rm 文件
git rm --cached 文件
git mv 舊文件 新文件
git log --shortstat --pretty=oneline --committer
git commit --amend
git checkout -- 文件名
git remote -v
git fetch
git pull 倉(cāng)庫(kù)名 遠(yuǎn)程分支名:本地分支名
git remote rename 舊名 新名
git remote rm 遠(yuǎn)程倉(cāng)庫(kù)名
git tag -a tag名 -m "tag說(shuō)明"
git push 倉(cāng)庫(kù)名 tag號(hào) //推送單個(gè)tag
git branch
git checkout
git checkout -b
git branch -d
git push 倉(cāng)庫(kù)名 本地分支:遠(yuǎn)程分支
git fetch 倉(cāng)庫(kù)名
git checkout -b 本地分支名 origin/分支名
git push 倉(cāng)庫(kù)名 :遠(yuǎn)程分支
內(nèi)部原理
commit對(duì)象:tree對(duì)象,祖先對(duì)象,author和committer
tree對(duì)象:真實(shí)目錄
blob對(duì)象:真實(shí)文件
git add:每個(gè)文件計(jì)算hash值,得到blob對(duì)象,存儲(chǔ)在.git
git commit:創(chuàng)建tree對(duì)象,也就是項(xiàng)目的目錄結(jié)構(gòu),創(chuàng)建commit對(duì)象,存儲(chǔ)在.git
分支:分支本質(zhì)上是指向commit對(duì)象的可變指針
git reset --soft
maven
作用
安裝目錄
.m2目錄
依賴:
groupId
artifactId
version
scope-test compile
exclusions
倉(cāng)庫(kù):
本地倉(cāng)庫(kù)
遠(yuǎn)程倉(cāng)庫(kù)
settings:
認(rèn)證
鏡像
生命周期和插件
聲明和執(zhí)行
mvn clean
mvn compile
mvn test
mvn package
mvn install
mvn deploy
-D:配置插件參數(shù)
-P:激活profile
mybatis
作用:持久層框架,負(fù)責(zé)數(shù)據(jù)的訪問(wèn)和操作
配置文件:配置mybatis的行為,包括數(shù)據(jù)源設(shè)置,屬性,映射配置文件等
typeHandlers:java類型和數(shù)據(jù)庫(kù)類型之間的轉(zhuǎn)換,處理非標(biāo)準(zhǔn)類型
映射文件mapper:
resultMap:是最復(fù)雜也是最強(qiáng)大的元素,用來(lái)描述如何從數(shù)據(jù)庫(kù)結(jié)果集中來(lái)加載對(duì)象。
insert:映射插入語(yǔ)句
update:映射更新語(yǔ)句
delete:映射刪除語(yǔ)句
select:映射查詢語(yǔ)句
sql:可重用的SQL代碼段
id:在命名空間中唯一標(biāo)示,用來(lái)引用這條語(yǔ)句
parameterType:傳入語(yǔ)句的參數(shù)類型,可以省略
resultType:返回類的名稱,如果是集合,那應(yīng)該是集合包含的類型,而不是集合本身
resultMap:使用外部的結(jié)果集resultMap,resultType和resultMap不能同時(shí)使用
映射器dao:綁定映射語(yǔ)句
實(shí)體類model:映射sql語(yǔ)句
generator
MyBatis Generator是Mybatis的代碼生成器,根據(jù)數(shù)據(jù)庫(kù)表結(jié)構(gòu),生成xml映射文件,映射器接口,實(shí)體類以及幫助類。
動(dòng)態(tài)sql
spring
作用:Spring是一個(gè)輕量級(jí)的IoC和AOP容器框架。是為Java應(yīng)用程序提供基礎(chǔ)性服務(wù)的一套框架,通過(guò)ioc和aop來(lái)簡(jiǎn)化企業(yè)應(yīng)用程序的開發(fā),它使得開發(fā)者只需要關(guān)心業(yè)務(wù)需求
IOC:
控制反轉(zhuǎn):某一接口具體實(shí)現(xiàn)類的選擇控制權(quán),從調(diào)用類中移除,轉(zhuǎn)交給第三方控制,即由Spring容器通過(guò)Bean配置進(jìn)行控制。
依賴注入,是IOC的一個(gè)方面,是個(gè)通常的概念,它有多種解釋。這概念是說(shuō)你不用創(chuàng)建對(duì)象,而只需要描述它如何被創(chuàng)建。你不在代碼里直接組裝你的組件和服務(wù),但是要在配置文件里描述哪些組件需要哪些服務(wù),之后一個(gè)容器(IOC容器)負(fù)責(zé)把他們組裝起來(lái)。
Spring容器啟動(dòng)時(shí),讀取應(yīng)用程序提供的Bean配置信息,并在Spring容器中建立Bean注冊(cè)表,然后根據(jù)注冊(cè)表實(shí)例化Bean,建立Bean和Bean之間的依賴關(guān)系,最后將這些Bean放到Bean緩存池中,供外層的應(yīng)用程序調(diào)用。
依賴注入
Spring有兩種依賴注入方式:屬性注入和構(gòu)造函數(shù)注入;其實(shí)就是設(shè)置成員變量值
屬性注入是指通過(guò)setter方法注入Bean的屬性。實(shí)現(xiàn)類提供默認(rèn)構(gòu)造方法、以及相應(yīng)的set()方法
使用構(gòu)造函數(shù)來(lái)完成屬性值的注入,Bean要提供帶參的構(gòu)造函數(shù)
@Service:對(duì)Service實(shí)現(xiàn)類進(jìn)行標(biāo)注
Spring容器會(huì)識(shí)別標(biāo)注,自動(dòng)將實(shí)現(xiàn)類轉(zhuǎn)換為容器管理的Bean
@Autowired
進(jìn)行依賴注入,@Autowired默認(rèn)按類型匹配的方式在容器中查找Bean,當(dāng)有且僅有一個(gè)匹配的Bean時(shí),將其注入被標(biāo)注變量中
@Resource默認(rèn)按照名稱
壓測(cè)
壓測(cè)流程
壓測(cè)目的
方案內(nèi)容
壓測(cè)準(zhǔn)備
壓測(cè)注意事項(xiàng)
影子表
QPS
響應(yīng)時(shí)間
并發(fā)量
關(guān)注的指標(biāo):業(yè)務(wù),系統(tǒng),jvm
數(shù)據(jù)庫(kù)
基礎(chǔ):
主鍵
外鍵:某表的外鍵另一表的主鍵
客戶端-服務(wù)端
連接mysql需要的信息show
show databases
show tables
show columns from 表
show create database 庫(kù)
show create table 表
show grants增刪改查
select distinct 列 from 表 where 條件 order by 列, 列 desc limit 2,3 (distinct作用于所有列,desc只作用于直接位于其前面的列)
insert into 表() values()
update 表 set 列=值 where 條件
delete from 表 where 條件通配符 正則
like '%' 任意個(gè)任意字符
like '_' 一個(gè)任意字符
\\
正則表達(dá)式regexp
'abc'
*重復(fù)前一個(gè)字符任意次
.一個(gè)任意字符
|
[]
[^]
'^$'函數(shù)
concat()
trim()
算術(shù)運(yùn)算
left() right() lower() upper() length()
Date() Now()
Abs()
avg() count() max() min() sum()分組
分組 group by having
select from where group by having order by limit;聯(lián)結(jié)
聯(lián)結(jié):用第一個(gè)表的每一行,去匹配第二個(gè)表的每一行,如果沒有where條件,返回的行數(shù)是兩個(gè)表行數(shù)乘積
內(nèi)部聯(lián)結(jié)inner join:只包含匹配的行
外部聯(lián)結(jié)outer join:包含沒有關(guān)聯(lián)的行
select 列 from 表1 left outer join 表2 on 條件
left outer join 除了匹配的行,還包含左邊表所有行
right outer join 除了匹配的行,還包含右邊所有行表
create table 表名() ;
alter table 表 change 列名 列名 屬性;
alter table 表 add 列 屬性
alter table 表 drop column 列
drop table 表用戶
create user 用戶名 identified by 密碼
drop user 用戶名權(quán)限
show grants for 用戶名
grant 操作 on 庫(kù)名.表名 to 用戶
revoke 操作 on 庫(kù)名.表名 from 用戶數(shù)據(jù)類型
date
time
datetime
int
double
varchar事務(wù)
數(shù)據(jù)庫(kù)事務(wù)
start transaction
rollback
四個(gè)特性:原子性,一致性,持久性,隔離性
事務(wù)隔離分為不同級(jí)別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復(fù)讀(repeatable read)和串行化(Serializable)。
https://www.cnblogs.com/fjdingsd/p/5273008.html鎖
https://blog.csdn.net/C_J33/article/details/79487941
共享鎖:當(dāng)一個(gè)事務(wù)執(zhí)行select語(yǔ)句時(shí),數(shù)據(jù)庫(kù)系統(tǒng)會(huì)為這個(gè)事務(wù)分配一把共享鎖
獨(dú)占鎖:當(dāng)一個(gè)事務(wù)執(zhí)行insert、update或delete語(yǔ)句時(shí),數(shù)據(jù)庫(kù)系統(tǒng)會(huì)自動(dòng)對(duì)SQL語(yǔ)句操縱的數(shù)據(jù)資源使用獨(dú)占鎖。
獨(dú)占鎖不能和其他鎖兼容,如果數(shù)據(jù)資源上已經(jīng)加了獨(dú)占鎖,就不能再放置其他的鎖了。同樣,如果數(shù)據(jù)資源上已經(jīng)放置了其他鎖,那么也就不能再放置獨(dú)占鎖了。
更新鎖:當(dāng)一個(gè)事務(wù)執(zhí)行update語(yǔ)句時(shí),數(shù)據(jù)庫(kù)系統(tǒng)會(huì)先為事務(wù)分配一把更新鎖。當(dāng)讀取數(shù)據(jù)完畢,執(zhí)行更新操作時(shí),會(huì)把更新鎖升級(jí)為獨(dú)占鎖。索引
https://blog.csdn.net/weiliangliang111/article/details/51333169
作用:通過(guò)縮小一張表中需要查詢的記錄/行的數(shù)目來(lái)加快搜索的速度。
索引是一種數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)了這一列的所有值,同時(shí)存儲(chǔ)了指向表中的相應(yīng)行的指針
索引使用最常用的數(shù)據(jù)結(jié)構(gòu)-B-Tree-那么其中的數(shù)據(jù)是有序的。有序的列值可以極大的提升性能
其它
http thrift
Thrift是一種跨語(yǔ)言的RPC服務(wù)協(xié)議,采用不同的語(yǔ)言開發(fā)客戶端代碼和服務(wù)器端代碼,且性能優(yōu)越。
接口定義描述接口函數(shù)及數(shù)據(jù)類型,然后通過(guò)Thrift的編譯環(huán)境生成各種語(yǔ)言類型的接口文件
http位于應(yīng)用層,rpc位于傳輸層。RPC基于socket,socket基于TCP協(xié)議,比http服務(wù)少了應(yīng)用層、表示層、會(huì)話層,比http服務(wù)快一點(diǎn)。-
垃圾回收
棧:每個(gè)線程執(zhí)行每個(gè)方法的時(shí)候都會(huì)在棧中申請(qǐng)一個(gè)棧幀,每個(gè)棧幀包括局部變量區(qū)和操作數(shù)棧,用于存放此次方法調(diào)用過(guò)程中的臨時(shí)變量、參數(shù)和中間結(jié)果
堆:堆存放對(duì)象
分為新生代、年老代和持久代。新生代分為Eden區(qū)、Survivor1區(qū)和Survivor2區(qū)
image.png 新生代垃圾回收
- 大多數(shù)新生對(duì)象都被分配在Eden區(qū)。
- 第一次GC過(guò)后Eden中還存活的對(duì)象被移到其中一個(gè)Survivor1區(qū)。
- 再次GC過(guò)程中,Eden和Survivor1區(qū)中還存活的對(duì)象會(huì)被移到Survivor2區(qū)。
- 重復(fù)這個(gè)過(guò)程
- 經(jīng)過(guò)數(shù)次(默認(rèn)是15次)在兩個(gè)Survivor區(qū)域移動(dòng)后還存活的對(duì)象最后會(huì)被移動(dòng)到老年代。
- 線上問(wèn)題
- 可測(cè)性改進(jìn)
java
- Arrays.asList方法
1.不能把基本數(shù)據(jù)類型轉(zhuǎn)化為列表
2.asList方法返回的是數(shù)組的一個(gè)視圖,視圖意味著,對(duì)這個(gè)list的操作都會(huì)反映在原數(shù)組上
https://www.cnblogs.com/zheyangsan/p/6910476.html - 三元運(yùn)算符
- switch
接受一個(gè)int或char,查找case,匹配就執(zhí)行,知道break語(yǔ)句。否則,執(zhí)行default - 異常
聲明異常,拋出異常,捕獲異常
方法要拋出必檢異常,必須在方法頭中聲明異常
捕獲異常:
1.try中某條語(yǔ)句拋出異常,跳過(guò)try剩余語(yǔ)句,按順序匹配catch塊
2.匹配上,執(zhí)行catch塊,然后繼續(xù)執(zhí)行函數(shù)
3.未匹配上,退出本方法,異常傳遞給調(diào)用本方法的方法,繼續(xù)上面流程 - finally子句
任何情況,finally子句都會(huì)執(zhí)行
try{
}catch() {
}finally {
}
1.try塊沒有出現(xiàn)異常:執(zhí)行完try,執(zhí)行finally,繼續(xù)
2.try塊有異常,被catch捕獲:跳過(guò)try塊其它語(yǔ)句,執(zhí)行catch,執(zhí)行finally,繼續(xù)
3.try塊有異常,沒有被catch捕獲:跳過(guò)try塊其它語(yǔ)句,執(zhí)行finally,然后將異常傳遞給調(diào)用本方法的方法 - jdbc原理
jdbc是Java數(shù)據(jù)庫(kù)連接技術(shù)的簡(jiǎn)稱
JDBC連接數(shù)據(jù)庫(kù)的步驟
1.加載驅(qū)動(dòng)(jdbc驅(qū)動(dòng),用于鏈接數(shù)據(jù)庫(kù))
2.獲取連接對(duì)象(url,name,pass)
3.創(chuàng)建命令對(duì)象
4.執(zhí)行sql
5.處理結(jié)果集
6.關(guān)閉鏈接 - FileInputStream類與FileReader類的區(qū)別
FileInputStream:以字節(jié)流方式讀取,字節(jié)為單位
FileReader:把文件轉(zhuǎn)換為字符流讀入,字符為單位
壓測(cè)平臺(tái)
數(shù)據(jù)構(gòu)造、場(chǎng)景管理、動(dòng)態(tài)調(diào)控、過(guò)程監(jiān)控、壓測(cè)報(bào)告
計(jì)算機(jī)基礎(chǔ)
- 協(xié)議體系結(jié)構(gòu)由哪幾部分組成:應(yīng)用層,表示層,會(huì)話層,運(yùn)輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層
- IP地址與硬件地址的區(qū)別
- TCP連接建立的過(guò)程(三次握手)
- 簡(jiǎn)要域名解析的過(guò)程
1.先在瀏覽器緩存,本機(jī)host文件中查找,如果找到,解析結(jié)束
2.主機(jī)提出域名解析請(qǐng)求,發(fā)送給本地域名服務(wù)器
3.本地域名服務(wù)器進(jìn)行查詢,緩存中有記錄,本地域名服務(wù)器就把結(jié)果返回
4.如果沒查到,本地域名服務(wù)器把請(qǐng)求發(fā)給根域名服務(wù)器
5.跟域名服務(wù)器返回結(jié)果,或者下一個(gè)應(yīng)查詢的域名服務(wù)器地址 - 瀏覽器輸入url之后發(fā)生了什么
https://www.cnblogs.com/tisikcci/p/5866753.html
1.DNS域名解析
2.瀏覽器與網(wǎng)站服務(wù)器建立連接(三次握手)
3.請(qǐng)求和傳輸數(shù)據(jù)
4.瀏覽器渲染頁(yè)面 - 死鎖的四個(gè)必要條件
1.互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用
2.請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放
3.不剝奪條件:進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪
4.循環(huán)等待條件:若干進(jìn)程間,形成一種頭尾相接的循環(huán)等待資源關(guān)系
http協(xié)議
- http
超文本傳輸協(xié)議,基于TCP/IP通信協(xié)議來(lái)傳遞數(shù)據(jù)的 - 請(qǐng)求結(jié)構(gòu)
請(qǐng)求報(bào)文:方法+URI+版本+首部字段+主體 - 響應(yīng)接口
響應(yīng)報(bào)文:版本+狀態(tài)碼+原因短語(yǔ)+首部字段+主體 - 缺點(diǎn)
1.不加密
2.不驗(yàn)證通信方身份
3.無(wú)法驗(yàn)證報(bào)文的完整性
加密,證書,簽名
HTTP+加密+認(rèn)證+完整性保護(hù)=HTTPS - 方法
1.get:請(qǐng)求數(shù)據(jù)
2.post:上傳數(shù)據(jù)
3.put:上傳文件
4.delete:刪除文件
http://www.w3school.com.cn/tags/html_ref_httpmethods.asp - get post區(qū)別
1.數(shù)據(jù)長(zhǎng)度的限制,
get,URL 的長(zhǎng)度是受限制的(URL 的最大長(zhǎng)度是 2048 個(gè)字符)
post,無(wú)限制
2.安全性
get,所發(fā)送的數(shù)據(jù)是 URL 的一部分,所有人可見
post,數(shù)據(jù)不會(huì)顯示在 URL 中 - 狀態(tài)碼
1.2xx:成功,請(qǐng)求正常處理完畢
2.3xx:重定向,
3.4xx:客戶端錯(cuò)誤,服務(wù)端無(wú)法處理請(qǐng)求
4.5xx:服務(wù)端錯(cuò)誤,服務(wù)端處理請(qǐng)求出錯(cuò)
400:請(qǐng)求語(yǔ)法錯(cuò)誤
401:需要認(rèn)證信息
403:沒有權(quán)限
404:資源不存在
500:服務(wù)器內(nèi)部錯(cuò)誤
502:作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從遠(yuǎn)程服務(wù)器接收到了一個(gè)無(wú)效的響應(yīng)
504:網(wǎng)關(guān)超時(shí)
