美文网首页JAVAJava高级架构笔试&&面试经验
Java面经 面试经验 互联网公司面试经验 后端面试经验

Java面经 面试经验 互联网公司面试经验 后端面试经验

作者: Java高级架构 | 来源:发表于2017-08-26 15:51 被阅读461次

    应聘相关

    声明:

    1,程序员相关的哈

    2,万事无定论,比如说,就算你小学毕业,但是java基础却扎实到变态,我相信open的公司还是会给你机会的。

    3,心态很重要,虽然日常的心态不容易控制,面试那俩小时的心态,只要你想,就能控制。

    1,先来一份前辈的劝戒

    1,坚持三年 ,不管在哪干,有一个好的平台,坚持三年以上才能出效果。

    2,如果跳的话,新公司需要稳定,最少过了B轮融资,,五万比一是创业型公司的失败率

    3,不要着急,不要比较为了5000块的工资差价跳,不值得跳,从一万到三万,并且有一个好的平台的话,才值得跳。

    4,长期的看普华挺好的,从平台上讲,除了BAT华为,基本没有更好的

    5,每天要多投些简历,每天投个几十份,别着急,多面面。

    2,再来一份傲骄的互联网公司的不收标准

    符合以下条件的不要

    1,二本以下,特别是学校名XXX学院

    2,应届或者未毕业

    3,在职并且不打算换工作

    4,目标非北京

    5,纯 windows / asp / c# / c sharp / .net / dot net

    6,纯嵌入式

    7,纯移动端 android / iOS

    8,特别底层,比如操作系统内核裁剪

    9,非计算机专业,计算机工作经验在一年以下

    10,最近的项目,空白超过半年,比如现在8月份,项目经历只写到2月

    11,87 年以前,除非背景特别牛

    12,有基础培训经历的,比如达内

    13,硕士学校比本科差的

    说到这,如果小哥你已经不想着跳了。就不用往下看了(你往下看,我写的也不一定能看,哈哈)

    面试的心态很重要

    如果可以的话,**建议以一个和面试官交流的心态去面试**。而且普通面试大部分问答都是有一些套路的。

    一般公司的笔试、面试(以java说)

    **java** java基础必考,线程、集合(list、map、linklist、array,什么无key遍历map啊,链表倒置啊,这几个东西的数据结构和插入查询特性啊,线程创建方式和同步啊)相关必问。最好能说清楚常见的设计模式、要能手写一个单列模式。

    傲骄公司的笔试、面试(不知道什么样的公司骄傲?那算了,如果你不是刚毕业那就转行吧,哈哈)

    总括

    这样的公司,一般算法和数据结构是必考的,操作系统也经常被问。如果是校招的话,笔试中还会有一些排列组合啊,语文表达啊,思维拓展啊(你咋不去高中招?高中刚毕业的时候比较符合需求!!),其次,笔试过了还会有好几轮面试,不管你说你扣过源码,还是跟过还可以的项目,都会被往深里问,再往深里问,再再往深里问!

    比如说:你说你看过springMVC的源码,描述一遍请求处理流程肯定是必需的,然后你说完了,就会被挑一个点,接着往深里问!比如说:你说根据request找到handler,然后用handlerMapping找到对应的handlerAdapter,那么这一步具体是怎么实习的???问的我一脸蒙蔽啊,虽然还知道点,但是这种问题根本不会提前想到,只能现场组织语言。

    再比如说:说说,你在这个项目里做的得意的东西是什么?然后你就说,说完了会问细节,怎么实现的?然后你再说,再说完了就让你优化,然后你墨迹半天终于优化完了,重点来了,让你重构!!如果让你从新设计这个系统,你会有哪些改进的地方??,,想想都心酸 ,,哈哈哈哈。

    下边是一个简单的面试记录

    问:说说你的突出点

    答:java基础扎实(这个慌说的次数多了,现在说起来都没感觉了,哈哈),框架使用熟练(这个慌说了你们也发现不了,所以也没啥感觉),熟悉Tomcat源码,springMVC源码和结构。

    问:如果想要统计springMVC每一个访问时长,放到log文件里,你在哪里做这个统计?为什么?

    答:在preHandle拦截器里记录访问开始的时间,在postHandle里判断是哪个访问,计算访问时间并存储。

    问:在posthandler里计算,并存储是吧。答:是。

    问:为什么?

    答了一个错误答案,然后又是一顿鄙视。,,

    再问:用一个什么变量存?ThreadLocal?还是一个函数内部局部变量,?

    答:线程内,(其实是在猜)。

    问:为什么? 你不要猜,也不用在乎我的反应,无论你答什么我都会问你为什么。

    答:函数内变量可能会不能覆盖整个访问的历程,,一顿鄙视,然后突然反应过来,不对,我说的有问题,外层函数是可以的,那就放在函数内局部变量里,节省资源。

    问:如果我想把计算结果存到log里,在哪里做这个事情?

    答:(悠长的停顿) 在posthandler处理结束,返回请求之前

    问:为什么?

    答:不占用处理请求的资源,(错误答案,已经慌乱)

    问:确定?

    答:不确定,,,停顿,,不对 ,还是会占用资源。

    问:然后呢

    答:(不说话了,,,)(后来想想,这事儿应该另起一个线程去做)

    (鄙视状,,,)

    问:恩,说说Tomcat

    答:(内心:幸亏没问tomcat优化,JVM优化,,不过,说说?说啥啊?难道说说这个干啥用的?还是说说哪个公司出的?说这些会不会直接赶人啊,,,就这样过了最少一分钟,哈哈)然后我就说了下tomcat的结构,和启动过程。

    接着问:Tomcat和里面的Servlet是一个进程还是多个进程,

    答:一个进程内

    一顿鄙视,再问:为什么,,,??

    答:因为我觉得进程是分配资源的基本单位,一般来讲,一个应用就是一个进程。

    问:你确定?

    (内心:大爷的,估计已经挂了,那我还怕个球,,,于是乎,坐直,平视,语气和神态突然就平静了)

    答:确定。

    问:你大学什么专业?学过操作系统吗?

    答:计算机科学与技术,当然学过,我清楚的记得这一点,进程是分配资源的基本单位,不过,可能太久了,记不清了(其实内心是:你长的美,你说的都对)。

    问:ok,一个应用可以启多个进程吗?

    答:不可以

    问:(鄙视状)确定?

    答:(平静状)不太确定

    问:呵呵

    答:麻烦您给讲讲吧,我不太懂。

    问:一个应用当然是可以启多个线程的,更何况还有跨应用的线程调用,资源也是可以动态分配的,,,(当时没听太懂,也记不清了。)。末了来一句,难道你就没打开过你的资源管理器看过吗?

    答:当然看过,不过都是卡了才看,看哪个程序占用太高,给结束了。(内心:看过,但是跟这个问题有毛关系吗??)

    上边是俩个长问题,还有一些其他的,例如:

    问:你觉得要做一个厉害的程序员应该具备哪些特点?

    这个就是一些,FQ啊,工具啊,总结啊,交流啊什么的;比如说,善用google,要至少对一个跨平台的工具很了解,善于学习最新的技术,善于掌握有力的工具,多逛各大社区,善于总结。(我就随便一写,找工作的话,要提前准备类似问题。)

    问:我看你学了这么多东西,但是好像没有认真的去思考过为什么,你有没有想过当你记忆达到一个上限时你还能学什么?你还能干什么?

    这个当然是要反驳的,我说我当然有思考,然后问你思考的啥,然后答当时就想知道Tomcat到springMVC的衔接是怎么衔接的,然后被鄙视:那你直接打几个断点调试一下不完了吗,java的调试不是很强吗?(貌似这个他也不太确定。而我也不知道断点打到哪去,更不用提怎么调试,哈哈)。

    问:我看你这写的有一个了解分布式处理,分布式处理是什么?我怎么没听过。(这个就是一个概念问题,不重要。)

    如有错误欢迎指正,暂时就这样吧,最近略忙,后边可能会改。

    ----名白

    转载注明出处:http://www.cnblogs.com/mingbai/p/2017SummerInterview.html

    相关文章

      网友评论

      • cd13856c86e2:4,长期的看普华挺好的,从平台上讲,除了BAT华为,基本没有更好的

        还有美团,网易等公司
      • 漫步清风_f0a8:你问题一开始就没答好,导致面试的方向朝着越来越不熟悉的地方发展,越来越乱了。
        像是一些互联网公司的问题,都比较装B。
        当然如果你技术够好,可以和其一起装B,还是很快乐的,但是这次明显没有。
        “如果想要统计SpringMVC每一个访问时长,放到log文件里,你在哪里做这个统计?为什么?”应该就是个铺垫的问题,看看你对框架的理解及自己的想法,本身甚至是个发散的问题,因为记录访问时间甚至都不用写在程序里,后期调试都行(Btrace)。其实记录访问时长本身也会有性能损耗,面试官也想往这方面问,可惜你没到这一问就没戏了。特别快的访问请求之间需要用什么类型的数据记录(long),记录纳秒还是微妙,这些都可以是问题。同时jdk记录时间相减如果特别快,值可能是负数的(自己去查)。这本身还会引出问题,什么情况下的请求才记录时间,这是对系统的一个理解问题,还可以延伸到实际场景中。
        进程线程更是基础了,你这个问题甚至都没有开始,你就回答蒙了,无法进行下去了,如进程之间的通讯,页面调度算法,内存页的抖动,多线程,等等。
        楼主前面说了那么多互联网的面试门槛,其实是给自己找借口吧?互联网有门槛不假,但是硬实力到了,找个靠谱的内推,还是有希望的。
        754c54f0ba62:大神啊,学多久才能到你这种程度呢?
        350ee6bfb3a3: @漫步清风_f0a8 大神?

      本文标题:Java面经 面试经验 互联网公司面试经验 后端面试经验

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