去哪儿超详细面经

去哪儿
一面
  1. 问了我的项目
    我就大致介绍了一下我的项目背景,然后项目有哪些模块,我在里面负责什么模块,以及我的这个模块是如何实现的;
  2. 项目亮点
    参考我的这篇文章,我自己把在面试中取到的场景题以及在书上看到的jvm调优的实例加到了我的项目里面,虽然我的项目并没有用到这些。
  3. 也没考察我知识点,直接给出除了一道题目是英文的编程题目,题目大概是这样子:对于255.0.0.111/29这个ip地址,前29位是固定不变的,把后面的三位按照000 001 010 011 100 101 110 111 这样的格式同时加上前29位的二进制表示输出。
    代码:
    我自己手写了一遍,当时手写写了个大体思路,面试官也没深究,下面的代码是在刚写的,发现这题要完全写对还是挺不好写的。
    1public class Main {
    2    public static void main(String[] args) {
    3        String str = “255.0.0.111/29”;
    4        String [] strList = str.split(“/”);
    5        String ip = strList[0];
    6        System.out.println(ip);
    7        int number = Integer.parseInt(strList[1]);
    8        String [] ipList = ip.split(“\.”);
    9        String resultBegin = “”;
    10        int number2 = 32 – number;
    11        for(int i=0;i<ipList.length;i++)
    12        {
    13            String temp = Integer.toBinaryString(Integer.parseInt(ipList[i]));
    14            if(temp.length() != 8)
    15            {
    16                String needzero = “”;
    17                for(int j=0;j<8-temp.length();j++)
    18                    needzero += “0”;
    19                temp = needzero + temp;
    20            }
    21            if(i != ipList.length-1)
    22            {
    23                resultBegin += temp + ” “;//29 包含的 255转换后是8位 0是8位 前三个3*8 24位
    24            }else {
    25                resultBegin += temp.substring(0,8-number2);//5位 截取最后的111转换后的二进制表示的前几位;
    26            }
    27        }
    28        int beginLength = resultBegin.length();
    29        int lastLength = 32 – number;
    30        for(int i = 0;i<(int)Math.pow(2,number2);i++)
    31        {
    32            String last = Integer.toBinaryString(i);
    33            if(last.length() != lastLength)
    34            {
    35                String needzero = “”;
    36                for(int j=0;j<lastLength-last.length();j++)
    37                    needzero += “0”;
    38                last  = needzero + last;
    39            }
    40            System.out.println(resultBegin+last);
    41        }
    42    }
    43}
    输出

    111111111 00000000 00000000 01101000
    211111111 00000000 00000000 01101001
    311111111 00000000 00000000 01101010
    411111111 00000000 00000000 01101011
    511111111 00000000 00000000 01101100
    611111111 00000000 00000000 01101101
    711111111 00000000 00000000 01101110
    811111111 00000000 00000000 01101111

  4. 问了二分查找的思想
    就是简单的二分查找思想就过去了。
  5. 栈和堆的区别
    我说了栈先进后出,堆说了最大堆和最小堆的特点,以及堆如何插入,删除,这些。
  6. 问我有什么想问的?
    我说如何评价我的面试表现,其实想知道能不能进入下一面,以及自己有哪方面欠缺,让面试官指点一下。
二面
  1. 聊项目
    就是又和一面一样介绍了项目背景,项目难点这些。
  2. 问我爬虫中遇到javascript动态加载怎么办?
    我说了可以去用谷歌浏览器右键检查看这段js请求了哪些数据,然后去构造同样的请求即可;还说了一种就是使用webdriver模拟浏览器的操作,等js完全加载出来,然后就可以了。
  3. 项目中,我的项目亮点是虚拟机内存溢出调参,然后他问我如何确定一个程序需要的最小内存,开放题。
    我说可以去看这个程序中数组大小,变量的个数,以及编译的时候例如对于hashmap这种结构存在字节对齐需要额外计算,就答出了这些,这个问题不是很会,大家有什么好的回答可以评论区留言,互相学习
  4. 问我一面面试官考察的那道手写代码题你觉得主要是考你什么?
    我说考察阅读英文文献,对java语言的熟练度,会不会编程
  5. 问我网络知道吗,问了我计算机网络的七层是啥?
    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
  6. 接着问了,后来合并成4层,为啥合并?
    这个当时瞎说了一通,然后网上百度了一下说是,会话层在大多数应用中很少用到,表示层几乎是空的。在数据链路层与网络层之间有很多的子层插入,每个子层有不同的功能。OSI模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,将它的实现起是困难的。
  7. 问了https如何确保加密传输安全?
    答了ssl的RSA握手协议的原理 第一步,Client给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。第二步,Server确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。第三步,Client确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给Server。第四步,Server使用自己的私钥,获取Client发来的随机数(即Premaster secret)。第五步,Client和Server根据约定的加密方法,使用前面的三个随机数,生成”对话密钥”(session key),用来加密接下来的整个对话过程。
  8. 聊到这里,突然又问我我项目中用到的rsa,des加密的区别
    我说了rsa非对称加密,des对称加密,rsa加密效率低,des加密效率低,rsa用来加密传输密钥,des用来加密传输的大量的文本信息。
  9. 问我项目中为啥这块可以用https解决不用
    我说可以
  10. 接着问我为啥不用
    我说https需要证书,所以是花钱的,学生穷。。。面试官笑了。面试官说有免费的。。。哈哈。然后我说我这里老师要求用rsa des…
  11. 设计模式问了我单例模式的好处
    单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。让我举一个观察者模式的例子,我把《大话数据结构》的例子说了一遍。
  12. 接着问我数据库,问我数据库主键是不是必须设置
    我说,就算不人为的加主键,mysql数据库会默认给数据库加一个主键索引。
  13. 问我主键索引的原理
    我说底层是地址连续存放,使用二分查找
  14. 他其实想问我B+树,然后他说那么其他索引的原理是啥
    我说B+树,然后我说了B+数大致是啥
  15. 问我一个查询很慢怎么办?
    我说了分库分表,加索引,order by,加的索引失效了
  16. 问我索引在哪些情况下失效
    我说了 索引中模糊查询like“%100%”写错了写成了“100%”这种情况下失效。
  17. 他问我这种情况下为啥失效?
    不知道,这个.。。额。。。有知道的欢迎评论区留言。
  18. 考了一个有序有重复数字的数组,找出现的最左的数的下标,[1,2,3,3,3,3,3,5,6,7]就是第一个3出现的位置,我提起笔刚写了两行,他说这个准备过吗,我说准备过,他就不让写了。。。
  19. 最后问了我最近看啥书?
    我说了一些最近看的书,就完事了,让我去等酒店的一个房间等通知,然后刚坐下,就让我去hr面试了。
本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » 去哪儿超详细面经

Leave a Reply