前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试题】2018年最全Java面试通关秘籍第五套!

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

作者头像
Java后端技术
发布2018-08-09 16:57:12
1.2K0
发布2018-08-09 16:57:12
举报
文章被收录于专栏:Java后端技术栈Java后端技术栈

第一套:《2018年最全Java面试通关秘籍第一套!

第二套:《2018年最全Java面试通关秘籍第二套!

第三套:《2018年最全Java面试通关秘籍第三套!

第四套:《2018年最全Java面试通关秘籍第四套!

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

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

一、Java相关

  • 乐观悲观锁的设计,如何保证原子性,解决的问题;
  • char和double的字节,以及在内存的分布是怎样;
  • 对象内存布局,然后讲下对象的死亡过程?
  • 对象头,详细讲下;
  • sync原理详细,sync内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案?
  • 详细讲一下集合,HashSet源码,HashMap源码,如果要线程安全需要怎么做?
  • 多线程是解决什么问题的?线程池解决什么问题?
  • 线程池,如何设计的,里面的参数有多少种,里面的工作队列和线程队列是怎样的结构,如果给你,怎样设计线程池?
  • AQS原理,ReentranLock源码,设计原理,整体过程。
  • 继续聊多线程源码,sync原理,然后一个场景设计题;
  • float f = 1.4f;double d = 1.4d; 与 float f = 1.5f;double d = 1.5d; 是否为true,内存是怎样的;
  • split的源码,split("a|b|c");得出多少个数组;
  • 把所有认识熟用的JUC( java.util.concurrent(简称JUC)包)下的类写出来,讲下使用,然后讲下原生的线程操作;
  • 开闭原则,解析工厂方法模式,建造者模式,区别。手撸出来。
  • 讲下JVM的大页模式,JVM内存模型;
  • 什么是敏捷开发,防御性编程,并行编程。Team Leader的思考;
  • 逃逸分析是什么,作用是什么,用途是什么;
  • 怎么认为一个类是线程安全?线程安全的定义是什么?Java有多少个关键字进行同步?为什么这样设计?(聊了一大堆,一堆为什么);
  • 两个线程设计题。记得一个是:t1,t2,t3,让t1,t2执行完才执行t3,原生实现。
  • 写个后缀表达式,为什么要设计后缀表达式,有什么好处?然后写下中缀。
  • 我看你做过性能优化,比如你怎么分析项目里面的OOM的,内存泄露呢?详细说思路;
  • 说下多线程,我们什么时候需要分析线程数,怎么分析,分析什么因素;
  • 抽象方法和类方法的区别,static的抽象方法可以吗?
  • 说下Java的克隆体系;
  • 涉及OOM、JVM优化、源码问题、数据库优化、多线程等问题;
  • CPU高?什么情况CPU高?解决什么问题?
  • 你有遇到过临界区问题吗?有遇到过吗?你在项目遇到这个问题是怎样解决的?
  • volatile关键字作用;
  • Java的多态怎么实现;
  • 解释一下自旋;
  • 解释一下信号量;
  • 什么情况下会触发类加载;
  • Java内存抖动严重,优化的思路;

二、数据库相关

  • SQL优化思路,联合索引与底层树结构的映像关系,索引结构(B+、B-),为什么用这样的结构;
  • 讲下MySQL的集群?集群遇到过什么问题?sql的优化?
  • 你目前为止遇到的最大数据量是多少?知道100万时候怎么设计吗?1000万呢?过几十亿呢?
  • MySQL有多少个参数可调,除了最大连接数。全部列出来,一个个分析。
  • 聊下优化过的索引,怎么优化;
  • 红黑树和平衡树的区别,为什么数据库不用红黑树;
  • mysql有哪些锁,意向锁有什么用;
  • 数据库高并发下的优化思路;
  • 数据库什么情况下索引会失效;

三、数据结构和操作系统相关

  • 数据结构学过吧,聊一下?学过什么结构?讲下树和队列?B树呢?
  • 操作系统学过吧,聊一下?讲一下系统内存是怎样的?分段分页虚拟内存?
  • 页面置换算法呢?多少种?有最优的置换算法吗?
  • 你学过什么课程?然后聊下操作系统,内核、用户之类。
  • 反转链表手撸;
  • 快排,给一串数组,把具体每次patition写下,最终结果也写45, 32, 41, 35, 38, 20, 50;
  • 一个整数status, 判断第K个比特位是否为比特1;
  • 把递归实现的快排改成非递归,你知道非递归有什么好处吗;
  • 举例使用分治思想的算法;

四、网络相关

  • 讲下请求头细节?
  • Http和Https?Http1.0,1.1,2.0,讲下长连接和短连接?Https是怎样的?如果我篡改了公钥呢?怎么防止?
  • Get和Post,讲下区别,要我模拟出抓包来。
  • 详细讲下Cookie和Session,Token,OAuth2.0协议;
  • 拥塞算法知道吗?哪些,分别怎样?
  • 学过计算机网络是吧?socket熟悉吗?对它的读写缓冲区有理解吗?怎么的?那滑动窗口是怎样的?为什么这样设计?
  • 再聊下Http的Http basic authentication;
  • Https的过程;

五、框架相关

  • 聊下Spring源码,知道多少,都聊一下;
  • 聊下Spring注解,@Autowire,@Resource,以及他们的解析过程;
  • 聊一下架构,接入层架构,服务层架构。聊下技术栈,Spring Boot,Spring Cloud、Docker;
  • Spring ioc的具体优势,和直接New一个对象有什么区别;
  • Servlet生命周期,是否单例,为什么是单例;
  • Spring Mvc初始化过程;

五、分布式相关

  • 多少种RPC框架?
  • 一致性哈希是干嘛的?
  • 搭建高并发高可用系统需要怎样设计?考虑哪些东西,有多少说多少。
  • 你对缓存有什么理解?缓存是解决什么问题?后端缓存有哪些,分别解决什么问题?
  • 聊一下分布式锁;
  • 你是怎么设计系统缓存的,为什么,什么场景;
  • 也来说下,削峰的多种实现,Redis?MQ?
  • 为什么用mq就能削峰?解决什么问题?

六、设计题

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

七、其他相关

  • Tomcat缓存,聊下缓存的整体理解,知道多少种缓存;
  • 解释下Mucene原理,倒排索引,怎样进行中文分词,基于什么进行分词;
  • TopN的大数据量题;
  • 你对接入层要思考什么东西?遇到过哪些问题?搭建系统要考量哪些因素?
  • 然后项目问题,优化问题;
  • 熟悉maven是吧?我们来聊下Maven的源码原理,Maven冲突的时候,怎么选择依赖包,我们怎么查,我们遇到两个不一样的版本,我们应该如何去选择,为什么?
  • 项目如何分组,性能优化小组应该做哪些;
  • 我们来说下接入层的搭建,认知分析;
  • 问下项目的系统构建,思考,为什么这样构建?
  • 如何判断一段代码的好坏;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java后端技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档