[Java面试一]面试复习大纲.

一、Java基础部分 (搞定所有技术之后才考虑复习的技术点)

    1.数组中的排序问题(笔试或者机试,前者可能性更大)

    2.面向对象的理解

    3.集合相关的问题,比如hashmap跟hashtable的区别。搞清楚每个集合对象的特性就欧了。

    4.多线程启动方式,以及产生死锁的原因和解决办法【多线程问题不是很常问,有精力就复习这块内容】

    5.IO流,了解常见的几个流对象以及基本的流操作即可,被机试的可能性比较小。

 

二、Web基础 (1年工作经验者需要重点复习的技术点)

    1.http协议(定义、常见的请求头以及响应头<功能>、状态码)

    2.tomcat(目录结构<存放的内容以及配置文件里面能做哪些工作>、常见配置;有能力者可以了解一下tomcat的原理<启动加载问题>)

    3.jdbc(编程步骤、与hibernate以及mybatis的区别)

    4.servlet(概念的理解;生命周期、线程安全问题、接口相关类型、体系结构<区别>、request以及response的用途、servletContext对象的功能、编码以及路径问题)

    5.filter(生命周期、常见应用、dofilter里面的参数、应用场景)

    6.jsp(隐式对象、常见标签<指令、动作>、EL以及JSTL)

    7.cookie/session(概念的理解;生命周期,session创建的时期,相关方法的使用)

 

三、五大框架 (1年以上工作经验者需要重点复习的技术点)

    1.struts2(action相关的问题<书写方式[区别]、接受请求参数的方式、相关配置、访问servletAPI的方式>;值栈相 关问题<定义、内部结构、如何获取值栈对象、EL为什么能访问值栈中的数据>;struts2与springMVC的区别;拦截器与过滤器的 区别;struts2工作原理<执行流程>)

    2.hibernate(核心思想要了解;开发流程<加载文件的过程>;查询方式;如何优化;sql与hql的区别;update与 saveOrUpdate的区别;get和load的区别;Java对象三种状态的特征以及转换、核心API、一级缓存和二级缓存、延迟加载)

    3.spring(springIOC和DI;生命周期;Bean注入属性的方式;aop极其相关名词解释;核心类;applicationContext与beanFactory的区别;bean实例化有哪些方式)

   4.springMVC(工作流程;与struts2的区别;乱码问题如何处理;各组件的扩展类型)

    5.mybatis(与jdbc/hibernate的区别;)

 

四、脚本 (此项与第五项均是需要掌握的内容、笔试题居多)

    1.JavaScript核心对象

    2.浏览器BOM对象

    3.文档对象模型DOM

    4.常见事件

    5.Ajax编程(web交互2种方式的对比)

    6.传统Ajax编程的步骤以及从服务器端返回的数据格式(之间的差别)

    7.JSON数据格式的转换操作

    8.jQuery选择器

    9.jQuery的Ajax编程(常见方法)

    10.其余的问题都是一些笔试题,让你直接写javascript代码实现某一功能

 

五、数据库

    数据库这一块几乎都是一些概念性的问答题(存储过程、函数、事务、索引、触发器、视图、游标以及一些优化操作),笔试100%会出现,一般考察的都是多表联合查询

 

六、人事相关 (答案内容比较长,未做文字说明)

    1.自我介绍(注重的是你之前在公司里面工作内容,特别是最近在公司里面做的项目<回答思路参考项目相关问题一>)

    2.简单的介绍一下上一家公司的情况/评价

    3.你为什么来XX工作,怎样看待跳槽?

    4.你对我们公司了解吗?

    5.你如果有幸进入我们公司,有什么规划吗?

    6.你上一家公司的薪资大概是多少?有哪些组成部分?

    7.你有没有投其它公司?如果其它公司也给了offer,你会如何抉择?

    8.你有对象吗?打算什么时候结婚生孩子?

    9.你对薪资待遇有什么要求?能再低一点吗?

    10.你还有什么问题要问我吗?

 

七、项目相关  (重点讲解问题:商品管理、订单、购物车、单点登录等实现思路问题,其余问题参考文档即可)

    1.请介绍一下你最近做的这一个项目吧【思路:项目给谁做的、项目涉及的领域、系统的架构(功能&技术)、系统的用途、系统的部署、使用了哪些比较新颖的技术】

    2.谈谈你对电商行业的了解【思路:电商行业的发展、行业技术特点、行业的一些概念

    3.你这个项目大概有哪些功能,你负责了哪些核心功能?【拥有的功能尽可能说多一点,建议10个左右,自己负责的3个大(如商品管理、订单、购物车),其余的都是其他组员开发的任务】

    4.谈谈xx(具体的,比如商品管理、订单、购物车)模块/功能的实现思路?实现的过程中涉及到了哪些技术,这些技术能介绍下吗?【可参考“02_电商项目面试问题”里面的答案】

    5.你们公司有多少人?有测试吗?有美工吗?整个项目组人员配置是怎么样的?项目开发的流程大概是什么样子的?【检验是否有工作经验的一个问题

    6.这个项目使用了什么构建工具没有?有的话,多模块之间是如何划分的?为什么要这么划分?

    7.在这个项目中是如何设计商品规格的?

    8.这个系统中你是如何实现跨系统调用的? 

    9.在这个项目中,CMS系统是如何设计的,简单的说一下设计思路

    10.在这个项目中,你们主要使用什么样的数据格式来进行数据的传输的?

    11.单点系统的设计思想你了解吗?他在系统架构中的作用是什么?位置如何?

    12.你们这个项目中订单ID是怎么生成的?我们公司最近打算做一个电商项目,如果让你设计这块,你会考虑哪些问题?

    13.各个服务器的时间不统一怎么办?

    14.你们线上部署时什么样的,能画一下吗? 
     15.你们生产环境的服务器有多少台?   

   16.你们使用什么做支付的?如果使用易宝做支付,请求超时了怎么处理?   

   17.你刚才不是说付款成功后易宝会有数据返回吗?如果付款后易宝没有返回,或者返回超时了,但是钱又已经扣了,你怎么办? 
    18.你们怎么做退款功能的,要多长时间才能把钱退回给用户? 
    19.你购物车存cookie里边可以实现不登录就可以使用购物车,那么我现在没有登录把商品存购物车了,然后登录了, 然后我换台电脑并且登录了还能不能看见我购物车的信息?如果看不到怎么做到cookie同步,就是在另外一台电脑上可以看到购物车信息 
    20.如果用户一直向购物车添加商品怎么办?并且他添加一次你查询一次数据库?互联网上用户那么多,这样会对数据库造成很大压力你怎么办?

   21.购物车的设计细节问题

 

八、其他技术问题 (根据自己的精力和实际能力进行选取,主要是为了证明自己的技术能力强、经验足,提升薪资用的)

   1.权限控制(一般情况,在公司必须有一定工作经验的开发者才会被分配该功能模块的开发,这意味着学员在刚开始参加工作的那个项目里面绝对不能写的内容。) 这里一般都会提及shiro技术,在这块需要掌握shiro相关的几个组件以及他们的调用关系,然后就是权限设计的几张数据库表(表之间的关系以及每张表里面的重要字段)

   2.搜索系统(普通的查询会让面试官问及效率问题,那么势必要提到全文检索技术,由于刚学不是很熟,根据自己掌握的情况进行选择)  

    3.浏览器跨域问题(前台系统调用可以使用jsonp来实现浏览器跨域问题,去年有学员花几个小时学习这个,仅凭此技术入职8K。)

    4.webservice(该技术已有替代技术,如果不会,可以不用花时间去复习)

    5.Linux(水太深,只谈自己在项目中就部署的时候用了一下即可)

    6.redis(根据自己的能力看是否需要提及次技术,毕竟购物车的实现方式比较多。)

你可能感兴趣的:(面试技巧)