JAVA面试中遇到的那些坑,80%的人都种过招!

面试,是很多学完Java开发的人不得不面对的问题。小编经常听到学员抱怨,明明觉得自己学的不错,为什么到了面试的时候就凉凉了?为什么有的面试官会一直问业务层面的问题,让人措手不及?

其实,我们在学习Java知识的同时,还应该关注Java面试技巧。下面,小编就给大家搜集了几个在Java面试中最容易踩到的坑,希望对大家有所帮助。

Java基础知识很重要

对于Java基础知识的熟练掌握,是很多大公司非常重视的基本能力,但是总有同学沉迷高深的技术,而忽视这一点。如果你的底层知识扎实,有一套完整的知识框架,会为你今后的所有面试打下牢固的基础。

要清晰了解面试官的意图,不可答非所问

针对Java不同的工作职位要求,面试考察的能力侧重点是不同的。如果你是校招面试,面试官会考察你的基础知识、逻辑思维,更多以培养潜力的考察为主;

如果你是初级Java工程师,你就需要更多地关注知识的广度与基础知识的应用;如果你是中高级或资深Java工程师,面试官对你的考察,就是以综合的能力考查为主了。你更需要深入理解基本原理,能对各种知识灵活运用。

对Java应用能力考察点和加分项有所认知

不同类型的公司,对Java工程师的能力需求是不一样的。对于社交门户类,一般对Java工程师的考察点是大规模高并发场景的应用与构建能力;O2O行业则会侧重于对面试者综合能力的考察;而互联网金融行业则更青睐于那些思维逻辑缜密,对高可用安全领域有丰富经验的Java工程师候选人。

说完了大方向,给大家上一点干货,以下几个问题是在面试时十分容易被提到的、

Java程序员面试常见陷阱一、final finally finalize的区别

1、final修饰符,Java中的关键字,用final修饰变量的必须在声明时就给定初始值,而且不允许被修改;用final修饰方法不允许被重写;用final修饰的类不允许被继承。

2、finally语句块是异常处理结构的最后执行部分,完整的异常处理语句一定要包含finally语句,无论程序中有无异常发生,并且无论之间的try-catch是否顺利执行完毕,都会执行finally语句。

3、finalize()是Java为类提供的一种特殊方法,垃圾收集器一旦准备好释放无用对象占用的内存会首先调用finalize()方法然后才能真正回收对象的内存,通过finalize()方法就可以在垃圾收集器运行期间进行一些特殊的工作。

Java程序员面试常见陷阱二、HashMap和Hashtable的区别

1、HashMap和Hashtable都实现了Map接口,两者最主要的区别在于Hashtable是线程安全,而HashMap则是非线程安全。

2、HashMap可以使用null作为key,而Hashtable则不允许null作为key。

3、HashMap是对Map接口的实现,而Hashtable实现了Map接口和Dictionary抽象类。

Java程序员面试常见陷阱三、String 和 StringBuffer 的区别

JAVA 平台提供了两个类:String 和 StringBuffer,它们可以储存和操作字符串,即包含多个 字符的字符数据。这个 String 类提供了数值不可改变的字符串。而这个 StringBuffer 类提供 的字符串进行修改。当你知道字符数据要改变的时候你就可以使用 StringBuffer。典型地你可以使用 StringBuffers 来动态构造字符数据。另外,String 实现了 equals 方法,new String(“abc”).equals(newString(“abc”)的结果为true,而StringBuffer没有实现equals方法, 所以,new StringBuffer(“abc”).equals(newStringBuffer(“abc”)的结果为 false。

Java程序员面试常见陷阱四、Java实现多态的机制是什么

靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运 行的那个对象的方法,而不是引用变量的类型中定义的方法。

Java程序员面试常见陷阱五、说出数据连接池的工作机制是什么

J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端 程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空

闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池 连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。 实现方式,返回的 Connection 是原始 Connection 的代理,代理 Connection 的 close 方法 不是真正关连接,而是把它代理的 Connection 对象还回到连接池中。

Java程序员面试常见陷阱六、JSP和Servlet的区别

JSP 是 Servlet技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP 编译后是"类 servlet"。

Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以 组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet主要用于控制逻辑。

文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

(0)

相关推荐