求职一份JAVA相关工作

远光武汉研发中心区块链事业部Java面试总结

面试在约定的时间准时进行,也是采用腾讯会议远程面试的方式。但是这是我第一次遇到面试官未打开摄像头的情况,后面经过沟通,双方都打开摄像头进行交流。 

之前了解这个岗位主要是区块链相关的Java开发,所以事先对区块链相关知识做了准备,面试的时候这方面的知识应该是得到了认可。但是在Java方面却表现的不好。 

以下对面试题进行一下回忆、整理与总结。

 

问:在spring boot框架项目启动的过程中,如何去初始化一些变量的值? 

答:通过配置文件,做一些配置去读取,或者spring在启动的时候,即bean的生命周期中,即bean初始化的时候可以做一些设置去处理。

具体的又问是哪个类的哪个方法去处理,这里没有回答上来。这个问题没有get到面试官的点,所以回答的不是很好。与市面上的面试题有差异,超过了准备的范围,由此可以看出面试官还是有水平或者是说特意准备了一下。

 

问:SpringMVC的整个请求流程?

答:这个准备过程中对于这个请求流转的图有一点印象,于是按照印象回答了一下。

 

问:SpringMVC框架中,后台返回一个字符串,怎么在前台中显示出来? 

答:把这个字符串放到request域中,然后前台从request域中取出来。又具体问怎么操作,用哪个方法?回答使用request.setAttribute方法先设置这个值,然后再用request.getAttribute取出这个值。面试官皱了皱眉头,这个问题我也没get到面试官的点,所以感觉也回答的不好。

 

问:在SpringMVC框架中,@requestParameter这个注解有什么用? 

答:来设置参数的。其实这个是映射请求参数,接受参数。这个问题竟然是面试官从我的博客笔记中找的一个来问的,不过博客时2018年写的,年代久远,加之项目中很少写springMVC的注解,所以这里忘了。不过这个还是第一次遇见面试官会去看我的博客,因为简历中都有写自己的博客地址。

 

问:对于多线程了不了解?如何保证线程安全? 

答:一些轻量级的处理,例如synchronized关键字,volatile关键字,其他的可以用Lock类来处理,或者线程池来处理。 

Lock是一个类吗?它是哪个包里面的? 

这里我特别自信回答Lock是一个类,源于之前看的一篇文章里面写它是一个类,用词不严谨害了我啊。Lock其实是一个接口,包名为java.util.concurrent.locks.Lock; 

然后说到了volatile,讲到了它可以禁止指令重排序,然后可以在线程间共享。然后就是问是如何实现这两点的。我也具体回答了。但是面试官还是若有所思的样子,不清楚是他不懂还是我回答的他不满意。 

 

问:数据库中的for update是表级锁还是行级锁? 

答:行级锁。

 

问:单例模式有了解吗?

答:回答了单例的双重校验锁的写法,以及为何要双重校验。然后又问这样一定是单例吗,只会创建一个对象吗?回答大多数情况,应该可以了,这种写法。面试官应该是想挖掘更多的点来考察。

之前在公众号上也看过一篇讲单例的文章,讲的非常好,但是现在回过头去找却找不到了。就是这种层层递进式的讲解,单例一定是单例吗?然后不停的优化写法,如何破坏单例。 

哦,说到这儿找到这篇文章了:

https://mp.weixin.qq.com/s/DXEtpuJLHcbk6g_GctkGnw 

 

总结:这次面试,感觉面试官对于框架层面的细节问题考察比较深,有时会具体到某个类的某个方法,其他方面也在正常的Java面试题范围内。然后对于项目相关的问的比较少,或者前面回答的不好,后面没给机会。抑或这个岗位只是想招一个纯Java开发的人员,能快速上手写代码的人,没考虑其他方面。自己的优势也没有发挥出来。

posted @ 2020-07-28 21:24  wxh_hoho  阅读(185)  评论(0编辑  收藏  举报