温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java面试中的坑有哪些

发布时间:2022-01-05 14:56:03 来源:亿速云 阅读:147 作者:iii 栏目:大数据

本篇内容介绍了“java面试中的坑有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

NO1.大家看看这道题输出应该是啥?是否是三个5呢?

java面试中的坑有哪些

解答:结果是输出5,5,5.这个题考察面试者是否了解类加载机制在处理类内部类时的处理方式,虚拟机当加载静态内部类时如果是确定的属性值时,虚拟机会直接将值存放到元存储中(静态方法区),其他未确定值需要在运行时动态计算,由虚拟机分配地址和值。如果设置的值不是static,那么不能直接访问,因为此时值属于对象而不是类。

NO2.看看这道题的输出结果是多少?是100还是99?期待大家参与,下期给出答案。

java面试中的坑有哪些

解答:看了大家的回复结果,有几位小伙伴回答是正确的,输出结果是0.因为赋值运算在自增运算之前已经完成了。 在这里JVM里面有两个存储区,一个是暂存区(以下称为堆栈),另一个是变量区。j=j++是先将j的值0存入堆栈中,然后对变量区中j自加1,这时j的值确实是1,但随后将堆栈中的值赋给变量区的j,所以最后j=0; 而j=++j,是先对变量区中的j加1,再将变量区中的j值(1)存入堆栈,最后将堆栈中的值赋给自变量区的j,所以j=1;

NO3.考察一下你对数组和列表转换的问题,下面的结果输出几呢?

java面试中的坑有哪些

解答:这道题答案是1,你的答案对不对呢?此题考察基本类型数组和引用类型数组,基本数据类型数组在转换为列表时,如果直接传递数组,基本类型数组将被视为一个对象而不会被解析成数组,如果直接传递参数将能正常解析。希望大家看题看仔细。

NO4.此题考察大家对集合的equals的理解,下面程序输出什么?

java面试中的坑有哪些

解答:此题答案输出true.是不是很意外!我也觉得意外呢,两个不同的类型竟然相同,简直是颠覆了我的知识观,其实两个类型都重写了equals方法,比较了内容和元素长度,并未对类型进行首要比对。大家看到两个类型的equals方法就明白为啥相等了。

NO5.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String上?

解答:此题主要考察我们是否关注JDK每个升级版本带来的变化,结果是支持byte,1.7(含)以后支持string,但是很遗憾不支持long。

NO6.至少说出三种如何取得从 1970 年 1 月 1 日 0 时 0 分 0 秒到现在的毫秒数?

此题据说难倒了很多工作4年以上的码农!好害怕。坦白说我自己也就知道下面一种,虽然我也是工作了很多年的老鸟....... 面试者:System.currentTimeMillis()。
面试官:亲友团来把答案补上来,这个就是[优必选]面试的一道题,想去智能机器人的看准了。

解答:

  1. System.currentTimeMillis()。

  2. new Date().getTime() 。

  3. Calendar.getInstance().getTimeInMillis()。

NO7.面试官:请说出三种获取java类字节码的方法?

面试者:Class.class,object.getClass(),除此之外没有了吧?! 面试官:你可以想想JDBC知识,也许会帮你想起来。 面试者:没有了......

解答:其实还有一种是通过反射来实现,如图所示

java面试中的坑有哪些

NO8.对JVM也有一些了解了,能简单说下堆(heap)和栈(stack)的区别么?

java面试中的坑有哪些

解答:考察面试者对JVM中两个重要的存储单元的理解,因为篇幅有限,我就不一一描述, 大家可以很简单搜索到答案的。这个地方一般面试官还会问到常量存到哪里,对象存储哪里,类属性存哪里等等。 可以看这篇文章:

https://blog.csdn.net/jasonwang18/article/details/70578647。

NO9. 我看你后端技术还可以,了解前端么?能跟我聊聊HTTP/1.1 与 HTTP/1.0 的区别?

java面试中的坑有哪些

解答:如图所示

java面试中的坑有哪些

NO10.恩,回答的还不错。讲一下大家都听过但不一定能讲的明白的POST方法和GET方法区别?

面试者:

  • POST将请求参数隐藏进行传递,而GET会将参数拼接到请求地址后面传递;

  • POST相对比较安全而GET因为暴露参数容易被篡改;

  • 根据HTTP传输协议两者对参数长度有不同的要求;

面试官:可以再多说一些,点基本讲到了。

解答:其实回答的点基本是回答到了,其实两者在与服务端发生交互时有所不同,POST方法会请求服务端两次,第一次先发送头部进行确认,服务端返回成功后再次发送数据,而GET只需要请求服务端一次。同时强调一下GET方法中http协议并未做参数长度限制,只是不同浏览器和服务端做了限制而已。

“java面试中的坑有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI