面试地点是在南京。
总结一下应该是自己没有准备好。
我:一上来面试官让我自我介绍,我简单说了点然后说自己看了点JVM虚拟机和内存管理的知识买了本虚拟机的书准备好好学习一下。
面试官:学了多少了?
我:我画个图给你看下吧。 面试官同意了。
然后我把JVM虚拟机从线程私有到线程共享、JVM虚拟机栈,本地方法栈,程序计数器,Java堆,方法区这几个的作用和什么时候发生OOM什么时候发生SOF等说了下。
面试官听我说完没说什么,然后问了我 一个String a = “xx” 和 String b = new String(“xx”)的区别,我回答说: 在创建a的时候先在Java堆(Java Heap)字符串缓冲池里面寻找看下有没有等于xx的,如果有直接使用它的应用,如果没有就创建,而第二句是new方法,我说直接就创建一个区域xx在把应用给b。然后我说我看过String的源代码,给他说了a==b,和a.equals(b)的区别,还有String中的equals的源码是怎么实现的。。我都说完了。
可能我说的比较快,然后面试官让我解答一体语句结构的算法题。。。我一脸懵逼???,可能是太紧张了,没有一点的思路。。。然后我说我不会,没思路。。
面试官又让我做另一道算法题。。。查找字母路径
但是我当时直接的思路就是用set集合在不停地搜索26个字母,找出相似的就丢进去set,这里说的简直是稀烂。。。面试官都看不下去。。。然后又换一题。。。
接着就问我项目。。。。
全是网络的部分。。。HttpClient的超时设置是怎么做的(这个没回答好,我说了Socket的时间设置)。。。在这个项目中是怎么实现的一大堆网络问题。。。,接着我就说我自己的,比如客户端拿到一个URL去访问网址发生的是什么情况,什么DNS解析找到IP地址,通过ARP协议,通过路由器寻找到路径,然后Http会被封装成报文,加上端口和源IP和MAC。
再问就是IP在哪个层面,MAC是在哪个层的。。。。我他妈脑子一抽说IP在应用。。(网络层),MAC在链路层。。。
最后就是几个Shell的问题。。。。
最后面试官问题又什么想问的
我:评价一下我,还需要往技术栈里面加什么东西。。。
面试官回我:技术不是最主要的。。。重要的是解决问题的思路。。。。
原来是我三道算法题没有解决好。。。。。我晕哦。。。
算法还是真的很重要的!