初级java工程师面试流程

初中级工程师(1-3年)项目经验不是很丰富,主要是看基础是否扎实,用过的东西是否去深究过,是否有意愿去提高自己。

面试流程大概如下:

  1. 先做简单的自我介绍,自己做过的项目,然后会去问一些项目中的细节,确定是否真正用心做过,也会探究一下技术实现,然后会让他们去思考下是否有些自己觉得可以提高的地方,看看回答的程度;
  2. 然后会问些基础知识
    • java基础(递进式的询问,难度依次递增,如果哪一步短路了,给一次机会,否则短路)
      • 基础用法:==和equals区别、异常体系(常用RuntimeException有哪些)、string和stringbuilder区别、泛型讲解;
      • 集合(List、Set、ArrayList、HashSet、TreeSet、HashMap、TreeMap)、正则表达式;
      • 多线程:static-synchronized和object-synchronized区别、如何创建异步线程、如何等待一个线程结束、线程有哪些状态、线程安全、常用并发组件、sleep和wait的区别、volatile用法、lock接口、锁能够保证哪些特性、sleep和wait区别;
    • servlet规范:
      • servlet和filter区别,servlet生命周期;
      • filter一般用在什么场景,在servlet容器中filter一般是以什么样的形式在执行;
      • jsp九大内置对象;
      • forward和sendRedirect区别;
      • request和session,attribute、session生命周期;一个请求,如何在多个filter之间传递数据;
    • http协议:
      • GET|POST区别;
      • 如何避免缓存;
      • 常用错误代码(302、500、406);
      • 与缓存相关的http-header有哪些;
      • 一个http请求的执行流程、从客户端到服务器会经过什么过程;
      • http1.0与http1.1的区别;
      • cookie与session区别;
      • URL与URI区别;
    • mysql(事务特性、隔离级别、索引、外链接)、数据库连接池作用;
    • spring(常用注解以及相应含义、spring-mvc、spring-aop切面如何使用、spring事务传播机制)、qualifier注解、prototype与singleton区别、bean生命周期、spring-bean是线程安全的吗;
    • 操作系统:进程线程区别、线程有哪些状态;
  3. 算法题(栈、字符串查找、快速排序、二分排序、二分查找、二叉树查找)、数据库sql题(重点是group by);
  4. 应用服务器部署(tomcat日志类型、如何启停、如何部署、如何调试);
  5. linux命令(查日志、判断程序是否启动);
  6. 场景设计:统计PV、过滤器之间传递数据、三个线程同时启动如何顺序执行、

如何判断是否可以通过面试呢?

  • 项目是否用心做过,对一些问题是否有思路,打分标准:
    • 1分:简单的做过,很多东西回答不上来;
    • 2分:做过,能够答出所以然,但是对项目整体缺乏认识,只是集中在自己做过的部分;
    • 3分:对项目的把握性好,有全局认识,能够从整体层面进行分解,知道优化的空间;
  • 基础题目回答成功程度:
    • 1分:只能回答对很小一部分;
    • 2分:能够回答出大部分;
    • 3分:全部答出;
    • 4分:答出来,且有一些更多的认识,比如源码阅读等;
  • 应用服务器部署、linux命令:
    • 1分:答出1-2个;
    • 2分:答出大部分;
    • 3分:答出全部;
  • 如果前面答得不怎么样,直接短路pass掉;(5分是及格线)
  • 算法题:
    • 0分:思路有问题,直接pass;
    • 1分:思路没问题,有细节出错,在指导情况下可以规避;
    • 2分:思路没问题,且bug-free;

你可能感兴趣的:(初级java工程师面试流程)