- MySQL實(shí)現(xiàn)多表更新
UPDATE a SET a.name = b.name from a,b where a.age = b.age; 或者 UPDATE a SET a.name = b.name from a join in b on a.age = b.age;
- Switch 怎么判定字符串?
通過(guò)將需要判定的字符串內(nèi)容封裝到一個(gè)枚舉類(lèi)中,然后調(diào)用枚舉的屬性.這里其實(shí)是錯(cuò)誤的.現(xiàn)在可以直接使用字符串進(jìn)行swicth判斷.
- jar包和war包的區(qū)別?
war包:是一個(gè)可以直接運(yùn)行的web模塊,通常用于網(wǎng)站,打成包部署到容器中。以Tomcat來(lái)說(shuō),將war包放置在其\webapps\目錄下,然后啟動(dòng)Tomcat,這個(gè)包就會(huì)自動(dòng)解壓,就相當(dāng)于發(fā)布了。war包是Sun提出的一種web應(yīng)用程序格式,與jar類(lèi)似,是很多文件的壓縮包。war包中的文件按照一定目錄結(jié)構(gòu)來(lái)組織。根據(jù)其根目錄下包含有html和jsp文件,或者包含有這兩種文件的目錄,另外還有WEB-INF目錄。通常在WEB-INF目錄下含有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的servlet類(lèi)和jsp,或者servlet所依賴(lài)的其他類(lèi)(如JavaBean)。通常這些所依賴(lài)的類(lèi)也可以打包成jar包放在WEB-INF下的lib目錄下。
jar包:通常是開(kāi)發(fā)時(shí)要引用的通用類(lèi),打成包便于存放管理。簡(jiǎn)單來(lái)說(shuō),jar包就是別人已經(jīng)寫(xiě)好的一些類(lèi),然后對(duì)這些類(lèi)進(jìn)行打包??梢詫⑦@些jar包引入到你的項(xiàng)目中,可以直接使用這些jar包中的類(lèi)和屬性,這些jar包一般放在lib目錄下。
- 通過(guò)以下數(shù)據(jù)表返回各科成績(jī)都大于80分的學(xué)生?
name course score 張三 語(yǔ)文 75 張三 數(shù)學(xué) 81 李四 語(yǔ)文 80 李四 數(shù)學(xué) 82 王五 語(yǔ)文 81 王五 數(shù)學(xué) 85 王五 英語(yǔ) 65
- 第一種方法:先查詢(xún)出一個(gè)有至少一科成績(jī)小于80分的學(xué)生的去重臨時(shí)表
(select distinct s.name from list s where s.score<80;)
然后在全表的去重學(xué)生查詢(xún)中排除掉這個(gè)臨時(shí)表的數(shù)據(jù)
(select distinct l.name from list l where l.name not in(select distinct s.name from list s where s.score<80);)
或者
(select distinct l.name from list where not exists(select 1 from list s where s.score<80 and s.name = l.name);).關(guān)于exists及not exists的用法,以前的理解一直很模糊并不清楚怎么用.通過(guò)這個(gè)方法,可以加深理解.
https://www.cnblogs.com/beijingstruggle/p/5885137.html
配合這個(gè)鏈接方便理解其中的定義.- 第二種方法:
select distinct l.name from list l group by l.name having(min(l.score)>80);- 第三種方法:
SELECT D.name FROM ( SELECT S.name,S.score AS ITEM1,S1.score AS ITEM2,S2.score AS ITEM3 FROM Student S inner join Student S1 on S.name = S1.name and S.course <> S1.course inner join Student S2 on S.name = S2.name and S.course <> S2.course WHERE S.score>=80 and S1.score>=80 and S2.score>=80 ) D GROUP BY D.name
- 插入排序,并刪除其中重復(fù)的數(shù)字
5,3,10,15,12,20,10,8,13,18
關(guān)于插入排序,我之前有一個(gè)理解錯(cuò)誤的地方,可能是網(wǎng)上代碼的理解錯(cuò)誤.
在需要插入的數(shù)據(jù)對(duì)其前面有序數(shù)據(jù)的大小判定后,不是交換數(shù)據(jù).而是將前一個(gè)的數(shù)據(jù)賦值給當(dāng)前需要插入的數(shù)據(jù).然后往前循環(huán),不斷將有序部分比該數(shù)據(jù)大的數(shù)據(jù)往后移動(dòng)一位,當(dāng)前循環(huán)結(jié)束后將該值插入到判定結(jié)束時(shí)的位置.
//插入排序
public static void sort(int[] arr, int l) {
for (int i = 1; i < l; i++) {//設(shè)定arr[0]為有序數(shù)組,從1位開(kāi)始循環(huán).
int temp = arr[i];//將i的值復(fù)制出來(lái)備用
int j = i - 1;//將有序數(shù)組的最大下標(biāo)賦值復(fù)制出來(lái)用于循環(huán)
//并在循環(huán)結(jié)束后將i的值賦給循環(huán)最后j的j+1下標(biāo).
for (; j >= 0 && temp < arr[j]; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
System.out.println(Arrays.toString(arr));
}
這里順便也想重新學(xué)習(xí)下歸并排序.
- 以下代碼的執(zhí)行結(jié)果
(在父類(lèi)構(gòu)造器中引用它的兩個(gè)方法,在子類(lèi)構(gòu)造器中引用它實(shí)現(xiàn)的兩個(gè)方法).
主函數(shù)中創(chuàng)建一個(gè)子類(lèi)對(duì)象.
public class FatherAndSon {
public static void main(String[] args) {
Father f = new Son();
}
}
class Father {
String FNAME = "Father name@" + this.getClass() + " ";
public Father() {
call();
print();
}
public void call() {
System.out.println("Father call:" + FNAME);
}
public void print() {
System.out.println("Father print:" + FNAME);
}
}
class Son extends Father {
String SNAME = "Son name@" + this.getClass() + " ";
public Son() {
call();
print();
}
public void call() {
System.out.println("Son call:" + SNAME + FNAME);
}
public void print() {
System.out.println("Son print:" + SNAME + FNAME);
}
}
輸出結(jié)果:
Son call:nullFather name@class interview.Son
Son print:nullFather name@class interview.Son
Son call:Son name@class interview.Son Father name@class interview.Son
Son print:Son name@class interview.Son Father name@class interview.Son
這里父類(lèi)構(gòu)造器調(diào)用到子類(lèi)call()方法后,SNAME變量是null,是因?yàn)楦割?lèi)中并沒(méi)有這個(gè)成員變量.
- 1G的文件,每行一個(gè)詞,每個(gè)詞最多16個(gè)字節(jié),內(nèi)存為1M,返回出現(xiàn)頻率最高的100個(gè)詞.
- 關(guān)于switch 的default的執(zhí)行情況。
- 以下這兩段代碼的區(qū)別?
short s = 1; s = s + 1 ; short s = 1; s += 1;前一段會(huì)出現(xiàn)incompatible types的錯(cuò)誤信息.第二段則不會(huì)出現(xiàn)錯(cuò)誤.