Java后端技术面试汇总(第五套)
1、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内存抖动严重,优化的思路;
2、数据库相关
• SQL优化思路,联合索引与底层树结构的映像关系,索引结构(B+、B-),为什么用这样的结构;
• 讲下MySQL的集群?集群遇到过什么问题?sql的优化?
• 你目前为止遇到的最大数据量是多少?知道100万时候怎么设计吗?1000万呢?过几十亿呢?
• MySQL有多少个参数可调,除了最大连接数。全部列出来,一个个分析。
• 聊下优化过的索引,怎么优化;
• 红黑树和平衡树的区别,为什么数据库不用红黑树;
• mysql有哪些锁,意向锁有什么用;
• 数据库高并发下的优化思路;
• 数据库什么情况下索引会失效;
3、数据结构和操作系统相关
• 数据结构学过吧,聊一下?学过什么结构?讲下树和队列?B树呢?
• 操作系统学过吧,聊一下?讲一下系统内存是怎样的?分段分页虚拟内存?
• 页面置换算法呢?多少种?有最优的置换算法吗?
• 你学过什么课程?然后聊下操作系统,内核、用户之类。
• 反转链表手撸;
• 快排,给一串数组,把具体每次patition写下,最终结果也写45, 32, 41, 35, 38, 20, 50;
• 一个整数status, 判断第K个比特位是否为比特1;
• 把递归实现的快排改成非递归,你知道非递归有什么好处吗;
• 举例使用分治思想的算法;
4、网络相关
• 讲下请求头细节?
• Http和Https?Http1.0,1.1,2.0,讲下长连接和短连接?Https是怎样的?如果我篡改了公钥呢?怎么防止?
• Get和Post,讲下区别,要我模拟出抓包来。
• 详细讲下Cookie和Session,Token,OAuth2.0协议;
• 拥塞算法知道吗?哪些,分别怎样?
• 学过计算机网络是吧?socket熟悉吗?对它的读写缓冲区有理解吗?怎么的?那滑动窗口是怎样的?为什么这样设计?
• 再聊下Http的Http basic authentication;
• Https的过程;
5、框架相关
• 聊下Spring源码,知道多少,都聊一下;
• 聊下Spring注解,@Autowire,@Resource,以及他们的解析过程;
• 聊一下架构,接入层架构,服务层架构。聊下技术栈,Spring Boot,Spring Cloud、Docker;
• Spring ioc的具体优势,和直接New一个对象有什么区别;
• Servlet生命周期,是否单例,为什么是单例;
• Spring Mvc初始化过程;
6、分布式相关
• 多少种RPC框架?
• 一致性哈希是干嘛的?
• 搭建高并发高可用系统需要怎样设计?考虑哪些东西,有多少说多少。
• 你对缓存有什么理解?缓存是解决什么问题?后端缓存有哪些,分别解决什么问题?
• 聊一下分布式锁;
• 你是怎么设计系统缓存的,为什么,什么场景;
• 也来说下,削峰的多种实现,Redis?MQ?
• 为什么用mq就能削峰?解决什么问题?
7、设计题
• 有几台机器存储着几亿淘宝搜索日志,你只有一台2g的电脑,怎么选出搜索热度最高的十个搜索关键词;
• 如何设计算法压缩一段URL;
• 有一个页面能同时展示两个广告,现在有五个广告,设计算法使五个广告展示概率为1:2:3:4:5;
• 有25匹马,五个赛道,用最少比赛次数将25匹马排序;
8、其他相关
• Tomcat缓存,聊下缓存的整体理解,知道多少种缓存;
• 解释下Lucene原理,倒排索引,怎样进行中文分词,基于什么进行分词;
• TopN的大数据量题;
• 你对接入层要思考什么东西?遇到过哪些问题?搭建系统要考量哪些因素?
• 然后项目问题,优化问题;
• 熟悉maven是吧?我们来聊下Maven的源码原理,Maven冲突的时候,怎么选择依赖包,我们怎么查,我们遇到两个不一样的版本,我们应该如何去选择,为什么?
• 项目如何分组,性能优化小组应该做哪些;
• 我们来说下接入层的搭建,认知分析;
• 问下项目的系统构建,思考,为什么这样构建?
• 如何判断一段代码的好坏;
Java后端技术面试汇总(第五套)的更多相关文章
- Java后端技术面试汇总(第四套)
1.Java基础 • 为什么JVM调优经常会将-Xms和-Xmx参数设置成一样:• Java线程池的核心属性以及处理流程:• Java内存模型,方法区存什么:• CMS垃圾回收过程:• Full GC ...
- Java后端技术面试汇总(第三套)
1.基础题 • 怎么解决Hash冲突:(开放地址法.链地址法.再哈希法.建立公共溢出区等)• 写出一个必然会产生死锁的伪代码:• Spring IoC涉及到的设计模式:(工厂模式.单利模式..)• t ...
- Java后端技术面试汇总(第一套)
面试汇总,整理一波,doc文档可点击[此处下载] 1.基础篇 1.1.Java基础 • 面向对象的特征:继承.封装和多态• final, finally, finalize 的区别• Exceptio ...
- Java后端技术面试汇总(第二套)
1.Java相关 • Arraylist与LinkedList默认空间是多少:• Arraylist与LinkedList区别与各自的优势List 和 Map 区别:• 谈谈HashMap,哈希表解决 ...
- Java后端技术微信交流群!工作、学习、技术、资源等!期待你的加入!
<Java后端技术>专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.MyCat.集群.分布式.中间件.Linux.网络.多线程,偶尔讲点运维Jenkins.Nexus ...
- 4000字干货长文!从校招和社招的角度说说如何准备Java后端大厂面试?
插个题外话,为了写好这篇文章内容,我自己前前后后花了一周的时间来总结完善,文章内容应该适用于每一个学习 Java 的朋友!我觉得这篇文章的很多东西也是我自己写给自己的,比如从大厂招聘要求中我们能看到哪 ...
- Java后端技术书单
写博客记录技术上使用的各种问题,这个只能算是一个打游击. 如果要把一个知识学透,最有效的方式就是系统学习,而系统学习就是看书,书本上有清晰的学习路线以及相应的技术栈. 下面是我收集的Java后端的技术 ...
- Java技术面试汇总
1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...
- java后端技术
技术概论:Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构 我在恒生工作,主要开发金融互联网第三方平台的对接项目.目前已经对接 ...
随机推荐
- [BZOJ4033]:[HAOI2015]树上染色(树上DP)
题目传送门 题目描述 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加 ...
- 应用程序无法正常启动(0xc000007b)请单击确定关闭程序
1.问题 在win10 VS2105 环境下面开发了一个调用get接口获取数据然后写入pg数据库的程序,在自己电脑上运行正常.复制到win7环境下运行,单击出现如下图所示的提示框. 2.原因分析 出现 ...
- Linux 服务器安装jdk,mysql,tomcat简要教程
linux服务器是阿里云上买的,学生价9.9/月,拿来学习下. 需要准备软件工具: 1.editplus (编辑服务器上的文件) 2.PuTTY (Linux命令连接器) 3.FlashFXP(上传文 ...
- ARTS打卡计划第二周
Algorithms: https://leetcode-cn.com/problems/3sum/ 算法是先排序,然后按照两个数和两边逼中,考虑去重. Review: https://www.inf ...
- Eureka 服务注册列表显示IP问题研究
在研究Spring Cloud的过程中,本地搭建好Eureka注册中心之后,发现Eureka服务页面显示的服务是机器名:端口的格式,并不是IP+端口的形式. 如下图: 具体搭建过程我就不再贴代码了,参 ...
- Leetcode题目20.有效的括号(简单)
题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符 ...
- LeetCode 81. 搜索旋转排序数组 II(Search in Rotated Sorted Array II)
题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是否存在 ...
- selenium 入门(Java)
官网:https://www.seleniumhq.org/ 下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads 华 ...
- EXCEL中自定义格式输入的数据怎么完整复制
在用设置单元格式里 自定义 输入数值 如图,B列的数据,我复制后,用选择性粘贴到别的地方,还是无法将75FG4Y2一起复制过去,只能复制过去FG 怎么办? ===>先把这些复制到一个记事本里,再 ...
- 吐血整理,一文读懂中国金融衍生品市场的前世今生和未来[z]
[z]https://www.gfedu.cn/cfrm/content_22687.shtml 从定义上来说,金融衍生工具(derivativesecurity)是在货币.债券.股票等传统金融工具的 ...