面试面试储备资料Java技术问答

面试

2018-05-04  本文已影响226人  Java架构师Carl

杭州蚂蚁金服java岗位的电话面试

下面是总结的在电话面试中涉及的一些问题:

1:问:对HashMap的认识?hashmap的初始容量及每次扩容因子?

2:问:HashMap是否是线程安全? 为什么?

3:问:项目中有遇到哪些难点,是怎么克服的?

4:问:简历上项目采用分布式开发,一共使用到了几个系统?

5:问:项目中有用到MQ,主要是实现哪些功能?

6:问:怎样判断mq中的方法成功执行了或者执行失败?

7:怎样保证这两个系统中的数据同步?比如:用户下单后,需要在商品系统那边减库存,如何保证同步?(也就是分布式系统数据一致性)

8:项目中有用到dubbo技术,dubbo的实现原理是什么?

9:zookeeper中都存储到哪些数据?

10:用户管理系统中的数据采用了哪些储存技术?分别储存什么数据?

在分布式系统数据一致性上,面试官反复问我MQ都存储了哪些数据,经过后来查询资料,才知道,很多分布式系统数据一致性都是采用MQ实现的,面试官给了我好几次提示。

回过头来整理电话面试中的相关知识点,感觉很多知识点不用,都慢慢生疏了。面试整体感觉很OK,面试官很和蔼,在问到的不会的知识点中还会偶尔给提示,很感谢这一次面试机会。涉及的知识点在今天,都已经补充到了本地笔记中。

天猫

1.一面

约好了晚上19:00,结果等到了19:30电话才过来,面试官连连说抱歉,说刚刚在开一个比较紧急的会议,然后闲聊了几句,电面氛围也没之前那么紧张了,然后让我自我介绍一下进入正题。巴拉巴拉介绍了一下个人经历,和最近做的事情,面试官对我最近做的一个跨境项目在比较感兴趣,让我详细说一下这个架构设计:其实跟主流的系统架构差不多,在上海有8台机器组成主要集群,在香港有4台机器作为从集群,然后用了亚马逊的S3对境外做CDN加速。

1.系统怎么做负载均衡的?Nginx做前置,所有的写操作走上海的主机群,境外的读操作走香港的从集群,境内的读操作走上海的主集群;用户按照用户ID切分,数据库用Mysql,也依据用户ID做了分库分表,然后同步到香港从集群。

2.如果境外的用户写操作访问上海节点网络不通畅怎么办?(比如修改密码,上传资料等)首先以目前的情况,访问速度是可以接受;后面如果情况恶化的话,我想到的2个方案,可以再买一条境外专线,回流到境内节点,这个方案相对比较简单,改动量小,但是费用上可能不可控,另外一种是境外再部署一套主集群,那可能就出现双写同步的问题,相对比较复杂,改动量大。其他方案,暂时也想不出来了,(其实刚刚说的方案其实在公司里面也跟同事他们讨论过,哈哈)然后跟面试官交流了下,技术方案还是得到一定认可的。我也顺势反问了下,有没有更好的技术方案。面试官说他们是天猫进出口技术团队,目前正在筹备境外单元化部署的方案,单元化感觉有点复杂,挑战也很大(什么中间件,数据库的一些 有些我也没听没明白,恩恩就行了~),不过听着很带感。还问了一些高可用,防单点的问题,这块没有自己之前没有好好思考过,答的有点含糊,面试官也没再深问下去。最后问了一些基础知识?数据库的隔离级别,数据库的锁(行锁,表锁,乐观悲观),索引的原理和使用(B+树,最左原则),怎么做DB的调优(explain,看索引类型,然后改SQL,尽量提升索引使用效果);java问了一下HashMap的数据结构,是不是线程安全,这个没看过源码,原理也了解一般

2.二面

自我介绍一番,基本把之前的话再说一遍,话都说熟了。。。后面考察了下JVM的东西,内存模型(线程,堆栈,volatile的用法),GC的工作原理,感觉自己答的一般,yong GC 用2个Survivor 和 Eden,当对象满足晋升条件的话,进入老年代,这个晋升条件可能包含对象是否过大,或者留存时间是否过长;另外当老年代大小持久,或者晋升比率陡增的时候(好像叫什么悲观策略,有个JVM 配置的)会触发Full GC。问了下热部署OSGI,消息队列,不太了解,就直接说了不会免得被怼。最后,问了下自己项目用ORM框架,对Hibernate和Mybatis的理解,平时应用比较多,说到ORM特点的话,也没多少感悟,就泛泛而谈了一下;如果让我设计一个ORM框架,我会怎么设计?额,一开始听到有点懵逼,然后想了下Hibernate平时使用的方式,从解析配置开始,绑定对象和表之间的映射,接着运行时的CRUD的处理,还有事务啊,缓存啊之类的优化。

3.三面

那天晚上在开黑玩游戏,玩到一般接到电话,只能坑队友了。老样子,简单介绍一下,这次面试官层级应该高了点,聊了下自己现在的事情,怎么从技术出发解决业务问题,技术机构支撑对今后业务的发展有没有前瞻性,我自己也随便说了下自己的理解,感觉也还行,毕竟之前面试也说过类似的话题。然后讲了下天猫平台的现有技术体系,问我平台和自营供应链之间的优劣,因为之前面过京东,网易考拉,所以把从他们那边得知的自营特性大致讲了下,甚至还YY了下如果我是京东怎么去对抗天猫,我是天猫的怎么去对抗京东(因为我觉得本质是抓住对方的缺点,学习对方的优点,利用自身的优势去打,比如京东物流有优势,天猫流量多平台大资源广)总体感觉还不错,面试官之后好像还有会,就说可以了差不多了。

4.HR面

周末早上,接到HR电话,一开始感觉非常紧张 最后还是因为学历没有过

淘宝

  第一面

  1、说说项目

  由于我几年一直做一个产品,从后台做到前台,从业务开发做到技术平台,所以就画了整个产品部署架构图,b/s &  c/s的,然后一层层的讲解。

  B/S现有Web框架改造、浏览器缓存、c/s补丁下载各种方式、cdn、c/s通信协议、rpc集群、http集群、负载均衡、集群前置机调 度、后端服务器主从实例、后端服务器各种优化(异步、性能隔离)、数据库服务器各种优化(索引、物化视图、读写分离、帐套结转、数据库横向切分、纵向切 分)、层间调用性能监控的实现,对照产品架构图各个部分一路讲下来。

  2、http集群方案,我们的是反向代理服务器,自己有写代理服务器,也可以用主流的web服务器,然后面试官就问ngnix、lighttpd、apache三大主流web服务器的区别...囧了。。。

  3、如果有机会重新设计你们的产品,你会怎么做?

  这个当时回答的不好,主要从通信协议和数据存储两块来说了,这样说有些片面。因为我们产品本身又很多问题,只通过部署架构图是反映不出来的,如 二次开发问题、补丁下载问题、不同模块java包相互依赖问题、技术框架比较封闭、构建系统方案落后、文档缺失等,我们内部经历过很多的痛苦的,但是当时 思维局限在了部署架构,所以没有说出这些问题。

  第二面

  4、网站性能优化如何优化的?

  自己一点网站性能优化经历,结合《构建高性能Web站点》,扯了一通,跟一面有点类似。

  5、本来要花产品架构图,我翻过简历,后边有一面时候画的,就没要画了。然后就要我在黑板(暂且叫做黑板)上画jvm体系结构。

  画了jvm体系结构,讲解了jvm各个组件和组件的交互、GC算法、各种垃圾收集器、运行期优化、产品中遇到的与jvm相关的问题如oom、ClassLoader问题等,并针对HotSpot  VM的实现讲解了堆、非堆内存划分

三面

  1、jvm性能调优都做了什么

  2、高并发情况下,我们系统是如何支撑大量的请求的

  3、集群如何同步会话状态

  4、负载均衡的原理

  5、数据库事务属性

  6、二叉树的遍历算法

  7、hashtable和hashmap的区别

  8、并发、同步的接口或方法

  9、string、stringbuilder、stringbuffer区别

  10、https处理的一个过程,对称加密和非对称加密

  11、线程的几种状态

hr面

  1、个人优势

    2、与同事沟通的时候,如果遇到冲突了如何解决

  3、工作中觉得哪方面欠缺?

  4、有问题要问么?

  5、期望薪水

  6、为什么要离开现在的公司

好在最后还过了

上一篇下一篇

猜你喜欢

热点阅读