2017面試遇到的問(wèn)題

  • 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
  1. 第一種方法:先查詢(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è)鏈接方便理解其中的定義.
  2. 第二種方法:
    select distinct l.name from list l group by l.name having(min(l.score)>80);
  3. 第三種方法:
    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ò)誤.

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,638評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,010評(píng)論 0 11
  • 轉(zhuǎn)自 虹口海富讓100多孩子沒(méi)學(xué)上求曝光轉(zhuǎn)發(fā)! 虹口海富幼兒園不誠(chéng)信??!如果開(kāi)不出來(lái),為什么要提前招生??為什么開(kāi)...
    倪佳薇閱讀 533評(píng)論 0 0
  • 七零一代,洗盡鉛華,與相伴終生的他(她)相擁浪漫七夕,余生無(wú)憾、無(wú)悔。 我小時(shí)候,躺在奶奶懷里,聽(tīng)她講牛郎織女的故...
    林飛鴻閱讀 474評(píng)論 0 2
  • 也許我們就這樣 越走越遠(yuǎn)
    是他不是我閱讀 248評(píng)論 0 0

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