sql

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
  • 新生代垃圾回收

  1. 大多數(shù)新生對(duì)象都被分配在Eden區(qū)。
  2. 第一次GC過(guò)后Eden中還存活的對(duì)象被移到其中一個(gè)Survivor1區(qū)。
  3. 再次GC過(guò)程中,Eden和Survivor1區(qū)中還存活的對(duì)象會(huì)被移到Survivor2區(qū)。
  4. 重復(fù)這個(gè)過(guò)程
  5. 經(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í)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Git使用教程 Git是什么 Git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 ...
    90后的思維閱讀 1,027評(píng)論 0 0
  • 本文針對(duì)初級(jí)用戶,從最簡(jiǎn)單的講起,但是需要讀者對(duì)Git的基本用法有所了解。 Git是開源的分布式版本控制系統(tǒng),...
    Sachie閱讀 1,254評(píng)論 0 2
  • 源代碼管理工具的起源 為什么會(huì)出現(xiàn)源代碼管理工具? 為了解決在軟件開發(fā)過(guò)程中,由源代碼引發(fā)的各種蛋疼繁瑣問(wèn)題 源代...
    小白文_Vincent閱讀 3,546評(píng)論 2 8
  • 一、git簡(jiǎn)介 git是目前世界上被最廣泛使用的現(xiàn)代軟件版本管理系統(tǒng)。git本身亦是一個(gè)成熟并處于活躍開發(fā)狀態(tài)的開...
    s_在路上閱讀 3,148評(píng)論 0 10
  • git 使用筆記 git原理: 文件(blob)對(duì)象,樹(tree)對(duì)象,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,854評(píng)論 0 10

友情鏈接更多精彩內(nèi)容