2017面试遇到的问题

  • MySQL实现多表更新
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 怎么判定字符串?
    通过将需要判定的字符串内容封装到一个枚举类中,然后调用枚举的属性.这里其实是错误的.现在可以直接使用字符串进行swicth判断.
  • jar包和war包的区别?
    war包:是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。
    jar包:通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。
  • 通过以下数据表返回各科成绩都大于80分的学生?
name course score
张三 语文 75
张三 数学 81
李四 语文 80
李四 数学 82
王五 语文 81
王五 数学 85
王五 英语 65
  1. 第一种方法:先查询出一个有至少一科成绩小于80分的学生的去重临时表
    (select distinct s.name from list s where s.score<80;)
    然后在全表的去重学生查询中排除掉这个临时表的数据
    (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);).关于exists及not exists的用法,以前的理解一直很模糊并不清楚怎么用.通过这个方法,可以加深理解.
    https://www.cnblogs.com/beijingstruggle/p/5885137.html
    配合这个链接方便理解其中的定义.
  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
  • 插入排序,并删除其中重复的数字
    5,3,10,15,12,20,10,8,13,18
    关于插入排序,我之前有一个理解错误的地方,可能是网上代码的理解错误.
    在需要插入的数据对其前面有序数据的大小判定后,不是交换数据.而是将前一个的数据赋值给当前需要插入的数据.然后往前循环,不断将有序部分比该数据大的数据往后移动一位,当前循环结束后将该值插入到判定结束时的位置.
    //插入排序
    public static void sort(int[] arr, int l) {
        for (int i = 1; i < l; i++) {//设定arr[0]为有序数组,从1位开始循环.
            int temp = arr[i];//将i的值复制出来备用
            int j = i - 1;//将有序数组的最大下标赋值复制出来用于循环
            //并在循环结束后将i的值赋给循环最后j的j+1下标.
            for (; j >= 0 && temp < arr[j]; j--) {
                arr[j + 1] = arr[j];
            }
            arr[j + 1] = temp;
        }
        System.out.println(Arrays.toString(arr));
    }

这里顺便也想重新学习下归并排序.

  • 以下代码的执行结果
    (在父类构造器中引用它的两个方法,在子类构造器中引用它实现的两个方法).
    主函数中创建一个子类对象.
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);
    }
}

输出结果:
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
这里父类构造器调用到子类call()方法后,SNAME变量是null,是因为父类中并没有这个成员变量.

  • 1G的文件,每行一个词,每个词最多16个字节,内存为1M,返回出现频率最高的100个词.
  • 关于switch 的default的执行情况。
  • 以下这两段代码的区别?
short s = 1; s = s + 1 ;

short s = 1; s += 1;

前一段会出现incompatible types的错误信息.第二段则不会出现错误.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,504评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,774评论 0 11
  • 转自 虹口海富让100多孩子没学上求曝光转发! 虹口海富幼儿园不诚信!!如果开不出来,为什么要提前招生??为什么开...
    倪佳薇阅读 455评论 0 0
  • 七零一代,洗尽铅华,与相伴终生的他(她)相拥浪漫七夕,余生无憾、无悔。 我小时候,躺在奶奶怀里,听她讲牛郎织女的故...
    林飞鸿阅读 319评论 0 2
  • 也许我们就这样 越走越远
    是他不是我阅读 149评论 0 0