判斷字符串相等
之前一只判斷字符串相等都是用的 ==
Sring a = "123";
String b = "123";
if (a==b) 是true的。因?yàn)閍和b指向同一個(gè)對(duì)象,也就是同一個(gè)內(nèi)存空間(a指針b指針指向同一個(gè)內(nèi)存)
但是!我在不同的地方初始化的字符串是不同的內(nèi)存空間,(a==b)就是false。
常見(jiàn)的應(yīng)用場(chǎng)景,你本地的對(duì)象和傳來(lái)的參數(shù)做值判斷(如:后臺(tái)數(shù)據(jù)庫(kù)有一個(gè)人“張三”,前臺(tái)根據(jù)姓名查詢“張三”的工資)。這時(shí)判斷的應(yīng)該是值相等。用equals()
String name = new String("張三");
String param = new String("張三");
name.equals(param) 則為true
數(shù)組,list 和 arrayList
數(shù)組在內(nèi)存中是連續(xù)存儲(chǔ)的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡(jiǎn)單。但是當(dāng)元素?cái)?shù)量非常龐大的時(shí)候,就會(huì)嚴(yán)重影響存取性能。插入數(shù)據(jù)的時(shí)候也是在插入位置后面的所有元素后移,下標(biāo)改變。
ArrayList它的大小是按照其中存儲(chǔ)的數(shù)據(jù)來(lái)動(dòng)態(tài)擴(kuò)充與收縮的。所以,我們?cè)诼暶鰽rrayList對(duì)象時(shí)并不需要指定它的長(zhǎng)度。ArrayList繼承了List接口,所以它可以很方便的進(jìn)行數(shù)據(jù)的添加,插入和移除.
ArrayList arrList = new ArrayList();
//新增數(shù)據(jù)
arrList.Add("abc");
arrList.Add(123);
//修改數(shù)據(jù)
arrList[2] = 345;
//移除數(shù)據(jù)
arrList.RemoveAt(0);
//插入數(shù)據(jù)
arrList.Insert(0, "hello world");
arrList插入了字符串"abc",而且又插入了數(shù)字123。這樣在ArrayList中插入不同類型的數(shù)據(jù)是允許的,也就是說(shuō)ArrayList不是類型安全的。因?yàn)?b>ArrayList會(huì)把所有插入其中的數(shù)據(jù)都當(dāng)作為object類型來(lái)處理。既使我們保證在插入數(shù)據(jù)的時(shí)候都很小心,都有插入了同一類型的數(shù)據(jù),但在使用的時(shí)候,我們也需要將它們轉(zhuǎn)化為對(duì)應(yīng)的原類型來(lái)處理。這就存在了裝箱與拆箱的操作,會(huì)帶來(lái)很大的性能損耗。
List類是ArrayList類的泛型等效類。它的大部分用法都與ArrayList相似,因?yàn)長(zhǎng)ist類也繼承了IList接口。最關(guān)鍵的區(qū)別在于,在聲明List集合時(shí),我們同時(shí)需要為其聲明List集合內(nèi)數(shù)據(jù)的對(duì)象類型。
List list = new List();
//新增數(shù)據(jù)
list.Add(123);
//修改數(shù)據(jù)
list[0] = 345;
//移除數(shù)據(jù)
list.RemoveAt(0);
List泛型的好處:?
通過(guò)允許指定泛型類或方法操作的特定類型,泛型功能將類型安全的任務(wù)從您轉(zhuǎn)移給了編譯器。不需要編寫代碼來(lái)檢測(cè)數(shù)據(jù)類型是否正確,因?yàn)闀?huì)在編譯時(shí)強(qiáng)制使用正確的數(shù)據(jù)類型。減少了類型強(qiáng)制轉(zhuǎn)換的需要和運(yùn)行時(shí)錯(cuò)誤的可能性。泛型提供了類型安全但沒(méi)有增加多個(gè)實(shí)現(xiàn)的開(kāi)銷。
上傳文件:
在上傳文件(圖片)的時(shí)候數(shù)據(jù)庫(kù)采用的是blob.一直報(bào)錯(cuò),最后發(fā)現(xiàn)blob但是只允許65k。
類型 大小(單位:字節(jié))
tinyblob 最大 255
blob 最大 65K
mediumblob 最大 16M
longblob 最大 4G
maven install
出現(xiàn)錯(cuò)誤:不能讀取/user/../m2./repositery/? xxx
解決:進(jìn)入m2.找到該包刪掉重新maven update。解決install錯(cuò)誤
war包在Tomcat中運(yùn)行
把打好的war放在Tomcat的webapps文件中。點(diǎn)擊運(yùn)行startup.sh。瀏覽器中輸入:localhost:8080/XXXX(項(xiàng)目名)
端口被占用,殺死占用端口進(jìn)程
因?yàn)橛械捻?xiàng)目改端口比較麻煩。殺死占用該端口的進(jìn)程PID:
1、打開(kāi)終端,使用如下命令:
lsof -i:****
以上命令中,****代表端口號(hào),我們首先要知道哪個(gè)(或哪些)進(jìn)程占用該端口,比如你可以運(yùn)行 lsof -i:8000,查看有哪個(gè)進(jìn)程占據(jù)了8000端口,同時(shí)還會(huì)顯示進(jìn)程 ID;我們記住該進(jìn)程ID
2、然后在用命令 “kill 進(jìn)程ID”,殺死進(jìn)程,如:
kill 1011
匯聚平臺(tái)上架一直404
找不到路徑原因竟然是因?yàn)橐恍㎝aven依賴平臺(tái)不支持,注釋掉依賴更新上架解決。
Swagger
新建SwaggerTools包,導(dǎo)入swagger.Java,修改文件包頭,地址。
添加依賴
<!-- Swagger -->? ? ? ?
<dependency>
????<groupId>io.springfox</groupId>? ? ? ? ? ? ????<artifactId>springfox-swagger2</artifactId>? ? ? ? ? ? ? <version>2.6.1</version>
</dependency>? ? ? ?
<dependency>
????<groupId>io.springfox</groupId>? ? ? ? ? ? ????<artifactId>springfox-swagger-ui</artifactId>? ? ? ? ? ? <version>2.6.1</version>
</dependency>
輸入地址? ?http://localhost:端口/swagger-ui.html#
有時(shí)需要導(dǎo)入webconfig類(網(wǎng)上搜)才能使用swagger,但是也會(huì)導(dǎo)致項(xiàng)目中的重定向界面打不開(kāi)。Could not resolve view with name 'redirect:http........'
......BeanCreationException: Error creating bean with name 'swagger2Controller': Lookup method resolution failed;.....
原因:
簡(jiǎn)答回調(diào)函數(shù):

針對(duì)數(shù)據(jù)庫(kù)可以查詢出結(jié)果,項(xiàng)目沒(méi)有結(jié)果的問(wèn)題:
如果出現(xiàn)以上問(wèn)題,多半是mapper.xml的問(wèn)題。
如果查詢的是單個(gè)字段,需要如下轉(zhuǎn)換:

String類型的json串轉(zhuǎn)實(shí)體類
//String 轉(zhuǎn)實(shí)體
eacher是實(shí)體類
Teachers entity =JSON.parseObject(JSON.parse(teachers).toString(),Teachers.class);