粤科软件2015年4月份被阿里巴巴以8.3亿收购了,阿里打算扩大粤科软件的开发团队,听说目前有四五十人的开发团队,未来要扩展到一百人。

       上周就收到猎头的电话,要我好好准备,猎头还提醒我阿里那边可能会问到的题目,比如JAVA虚拟机、Spring源码,呵呵,感觉这个猎头真好,而且他还提醒我说之前几个候选人因为基础不过关被淘汰了,叫我周末好好准备。呵呵,周末看了一个有关JAVA虚拟机的书《深入理解Java虚拟机++JVM高级特性与最佳实践》,等待今天晚上阿里那边员工的电话面试。

        下面列出今晚电话面试的主要题目,今晚答得让我不太满意,准备得不够充分,有点遗憾,估计凶多吉少。

 

1、你现在在做啥系统?

简单介绍了本人现在所做的一个B2B平台使用的技术情况,包括JQuery、Freemarker、SpringMVC、 Spring Security、MyBatis、MySQL、Redis、RabbitMQ、Nginx、Zookeeper、Dubbo、CAS等。

2、熟悉分布式缓存框架吗?Redis集群的方式是什么?Redis的数据类型有啥?

(1)  使用过Redis

(2)  Redis的数据类型有String、Set、List、Hash

(3)  Redis的集群方式当时没答出来,其实就是主从集群。

主从、Redis Cluster(redis3.0后支持)、Redis Sharding

3、HashMap、HashTable、ConcurrentHashMap的区别?

(1)  HashMap不是线程安全的,键值可以为空

(2)  HashTable是线程安全的,键值不可以为空

(3)  ConcurrentHashMap是线程安全的,相当于将HashMap拆分成多个(默认16个)个HashTable,ConcurrentHashMap的并发性能要远远高于HashTable.

4、你了解JAVA的内存模型吗?

JAVA的内在模型分成主内存和工作内存,主内存主要存放全局变量,是线程共享的;工作内存主要存放局数据变量,是线程独享的。如果线程需要访问到全局变量,则会将主内存的全局变量拷贝一份到工作内存中,线程直接访问工作内存中的变量拷贝,而不会直接访问全局变量。线程若需要修改全局变量,则会先修改工作内存中的变量拷贝,再同步到主内存中的全局变量中。

5、你所做的系统有什么技术是你觉得难做的?

(1)  单点登陆CAS

(2)  跨域问题

(3)  session共享

6、你所做的系统中你做的最重要的是什么?

(1) 单点登陆CAS

       然后讲解了CAS的原理。

7、你了解JVM的堆分区结构吗?

      JVM中的堆分成年轻代和年老代。

年轻代主要存放new出来的实例和数组,年老代主要存放类的变量和静态数据。

年轻代中的数据经过若干次垃圾回收后(默认是15次),如果还存在年轻代中,则会转移到年老代中。如果年轻代中大对象的比例超过40%,也会转移到年老代中。

8、你有什么想要问的吗?

(1)  项目中的开发人数

目前四五十人,未来会扩展到一百人.

 

 想要成为一名JAVA大牛,哥还有很长的路要走,路漫漫修远兮,吾将上下而求索!

 

哥一定要在一年内,实现月薪达到20K的目标!

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐