Java和大数据面试指南(三)

基础题

公众号

  • 全网唯一一个从0开始帮助Java开发者转做大数据领域的公众号~

  • 大数据技术与架构或者搜索import_bigdata关注~

  • 海量【java和大数据的面试题+视频资料】整理在公众号,关注后可以下载~

###怎么解决Hash冲突;(开放地址法、链地址法、再哈希法、建立公共溢出区等)

###写出一个必然会产生死锁的伪代码;
methodA() {
synchronized(lockA) {
Thread.sleep(10000);
synchronized(lockB) {

}
}
}

methodB() {
synchronized(lockB) {
Thread.sleep(10000);
synchronized(lockA) {

}
}
}

###Spring IoC涉及到的设计模式;(工厂模式、单利模式。。)

###toString()方法什么情况下需要重写;
希望对象按指定格式输出,否则是一个内存地址
###判断对象相等时,什么情况下只需要重写 equals(),什么情况下需要重写 equals(),hashcode()?

###Set内存放的元素为什么不可以重复,内部是如何保证和实现的?
hashset在存储对象时,先判断两个对象的hash值是否一样,只有在hashcode()相等的前提下equals()也相等,才认为两个对象时同一个。
加入到hashset中的自定义类的对象,为确保他们不重复,需要对他们的类重写equals()和hashcode()的方法。

如果不重写equals,相同内容不同引用的对象会被当做不同的对象被加入到hashset中。
###如何保证分布式缓存的一致性(分布式缓存一致性hash算法?)?分布式session实现?

###Java 8流式迭代的好处?

###项目中用到的JDK的哪些特性?

###说一下TreeMap的实现原理?红黑树的性质?红黑树遍历方式有哪些?如果key冲突如何解决?setColor()方法在什么时候用?什么时候会进行旋转和颜色转换?

###Spring的bean的创建时机?依赖注入的时机?

###ArrayList和LinkList的删除一个元素的时间复杂度;(ArrayList是O(N),LinkList是O(1));

###CopyOnWriteArrayList是什么;

###序列化和反序列化底层如何实现的(ObjectOutputStream 、ObjectInputStream、 readObject writeObject);

###如何调试多线程的程序;

###一个线程连着调用start两次会出现什么情况?(由于状态只有就绪、阻塞、执行,状态是无法由执行转化为执行的,所以会报不合法的状态!)

###HashMap在什么时候时间复杂度是O(1),什么时候是O(n),什么时候又是O(logn);

###wait方法能不能被重写?(wait是final类型的,不可以被重写,不仅如此,notify和notifyall都是final类型的),wait能不能被中断;

###一个Controller调用两个Service,这两Service又都分别调用两个Dao,问其中用到了几个数据库连接池的连接?

###二、网络基础

###HTTP、TCP、UDP的区别和联系;

###TCP和UDP各自的优势,知道哪些使用UDP协议的成功案例;

###TCP和UDP各用了底层什么协议;

###单个UDP报文最大容量;

###单个TCP报文最大容量;

###TCP报头格式、UDP报头格式;

###Server遭遇SYN Flood应当怎么处理;

###Web开发中如何防范XSS?

###拆包和粘包的问题,如何解决,如果我们的包没有固定长度的话,我们的应用程序应该如何解决;

###三、操作系统

###为什么要内存对齐;

###为什么会有大端小端,htol这一类函数的作用;

###top显示出来的系统信息都是什么含义;(重要!)
依次对应:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
###Linux地址空间,怎么样进行寻址的;

###Linux如何查找目录或者文件的;

###四、分布式其他

###分库与分表带来的分布式困境与应对之策;

###Solr如何实现全天24小时索引更新;

###五、Redis

###Redis插槽的分配(key的有效部分使用CRC16算法计算出哈希值,再将哈希值对16384取余,得到插槽值);

###Redis主从是怎么选取的(一种是主动切换,另一种是使用sentinel自动方式);

###Redis复制的过程;

###Redis队列应用场景;

###Redis主节点宕机了怎么办,还有没有同步的数据怎么办;

###六、系统设计开放性题目

###秒杀系统设计,超卖怎么搞;

###你们的图片时怎么存储的,对应在数据库中时如何保存图片的信息的?

###假如成都没有一座消防站,现在问你要建立几座消防站,每个消防站要配多少名消防官兵,多少辆消防车,请你拿出一个方案;

###基于数组实现一个循环阻塞队列;

###常见的ipv4地址的展现形式如“168.0.0.1”,请实现ip地址和int类型的相互转换。(使用位移的方式)

###现网某个服务部署在多台Liunx服务器上,其中一台突然出现CPU 100%的情况,而其他服务器正常,请列举可能导致这种情况发生的原因?如果您遇到这样的情况,应如何定位?内存?CPU?发布?debug?请求量?

###七、大数据量问题(后边会有专题单独讨论)

###给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

###海量日志数据,提取出某日访问百度次数最多的那个IP;

###一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。

###八、逻辑思维题

###有两根粗细均匀的香(烧香拜佛的香),每一根烧完都花一个小时,怎么样能够得到15min?

###假定你有8个撞球,其中有1个球比其他的球稍重,如果只能利用天平来断定哪一个球重,要找到较重的球,要称几次?(2次);

###实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药;(答案是10只)

###假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水;

猜你喜欢

转载自blog.csdn.net/u013411339/article/details/87933203
今日推荐