- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
以下是我收集的一些问题,有的是网上摘录的,有的是自己参加面试被问到的,有的是工作或学习时遇到的,等等。 为什么要记录这些呢? 一方面,我相信,这样做对我自己的技术提升是有帮助的。在全文结构上我尽量使问题连贯地形成知识体系,而不是堆积的碎片,而且,每个问题我会尽量地给出答案。 另一方面,我希望,有大佬可以指出我的错误。因为我的答案不一定对,尤其那些带 * 的问题。 这份资料将会持续更新,如果有其他问题也可以留言讨论。欢迎交流,共同进步。
以下是我收集的一些问题,有的是网上摘录的,有的是自己参加面试被问到的,有的是工作或学习时遇到的,等等。
为什么要记录这些呢?
一方面,我相信,这样做对我自己的技术提升是有帮助的。在全文结构上我尽量使问题连贯地形成知识体系,而不是堆积的碎片,而且,每个问题我会尽量地给出答案。
另一方面,我希望,有大佬可以指出我的错误。因为我的答案不一定对,尤其那些带 * 的问题。
这份资料将会持续更新,如果有其他问题也可以留言讨论。欢迎交流,共同进步。
修改时间 | 版本 | 修改人 | 修改内容 | 问题答案 |
---|---|---|---|---|
2022-05-02 | 1.0.0 | ZhangZiSheng001 | 初始化 | 我的面试题备忘录1.0.0.pdf |
class文件的组成结构
说说JVM的运行时数据区
CompressedClassSpace是干嘛用的
运行时常量池和字符串常量池的区别
Minor GC、Major GC和Full GC的区别
一次完整的GC流程是怎样的
什么时候触发major gc
什么是分配担保机制
对象什么时候晋升到老年代
有哪几种垃圾回收算法
有哪几种垃圾回收器
怎么手动触发gc
新生代和老年代比例多大比较好*
字符串常量池会gc吗
MetaSpace会gc吗
项目里用到的JVM参数
项目中JVM调优的例子*
运行时能不能调整堆大小*
说说类的加载过程
什么是双亲委派机制
为什么要有多个类加载器
为什么会有双亲委派机制
为什么破坏双亲委派机制
Class.forName和ClassLoader.loadClass的区别
自定义java.lang.String可以吗
线程和进程的区别
线程有哪几个状态?它们如何转换的
如何中止一个线程
异步线程的异常怎么处理*
什么是线程池?说说它的原理
Executors的几种线程池
线程池的关闭方式
你们项目怎么用线程池*
线程池设置多大合适*
ThreadLocal有什么用
使用ThreadLocal需要注意的问题
volatile的作用
什么是乐观锁、悲观锁
CAS的作用
CAS的缺点
什么是 AQS
什么是独占锁、共享锁
什么是公平锁、非公平锁
synchronized原理、优化
CyclicBarrier与CountDownLatch区别
三种等待/唤醒的使用和区别
Object.notify和Condition.signal是随机唤醒线程吗
如何保证多个线程顺序执行
用三个线程按顺序循环打印abc三个字母
不sleep(0)和sleep(0)的区别
说说常用的几个容器
为什么HashMap的数组是2的n次方
为什么链表大于8且size大于64才转红黑树*
红黑树转回链表的阈值为什么是6不是8
扩容因子为什么是0.75
HashMap和ConcurrentHashMap的区别
TreeMap的使用场景*
ConcurrentHashMap为什么放弃分段锁
DelayQueue的原理
Collections.synchronizedMap本质
Error和Exception的区别
RuntimeException和其他Exception的区别*
String.length() 总是可靠吗
static方法可以重写吗
类的实例化顺序
为什么要使用缓存
redis为什么快
redis为什么使用单线程
为什么redis6.0又用了多线程
说说redis的数据结构
redis还可以做什么
redis有哪种持久化
项目中使用哪种持久化?为什么
说说redis的高可用架构
为什么Cluster模式不用一致性哈希,而是用哈希槽
怎么解决一致性问题*
redis的过期策略
redis的淘汰策略
缓存穿透、缓存击穿、缓存雪崩、热key
如何解决双写不一致问题
说说分布式锁原理
如何避免多客户端获得同一把锁
超时时间大小设置的依据是什么*
如何实现一个列表中元素不同过期时间
为什么要用数据库
为什么要用mysql*
关系型数据库和非关系型的区别
SQL和NOSQL怎么选择
为什么查询那么快
什么是B+树
hash索引和B+树索引的区别
聚簇索引和非聚簇索引的区别
组合索引生效规则
复合索引的索引树是怎样的*
怎么判断索引是否生效
重复性高的字段都不能加索引吗
项目中有没遇到慢查询?怎么办
sql的执行顺序
exists和in的区别
count(*)、count(字段) 和count(1)区别
为什么select count(*)在myisam比Innodb快
什么是事务
脏读、不可重复读、幻读的原因和解决方案
什么是MVCC
RR级别能否解决幻读
gap锁和next-key锁的关系
next-key的一些示例
为什么要有意向锁
MyISAM 和 InnoDB 的区别
如何解决死锁*
MVCC下delete的数据会一直存在吗
为什么分库分表
怎么分库分表
有哪些分库分表方案
mysql的主从复制方式
mysql的高可用方案*
主从不一致怎么解决
为什么使用队列
为什么要用RabbitMQ*
项目里怎么用的
AMQP的协议模型
RabbitMQ的两种模式
RabbitMQ的四种交换机
routingkey和bindingkey的区别
如何保证消息有序*
如何保证消息不丢失
怎么保证消费幂等性
如何避免队列消息积压
如何做延迟队列
重回队列的消息排在哪里
RabbitMQ的高可用方案
生产者创建队列还是消费者创建队列
死信交换(DLX)和死信队列(DLQ)
推模式和拉模式
IOC和DI的理解
beanFactory和applicationContext的区别
如何解决循环依赖
什么情况会出现无法解析的循环依赖?为什么
bean的生命周期
事务传播机制
Spring Cloud中feign、ribbon和hystrix的超时时间
springboot自动装配的过程
为什么要用微服务
为什么要使用集群而不是更好的单机
什么是CAP
什么是Service Mesh*
什么是降级
几种限流算法
分布式事务*
分布式id
oauth2.0
eureka、ribbon、hystrix是如何配合的*
你们项目的日活、qps是多少
怎么统计qps
正向代理和反向代理的区别
如何实现热部署*
你们项目的监控告警
Counter、Gauge、Summary、Histogram的区别
链路
Linux的IO模型有哪几种
reactor模型有哪几种
epoll和poll的区别
平时用到的Linux命令
一个进程最多可以创建多少线程
为什么 java 程序的内存溢出往往伴随着 CPU 爆表
CPU爆表怎么排查
内存高怎么排查
线上系统突然变得异常缓慢,如何排查*
网络:集线器、交换机、路由器
为什么是三次握手?最后一次省略不行吗
为什么是四次挥手?第二次和第三次合并不行吗?最后一次省略不行吗
TCP四次挥手为什么要等待2msl
http和https的区别
说几个HTTP状态码
当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤
如何避免浏览器缓存
如何理解HTTP协议的无状态性
HTTP有哪几种method
雪花算法
雪花算法如何解决时钟回拨
一致性哈希算法
对称加密、非对称加密算法
时间轮算法
解决hash冲突的方法
paxos算法*
raft算法*
设计模式
手写单例模式
代理模式和装饰模式的区别
面向对象设计的原则
如何设计一个良好的API
数据库设计的三大范式
开发、设计中遇到的问题或挑战
什么是MVC
实现:抢红包
实现:扫码登录
实现:秒杀*
实现:多少人在看这篇文章*
实现:浏览过这篇文章的还浏览了
实现:附近的人
实现:五亿数据,找出数量top100
实现:并发安全的链表*
实现:30分钟没付款就自动关闭交易
实现:分布式环境下的countDownLatch
长链接转短链接的原理
tomcat的并发控制参数
感谢阅读。
打赏支持 ~
微信|支付宝
本文为原创文章,转载请附上原文出处链接:https://www.cnblogs.com/ZhangZiSheng001/p/16218179.html
分层,抽象,高内聚,低耦合
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!