武汉中科通达软件Java工程师初试总结复盘

     预约的视频面试时间是中午12点,不过面试官并没有准时到,拖了大概56分钟吧。Zoom会议上写着xxxJava工程师初试。 

  面试官戴着口罩,并没有露脸,看起来与我年龄相仿,感觉很年轻。 

  在我按着既有的思路进行自我介绍之后,他直接就开始对我进行技术面试了,直接就开始提问Java相关基础知识了。和我上次的面试体验不同,上次最初主要是针对项目进行了提问。 

  所以我有点措手不及,其实从zoom上的“初试”和面试官的年龄、神态可以推测出来这次只是进行一个简单的Java基础技能的考核。 

  反观在自我介绍的时候,我对自己的项目经历和工作经历介绍的有点太多了,讲了大概有10多分钟吧。这个在后面要调整一下,最初的自我介绍要简单一点儿,后面如果问到了,可以细说。 

  这样可以把时间都留在技术交流上,我也不用口干舌燥了。 

  下面是对一些面试题的回顾与总结,有一些答的不好甚至没有回答出来。不过这些问题都囊括在了一些比较经典的面试题集里面。

 

  问: 项目中用到的jdk是什么版本,在项目中有没有用过jdk1.8Jdk1.8有什么新特性? 

   答:

增加了default关键字,通过default修饰,可以在接口中定义具体的方法实现。

1.8中增加了lambda表达式,lambda就是匿名的内部类。

增加了函数式接口。

方法与构造函数引用。可以通过ClassName::methodName来调用类的方法。

局部变量限制。

Date Api更新。

新增了流的使用,类似于一个高级版本的Iterator

1.8中对hashmap进行了优化,底层使用数组+链表+红黑树实现。

Objects方法新特性。 

   参考文章:https://www.cnblogs.com/junrong624/p/11596191.html

 

  问:了解微服务吗?能说一下Spring Cloud组件有哪些吗? 

   答:之前其实对这个有过了解,也看过相关文章,不过面试的时候却一点儿也想不起来了,尴尬。面试官问我脑海中没有这个组件的一幅图吗?其实还真没有,但是这提醒了我通过图来记忆不失为一个好方法。

 

 

武汉中科通达软件Java工程师初试总结复盘

 

 

 

   参考文章:https://blog.csdn.net/xunjiushi9717/article/details/91988479

 

  问:讲讲Java中的线程。 

   答:其实这个问题问的比较大,比较宽泛,所以我一时还不知道从哪儿回答。所以我们先看后面的一些问题,其实他们也和线程相关。

   

武汉中科通达软件Java工程师初试总结复盘

 

  可以从以上几个方面去讲,但是也可以向面试官进一步询问,要求其提出更具体一点儿的问题,这样更好。

 

  问:讲讲volatile关键字? 

  答:其实这是一个比较经典的问题,当初也看过相应文章,只回答了两点,一个是被此关键字修饰的变量,具备可见性,即可以在线程间共享,而且可以禁止指令重排序。 

  面试官进一步问到为什么可以在线程间共享时,没有回答上来。其实很简单,是因为被volatile关键字修饰后,变量会被写入主内存,其他线程访问时直接从主内存中取,不从本地内存中取,所以可以共享。 

  至于为什么可以禁止指令重排序,是因为被volatile修饰的变量,赋值后会建立一个内存屏障。 

  参考文章:https://www.cnblogs.com/zhengbin/p/5654805.html

 

  问:线程的实现方式有哪几种? 

  答:这个也算是比较经典的问题了。最基础的有两种,继承Thread类,重写run方法; 实现Runnable接口,重写run方法。第三种使用线程池。 

  但是这里问到了线程池的参数大小是如何设置,这个没回答上来。 

  参考文章:https://blog.csdn.net/oqkdws/article/details/80526370 

 

  问:Java中的锁是否有了解?能否讲一下。Synchronized与lock的区别? 

  答:前面的问题其实也问的比较大。 

Synchronized是一个关键字,可以修饰方法,代码块。Lock是一个类。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssddf.html