`
jiq408694711
  • 浏览: 33540 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

不一样的面试(发现自己最大的问题之一)

 
阅读更多

今天被北京XXX公司(著名广告投放公司)鄙视了。面试官是个中年男子,很帅气,虽然面试官人很好,但是还是让我心情不爽。

一进去就说先来个组成原理的题吧: CPU,主存,北桥,南桥,速度不一致,缓存之类的,这个很简单,回答出来了,面试官说了好几个good,还挺满足的。

接下来说做一道操作系统的题吧:我在word里面写了一些文本,点击保存。

(1) 他有没有写到磁盘上?

(2) 如果写了,是一个怎么样的详细过程,如果没写,在哪儿?

回答了磁盘缓存,文件操作会经过一个转换层转换成块IO操作,然后由设备驱动将这些块IO的请求写到缓存,缓存进行调度,然后分别写到磁盘。

如果文件不够大,不会写到磁盘,会先到缓冲区之类的。。。 差不多就这些。看样子面试官不满意我的回答。

接下来说我们做一个网络的题吧: 我在浏览器出入新浪的域名,然后就看到他的主页了,让我解释这个过程:

(1)我说先请求DNS,将域名转换成IP。 面试官说不详细,让我在详细介绍DNS的流程/结构。我就说有什么递归查询了,可能会访问顶级域名服务器啊,他说我说的还是只是其中一个方面。想半天想不出来,然后他说大概会经过:本地缓存查询-》DHCP-》然后才是请求DNS。

(2)接下来我说拿到IP之后会发送一个IP数据包,通过在Internet上面的路由选择到达sina的服务器,然后他会响应这个请求。然后面试官马上就问了,那你说说响应是怎么回来的?我说响应的IP数据包也有目的IP地址啊,经过路由选择到达局域网之后通过MAC地址找到你的主机。他说不完善,然后我有事想了一通想不出来他想知道什么。。。最后他说客户端请求的时候,会生成一个临时端口号,然后响应的数据包回来的时候会送到这个端口,客户端会监听这个端口。大概就是这个意思吧。。。

(3)然后面试官又问我了:你知道一般这个请求会发送多少个IP数据包么?汗。。。 我说看页面的大小吧。。。面试官仍然不满意我的回答,忘了他说什么了。。。

(4)然后又问我,我请求的页面是全部内容都会发过来么? 这个直接被鄙视。我说静态部分应该会全部发过来,动态部分应该要是情况而定(基本是蒙的)。面试官耐心地给我解释,说有一个什么“html树”,每一个节点都会发送各自的请求什么的。。。 不懂,看来得查一查。

这里比较详细地讲解了整个过程:http://zhan.renren.com/seochina?gid=3602888497994264527&checked=true

好吧,我们再来做一个编译原理的题吧(。。。):你说你会java,那么你说一个,从一个java源文件,到在机器上的二进制可执行文件这个过程是怎么样的?

我就说java会有自己平台无关的jvm指令集,首先会将源文件编译成字节码文件,就是这样的指令集表示的,然后会汇编成为依赖于具体的硬件平台的汇编,然后汇编程序就会链接,然后转换成二进制码执行。。。其实我基本上是在凭感觉说。。。 面试官又说我说的太粗糙了。。。汉。。。好几次这样说我了。(说实话,我遇到过好几个人说我对各种计算机领域的只是理解不够深入了。。。看来我平时应该多注意这种细节问题的思考和探知啊)。 然后面试官问我知道语法树么。我马上明白了,原来他是要我回答编译原理方面的细节啊,说实话,什么词法分析,语法分析,语义分析,优化之类的我早忘记了。。。不过面试官还是耐心地给我讲了一下。

完了又问我,你知道为什么要转换成汇编么? 哎,为什么啊,我回答说汇编是依赖于体系结构的最原始的“高级语言”,开始的时候我们不可能直接写二进制代码,就弄了这样好理解的符号化的东西。。。我好想回答的不是他问的,哎,又被鄙视了。

接下来,我们在做一个java的题吧:

try{

int x;

x = 1;

return x;

}catch(Exception e){

x = 2;

}finally{

x = 3;

}

返回什么? 我说肯定不是2,执行return x之前会先执行finally,所以是3。

好吧,错了。面试官又是耐心给我解释,我恍然大悟啊。一开始就没有走对方向,我其实在不确定的情况下应该往底层一点想想,想想x是存在栈中,return x是函数的返回值,是存放在栈中的另一个位置的,而finally的之后修改的是栈中变量x,而与函数返回值无关。。。 哎,处处是底层啊。。。又被鄙视了。

面试官又问我,你对linux安全了解么?啊,这个我还真不了解,赶紧说不了解。。。

面试官又问我,你用过哪些服务器啊?我说tomcat啊,Apache啊,还听过一个叫什么GlassFish的,shit,不知道有没有这么一个服务器,面试官表示没听过。

然后面试官又是耐心给我讲,列了一大堆服务器,大概十几个服务器的名字。

又给我将什么现在服务器因为要处理大量并发请求,趋势就是会设计成“异步”的,而不是“同步”的。

我还是和他扯起来,我说什么可以通过集群,将请求分配到不同服务器,结合动态负载均衡等技术来处理请求,他说即使分布式处理,还是可能会出现单台服务器需要处理大量请求的情况,我表示赞同。然后我又说“异步”的处理方式会影响用户体验啊,响应时间不确定啊,什么的。。。

差不多就这样结束了,面试官尽然来了一句:“你先回去吧,我看如果没有更好的,我在打电话给你。。。”(太直接了,我喜欢。。。)好吧,握个手,走人了!

这次让我更加重视自己的缺点了,平时学习一个东西不够深入,没有强烈的类似的底层细节知识的思考和探知欲望。。。学知识有点急躁。。。。哎,一定要注意。(学习东西一定要深入底层,这里说的底层不是说贴近于硬件的那种底层,而是设计各方面细节的原理性的东西。。。计算机一通百通!)

路还很长啊!

分享到:
评论

相关推荐

    JAVA面试题最全集

    修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被...

    软件测试面试题.docx

    此问题每个人都不一样。我自己的答案如下。 我主要的工作是系统测试和自动化测试,也曾少量涉及性能测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    面试时的Java数据结构与算法.doc

    面试时的Java数据结构与算法 查找... 冒泡排序 冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小 的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。举个栗子,对5,3, 8,6,

    java面试题大全(2012版)

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    c++ 面试题 总结

    C++面试题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...

    java 面试题 总结

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    java面试宝典2012

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    测试人员面试题(为什么要在一个团队中开展软件测试工作?)等

    压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。  界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够...

    Java面试笔试资料大全

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    JAVA面试宝典2010

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    最新Java面试宝典pdf版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2012新版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Mysql数据库不会优化?面试一直尬聊?这篇文章带你解开疑惑

    数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!...

    leetcode100-100dayscodingchallenge:这个repo是为FAANG练习竞争性编码问题和面试问题。#100Days

    leetcode 100 -100 天编码挑战 这是您下次编码面试/技术面试/编码评估/竞争性编程挑战的回购...问题几乎全部取自实际面试问题,来源包括但不限于 geeksforgeeks、leetcode、interviewbit.com、codeforces、codingBlocks

    Java面试宝典2012版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    超级有影响力霸气的Java面试题大全文档

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

Global site tag (gtag.js) - Google Analytics