美文网首页
2017面试遇到的问题

2017面试遇到的问题

作者: qezhhnjy | 来源:发表于2018-11-21 19:34 被阅读0次
  • 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的错误信息.第二段则不会出现错误.

相关文章

  • 2017面试遇到的问题

    MySQL实现多表更新UPDATE a SET a.name = b.name from a,b where a....

  • 面试遇到的问题整理

    面试问题: 本次时间:2017-1-6 前言:面试都会遇到各种各样的人和各种各样的问题,以下是总结遇到的问题的。大...

  • 面试遇到的问题

    201906201.单例模式 https://segmentfault.com/a/119000000435896...

  • 面试遇到的问题

    1.分布式session怎么验证一致 2.什么情况下会产生死锁怎么解决 数据结构 3.线程有哪几种运行状态下可以调...

  • 面试遇到的问题

    2019 web 前端面试总结(内附面经) js事件循环(EventLoop) 浏览器缓存 BFC js基本类型 ...

  • 面试遇到的问题

    1.Sikuli和Selenium有什么区别? üSelenium的准确度更高,而sikuli对图片的要求很高; ...

  • iOS程序员面试,绝对会遇到这些问题!

    iOS程序员面试,绝对会遇到这些问题! iOS程序员面试,绝对会遇到这些问题!

  • 面试遇到的问题(二)

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数。 参考牛客网-《剑指offer_编程题...

  • 面试遇到的问题(三)

    介绍一下一次网络请求的过程 参考:一次完整的Http请求过程TCP 三次握手HTTP 协议 简单理解: 域名解析 ...

  • 面试遇到的问题(四)

    什么是微服务 参考 微服务概念微服务的优势和不足 概念 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服...

网友评论

      本文标题:2017面试遇到的问题

      本文链接:https://www.haomeiwen.com/subject/hpivbxtx.html