您的位置 首页 java

双十一临近,连拿京东、天猫、苏宁的offer,分享Java复习题

前言

临近双十一,我的前同事连拿 京东 天猫 、苏宁的offer,不知何去何从;其实这些大厂去哪里都已经无所谓了;只要薪资满足自己,工作舒心就好了;不过这两点要全都实现还是蛮有难度的呀!为什么我的前同事能够连拿京东、天猫、苏宁的offer,纯粹是因为人家准备充分,裸辞复习好几个月,不过功夫不负有心人,现在的offer也对得他的付出了。

言归正传,今天呢,主要是和大家分享一下我朋友的复习大纲,我看了一下,还是蛮不错,蛮全面的

一、基础题

  • 怎么解决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(lognwait方法能不能被重写?(wait是final类型的,不可以被重写,不仅如此,notify和notifyall都是final类型的),wait能不能被中断
  • 一个Controller调用两个Service,这两Service又都分别调用两个Dao,问其中用到了几个数据库连接池的连接

二、网络基础

  • HTTP、 TCP UDP 的区别和联系
  • CP和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个词,请给出思想,给出时间复杂度分析

八、逻辑思维题

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

九、数据库

  • InnoDB的插入缓冲和两次写的概率和意义
  • 如果建了一 个单列索引,查询的时候查出2列,会用到这个单列索引|吗
  • 如果建了一个包含多个列的索引,查询的时候只用了第一 列,能不能用上这个索引?查三列呢?
  • 接上题,如果where条件后面带有一一个i + 5 < 100会使用到这个索引吗?
  • like %aaa%会使用索引吗? like aaa%呢?
  • drop、truncate、 delete的区别 ?
  • 平时你们是怎么监控数据库的?慢 SQL 是怎么排查的? (慢查询日志)
  • 你们数据库是否支持emoji表情,如果不支持,如何操作?选择什么编码方式?如果支持一一个表情占几个字节?
  • 如果查询很慢,你会想到的第一一个方式是什么? (数据库索引)

十、Linux基础

  • Linux下可以在/proc目录下可以查看CPU的核心数等;cat /proc/下边会有很多系统内核信息可供显示
  • 说一下栈的内存是怎么分配的
  • Linux各个目录有了解过吗?/etc、/bin、/dev、/lib、/sbin这些常见的目录主要作用是什么?
  • 说一下栈帧的内存是怎么分配的
  • Linux下排查某个死循环的线程
  • 动态链接和静态链接的区别
  • 进程的内存分布
  • 如何查找一个进程打开所有的文件
  • 说一下常使用的协议及其对应的端口
  • 为什么会有内核态, 保护模式 你知道吗?
  • 文件是怎么在磁盘上存储的?
  • 有了进程为何还要线程呢,不同进程和线程他们之间有什么不同。(进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。)
  • InnoDB聚集索引B+树叶子节点和磁盘什么顺序相同
  • 文件系统,进程管理和调度,内存管理机制、虚地址保护模式

十一、网络基础

  • HTTP1.0和HTTP1.1的区别
  • DHCP 如何实现分配IP的; 发现阶段(DHCP客户端在网络中广播发送DHCP DISCOVER请求报文,发现 DHCP服务器 ,请求IP地址租约)、提供阶段(DHCP服务器通过DHCP OFFER报文向DHCP客户端提供IP地址预分配)、选择阶段(DHCP客户端通过DHCP REQUEST报文确认选择第一个DHCP服务器为它提供IP地址自动分配服务)和确认阶段(被选择的DHCP服务器通过DHCP ACK报文把在DHCP OFFER报文中准备的IP地址租约给对应DHCP客户端
  • OSI七层模型,每层都说下自己的理解和知道的,说的越多越好

十二、框架相关

  • Servlet如何保证单例模式,可不可以编程多例的哪?
  • Dubbo请求流程以及原理
  • Spring框架如何实现事务的;
  • 如果一个接口有2个不同的实现, 那么怎么来Autowire一个指定的实现?(可以使用Qualifier注解限定要注入的Bean,也可以使用Qualifier和Autowire注解指定要获取的bean,也可以使用Resource注解的name属性指定要获取的Bean)
  • Spring框架中需要引用哪些jar包,以及这些jar包的用途
  • Spring Boot没有放到web容器⾥为什么能跑HTTP服务?
  • Spring中循环注入是什么意思,可不可以解决,如何解决;
  • Spring的声明式事务 @Transaction注解⼀般写在什么位置? 抛出了异常会⾃动回滚吗?有没有办法控制不触发回滚?
  • MyBatis怎么防止SQL注入
  • Tomcat本身的参数你⼀般会怎么调整?
  • 了解哪几种序列化协议?如何选择合适的序列化协议;
  • Redis渐进式rehash过程?
  • 比如我有个电商平台,做每日订单的异常检测,服务端代码应该写

十三、设计题

  • 有几台机器存储着几亿淘宝搜索日志,你只有一台2g的电脑 ,怎么选出搜索热度最高的十个搜索关键词;
  • 如何设计算法压缩段URL
  • 有一个页面能同时展示两个广告,现在有五个广告,设计算法使五个广告展示概率为1:2:3:4:5
  • 有25匹马,五个赛道,用最少比赛次数将25匹马排序

写在最后

文章限于篇幅,只列举部分的面试题,也没发在这里给大家对这些面试题一一作答;其实这份面试题笔者已经整理成了一份完整的PDF文档,包含但不限于高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等架构技术。

需要的朋友,请帮忙转发一下,然后细心我 【学习】 即可免费领取!

需要的朋友,请帮忙转发一下,然后细心我 【学习】 即可免费领取!

需要的朋友,请帮忙转发一下,然后细心我 【学习】 即可免费领取!

以下是部分面试题截图

文章来源:智云一二三科技

文章标题:双十一临近,连拿京东、天猫、苏宁的offer,分享Java复习题

文章地址:https://www.zhihuclub.com/198354.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图