【面试题】2018年最全Java面试通关秘籍第三套!

注:本文是从众多面试者的面试经验中整理而来,其中不少是本人出的一些题目,网络资源众多,如有雷同,纯属巧合!禁止一切形式的碰瓷行为!未经允许禁止一切形式的转载和复制,如有违反则追究其法律责任!

不要问我为什么没答案了,原因还是以前那句话,单纯的背面试题是解决不了任何问题的,只有深入其内部原理,才能游刃有余!后期一系列的文章会不断的探讨这一个个经典的面试题,敬请期待!也欢迎大家在留言处补充和讨论!

一、基础题

  • 怎么解决Hash冲突;(开放地址法、链地址法、再哈希法、建立公共溢出区等)
  • 写出一个必然会产生死锁的伪代码;
  • Spring IoC涉及到的设计模式;(工厂模式、单利模式。。)
  • toString()方法什么情况下需要重写;
  • 判断对象相等时,什么情况下只需要重写 equals(),什么情况下需要重写 equals(),hashcode()?
  • Set内存放的元素为什么不可以重复,内部是如何保证和实现的?
  • 如何保证分布式缓存的一致性(分布式缓存一致性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显示出来的系统信息都是什么含义;(重要!)
  • 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个词,请给出思想,给出时间复杂度分析。

此话题后边会有专门的文章探讨,如果有等不及的小伙伴,可以移步参考:

1、https://blog.csdn.net/v_july_v/article/details/6279498

2、https://blog.csdn.net/v_july_v/article/details/7382693

八、逻辑思维题

  • 有两根粗细均匀的香(烧香拜佛的香),每一根烧完都花一个小时,怎么样能够得到15min?
  • 假定你有8个撞球,其中有1个球比其他的球稍重,如果只能利用天平来断定哪一个球重,要找到较重的球,要称几次?(2次);
  • 实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药;(答案是10只)
  • 假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水;

原文发布于微信公众号 - Java后端技术(JavaITWork)

原文发表时间:2018-04-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web开发

使用jOrgChart插件实现组织架构图的展示

项目要做组织架构图,要把它做成自上而下的树形结构。 一、说明 (1)通过后台查询数据库,生成树形数组结构,返回到前台。 (2)需要引入的js插件和css文件: ...

35110
来自专栏Java编程

Java架构师学习路线图

学习一下你的集成开发环境提供的调试工具,加一些断点试试。

1.9K3
来自专栏公有云大数据平台弹性 MapReduce

yarn公平调度详细分析(一)

FairScheduler是yarn常用的调度器,但是仅仅参考官方文档,有很多参数和概念文档里没有详细说明,但是这些参明显会影响到集群的正常运行。本文的主要目的...

1.7K17
来自专栏恰童鞋骚年

操作系统核心原理-4.线程原理(下):死锁基础原理

我们都见过交通阻塞,一大堆汽车因为争夺行路权,互不相让而造成阻塞,又或者因为车辆发生故障抛锚或两辆车相撞而造成道路阻塞。在这种情况下,所有的车都停下来,谁也无...

1312
来自专栏微信公众号:Java团长

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些?

按计划,JDK 10 将于 3 月 20 日正式发布。据前 Oracle 员工 Simon Ritter 的统计,JDK 10 总共包含 109 项新特性。当然...

702
来自专栏c#开发者

C#开发终端式短信的原理和方法

简介   没发过短信的年轻人肯定是属于那种受保护的稀有动物,通讯发达的今天短信已经成为人们交流的重要手段,其中也蕴含着巨大的市场和经济利益,掌握短信技术的人才也...

4489
来自专栏小L的魔法馆

UML绘制活动图--客户来电咨询活动图

3476
来自专栏林冠宏的技术文章

关于Android中为什么主线程不会因为Looper.loop()里的死循环卡死?引发的思考,事实可能不是一个 epoll 那么 简单。

( 转载请务必标明出处:https://cloud.tencent.com/developer/user/1148436/activities) 前序 本文将...

3385
来自专栏老码农专栏

TodoBackend展示应用以及ActFramework的实现

1365
来自专栏工科狗和生物喵

FreeRTOS-Qemu 实现三任务同步通信机制以及API信息

---- 1. 本次作业的考察要点: 作业地址:https://github.com/HustWolfzzb/STM32F429DiscoveryFreeRTO...

1.1K6

扫码关注云+社区

领取腾讯云代金券