Java面试中有哪些陷阱

Java面试中有哪些陷阱,第1张

Java开发求职,Java程序员面试中的常见陷阱。罗了一些网络上以及我和身边大牛们去面试的时候曾经踩过的一些坑,分享给大家,在面试的时候提高面试成功率。

很多小伙伴去面试的时候应该都经历过这样的情况“面试官问的我都知道可就是回答不上来,明明在IDE中几分钟就可以写出来的代码可是一放在考卷上就不会了”。

其实面试并没有什么道理可讲,很少会有公司去面试的时候给你一个IDE工具让你现场编码,基本都是面试官会当场问,或者是笔试等等。

有的同学可能认为如果对于先进的框架掌握了那面试基本就十拿九稳了,其实不然一个老道的面试官大多不会问你Hibernate、Struts等框架底层实现,只歼腔磨是要求你会用就行。而给你挖的最多的坑还是对于基础的掌握。

我搜罗了一些网络上以及我和身边大牛们去面试的时候曾经踩过的一些坑,希望可以对大家面试有一点点帮助。

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主要用于控制逻辑。

1.应该是类厅举型不匹配

true/false是boolean类型,是基础数据类型,null一般指空对象,所漏伏锋以报错

再给你举个例子:

int a = null (报错)

Integer a = null(正确)

2.换返晌成这样是可以的

fun(i == 0 ? Boolean.TRUE : (i == 1 ? Boolean.FALSE : null))

其中Boolean.TRUE/Boolean.FALSE是对象

3.看看源代码

public static final Boolean FALSE = new Boolean(false)

public static final Boolean TRUE = new Boolean(true)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12407957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存