java面试技巧_Java面试必看面试技巧
 
java面试必备小技巧
  一.笔试
  一般是笔试,笔试这个环节是很容易,几张试卷,一共也就十几道题。一般由5至10个选择题+2至5个论述题+1至2个编程题组成。
  平静心态--浏览所有题目--开答。答题的时候,要先把自己会的快速的答上来,选择题自然不多说了,论述题根据自己的理解大致说明一下,多少会给你自己加分的。
  编程题其实也不难,出现几率最大的是写一个关于某某设计模式的例子,而设计模式的编码例子,出现最多的是单例模式、工厂模式和代理模式。
  有时候也会有一些算法的编码,一般是排序算法的编码实现。还有的笔试题,会有一些程序题,就是看程序,然后自己写出运行结果,这样的问题考察的是对java基础知识的掌握,所以,有坚固的基础是很重要滴!
  二.面试
  开始会问些技术性的问题,武汉中软国际Java培训总结出以下:
  Struts1原理和Struts2原理以及区别和联系,在什么项目中用过,有什么体会;
  spring的原理aop和ioc机制,如何使用,在哪个项目用到过?有什么体会;简要说明一下StrutsMVC和SpringMVC;servlet的原理,生命周期;socket原理以及使用方式;Linux常用命令,shell编程介绍;java常用算法;多线程、线程池、线程锁等等;二叉树、java数据结构;数据库mysql、Oracle的优缺点以及使用方法和sql语句;问的多的是如果模拟分页查询和多表查询;Java垃圾回收机制;敏捷开发的简要说明,是否了解;OOA/OOD/OOP的含义;java加密与解密;java网络通信、http协议要素;是否熟悉设计模式?简要说一下自己所了解或者使用过的开发模式有哪些,在哪些场景中使用。
  三.项目经验的问题
  简要说一下你自己做过的自认为很不错的项目,你在项目中的职责,是否能够胜任之前的任务安排,在项目中遇到的问题,你是怎么解决的(一般这样的问题,可以说是自己解决,但是要讲明解决过程,一定要突出解决思路的灵活。也可以回答与同事讨论解决,这样可以让面试官觉察到自己善于利用团队资源,会给自己的团队意识加分)。
  四.关于个人对团队的看法以及个人的职业规划
  你怎么看待个人与团队,个人能力与团队协作的联系。在团队合作中,最重要的是什么?如果团队成员对于某个问题出现意见分歧,应该如何解决?当对于上级有不满的时候,应该怎么解决?团队的发展如何与个人的规划出现分歧,如何应对?如何快速融入新的团队,结交新的同事?个人的职业规划和职业目标,例如近两年的目标,近五年的规划。如何看待企业文化,如何理解。
  面试前如果准备的不是很充分,还有很多没有来得及试验的,先放放,武汉中软国际Java培训建议可以网上搜集一些经典的面试题,临时背背,或者再去面试的路上看两眼,说不定哪一眼就蒙上了,还可以起到缓解紧张的作用。当然想要拿到高薪是要付出努力地。
如何应对Java面试
  1.抽象:
  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
  2.继承:
  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
  3.封装:
  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于
java重载这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
  4. 多态性:
  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
  5、String是最基本的数据类型吗?
  基本数据类型包括byte、int、char、long、float、double、boolean和short。
  java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
  6、int 和 Integer 有什么区别
  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,
Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
  原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
  7、String 和StringBuffer的区别
  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。
  8、运行时异常与一般异常有何异同?
  异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可
能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
  9、说出Servlet的生命周期,并说出Servlet和CGI的区别。
  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
  10、说出ArrayList,Vector, LinkedList的存储性能和特性
  ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
  11、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。
  EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。
  对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。