给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的方式>;<!--书写方式[区别]、接受请求参数的方式、相关配置、访问servletapi的方式--> 值栈相关问题<定义、内部结构、如何获取值栈对象、el为什么能访问值栈中的数据>;<!--定义、内部结构、如何获取值栈对象、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.你为什么来北京工作,怎样看待跳槽? 4.你对我们公司了解吗? 5.你如果有幸进入我们公司,有什么规划吗? 6.你上一家公司的薪资大概是多少?有哪些组成部分? 7.你有没有投其它公司?如果其它公司也给了offer,你会如何抉择? 8.你有对象吗?打算什么时候结婚生孩子? 9.你对薪资待遇有什么要求?能再低一点吗? 10.你还有什么问题要问我吗? 七、项目相关(重点讲解问题:商品管理、订单、购物车、单点登录等实现思路问题,其余问题参考文档即可) 1.请介绍一下你最近做的这一个项目吧【思路:项目给谁做的、项目涉及的领域、系统的架构(功能&技术)、系统的用途、系统的部署、使用了哪些比较新颖的技术】 2.谈谈你对电商行业的了解【思路:电商行业的发展、行业技术特点、行业的一些概念】 3.你这个项目大概有哪些功能,你负责了哪些核心功能?【拥有的功能尽可能说多一点,建议10个左右,自己负责的3个大(如商品管理、订单、购物车),其余的都是其他组员开发的任务】 4.谈谈xx(具体的,比如商品管理、订单、购物车)模块/功能的实现思路?实现的过程中涉及到了哪些技术,这些技术能介绍下吗?【分享的电商项目】 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(根据自己的能力看是否需要提及次技术,毕竟购物车的实现方式比较多。) 成功与失败,就看你能不能找到工作! 扫一扫 关注我们吧~