月薪2万的程序员面试问什么?

2017-09-01  本文已影响0人  码农那些事

注:本文首发于今日头条“码农那些事”。

作为一名合格的码农,不能一直沉浸在忙碌的工作中,除了不断提高自己的技术水平之外,也需要定期出去参加一些面试。既可以了解下自己的技术能力到底是个什么水平了,也能对当前市场的薪水价位做到心中有数。

本人前段时间投了几家公司,其中包括唯品会,因为投的是Java开发,因此会有一些比较偏Java方面的问题。由于是社招岗位,价位一般就是看能力了,基本上只要能够通过本次面试,月薪2万是少不了的。本头条号会不定期分享程序员的面试经验,以及程序员需要掌握的技术干货,喜欢就关注我吧~

面试总共半小时,但问了不少问题,记录如下。

首先是自我介绍,然后面试官根据我简历中写的项目挑了一个让我大概说一下。关于项目这块,其实都是有套路的,你只需要准备好三个方面:项目背景是什么,其中的难点是什么,怎么解决这个难点的。

然后就开始面各种技术问题。

synchronize关键字的作用是什么?

答:简单的说,作用是为了进行线程间的同步。每个用synchronized关键字声明的方法都是临界区。在Java中,同一个对象的临界区,在同一时间只允许一个线程访问。

被synchronize修饰的哪些方法之间会被同步?

答:同一个对象的非static的synchronized方法之间、static的synchronized方法之间会进行同步;

同一个对象的static的synchronized方法和非static的synchronized方法之间是否会被同步,为什么?

答:不会。因为它们获取的不是同一个监视器,一个是类的对象,一个是类.class。

valotile关键字的作用是什么?什么情况下会使用这个关键字?

答:简单的说,作用是保证变量的可见性。保证一个线程对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。在多线程环境下,为了确保不同线程之间对共享变量的可见性时使用。

ArrayList是不是线程安全的?

答:不是。

那和它功能类似的线程安全版本是什么?它的实现原理是什么,为什么能做到线程安全?

答:CopyOnWriteArrayList。

ConcurrentHash在JDK 1.7和JDK 1.8中的实现有什么区别

异步和回调的概念

reactor和proactor模式的区别是什么?

NIO2的底层实现,Channel的作用

Thrift框架了解吗,说下RPC框架大概的实现原理

dubbo了解吗,注册中心如何实现?

工作中使用过哪些常用的开源类库

由于投的是大数据相关的一个部门,因此也问了一些别的如:

redis集群怎么做分片的

一致性hash的原理,虚拟节点作用

kafka了解吗

hive执行流程

hive优化相关

总体来说,涉及的面还是很广泛的,难度不小。 如果你回答不了这些问题,也不要灰心,毕竟是月薪2万的岗位,不是那么容易就能成功的。

本头条号会不定期分享程序员的面试经验,以及程序员需要掌握的技术干货,喜欢就关注我吧~

完。

上一篇下一篇

猜你喜欢

热点阅读