interview que

百度:

MySQL InnoDB存储的文件结构
索引树是如何维护的?
数据库自增主键可能的问题
Redis的并发竞争问题如何解决了解Redis事务的CAS操作吗
分析线程池的实现原理和线程的调度过程
动态代理的几种方式
Spring AOP与IOC的实现
为什么CGlib方式可以对接口实现代理?
RMI与代理模式
Dubbo的底层实现原理和机制
描述一个服务从发布到被消费的详细过程
算法方面考察了一个简单的数组就地去重问题,用丢弃数组尾部元素的方式实现

 

分布式系统怎么做服务治理
接口的幂等性的概念
Maven出现版本冲突如何解决
JVM垃圾回收机制,何时触发MinorGC等操作
新生代和老生代的内存回收策略
Eden和Survivor的比例分配等
Synchronized和Lock的区别

 

阿里巴巴:

总体上还是围绕项目架构、Java基础、JVM、并发编程、数据库操作、中间件技术和Dubbo服务治理框架等展开

VM内存分代
Java 8的内存分代改进
深入分析了Classloader,双亲委派机制
JVM的编译优化
对Java内存模型的理解,以及其在并发中的应用
指令重排序,内存栅栏等
HashMap的并发问题
了解LinkedHashMap的应用吗
在工作中遇到过哪些设计模式,是如何应用的

 

优酷土豆:

主要是Java基础,Spring原理,Java NIO,并发和集合框架等,可能是因为视频网站,优酷考察网络原理的知识多,比如TCP/IP协议、长连接与短连接等。

TCP/IP协议
长连接与短连接
mapreduce过程
多路归并的时间复杂度
海量url去重类问题
Java NIO使用
倒排索引的原理
对分词技术的了解

 

搜狐新闻:

消息中间件如何解决消息丢失问题
Dubbo的服务请求失败怎么处理
重连机制会不会造成错误
对分布式事务的理解
深入分析几个设计模式

 

58赶集:

HTTP请求的报文格式Spring的事务实现原理
实际场景问题,大量用户数据如何在内存中排序和去重
缓存机器增删如何对系统影响最小,一致性哈希的实现
Redis持久化的几种方式
Redis的缓存失效策略
实际场景问题解决,典型的TOP K问题
实际场景问题,海量登录日志如何排序和处理SQL操作,主要是索引和聚合函数的应用

 

国美在线:

SQL语句编写
MySQL的几种优化
Spring行级锁
Spring衍生的相关其他组件整理
RMI的几种协议和实现框架
BTree相关的操作
数据库锁表的相关处理
考察跳台阶问题

 

 

基础知识必须要扎实
语言基础,计算机基础,算法和基本的Linux运维等
针对Java语言,需要对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射等都有比较深入的了解,最好是学习过部分源码。这些知识点都是相通的,在面试中也可以体现。
从源码的角度,可以深入到哈希表的实现,拉链法以外的哈希碰撞解决方法,如何平衡内部数组保证哈希表的性能不会下降等;
从线程安全的角度,可以扩展到HashTable、ConcurrentHashMap等其他的数据结构,可以比较两种不同的加锁方式,RetreenLock的实现和应用,继续深入可以考察Java内存模型,Volitale原语,内存栅栏等;横向扩展可以考察有序的Map结构如TreeMap、LinkedHashMap,继而考察红黑树,LRU缓存,HashMap的排序等知识。
Java方向的中高级职位,会比较重视对虚拟机的掌握,诸如类加载机制,内存模型等,这些在程序的优化和并发编程中都非常重要。
算法方面,基本的排序和查找算法,对递归,分治等思想的掌握。如果算法基础不太好,推荐《编程珠玑》等,每一章都很经典。
计算机基础方面,比如TCP/IP协议和操作系统的知识也是必备的,这些都是大学计算机专业的基础课,也是做开发基本的素养。
系统设计能力
设计模式,造轮子的能力,各种缓存和数据库应用,缓存,中间件技术,高并发和高可用的分布式系统设计等。
大型互联网公司每天要面对海量的请求,都会考察分布式系统的架构和设计,如何构建高并发高可用的系统。另外因为用户基数比较大,一个细微的优化可能会给带来很大的收益,所以对一些技术栈的掌握要求都比较深入。比如对MySQL数据库,需要知道相关的配置和优化,业务上来以后如何分库分表,如何合理的配置缓存,一个经验丰富的服务端开发人员,也应该是一个称职的DBA。
对常用的开发组件,比如中间件,RPC框架等都要有一定的了解,虽然工作中可能用不到我们自己造轮子,但是掌握原理才会得心应手。这部分知识主要靠工作积累,推荐《大型网站技术架构与Java中间件实践》,还有曾贤杰的《大型网站系统架构与实践》,里面对大型网站的演变,服务治理和中间件的使用做了很详细的阐述。
作为业务开发人员,有必要了解压力测试相关的指标,比如QPS,用户平均等待时间等,可以帮助你更好的了解自己的系统。


作者:头条号 / IT时报
链接:http://toutiao.com/i6295590871521821185/
来源:头条号(今日头条旗下创作平台)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(interview que)