如何解决 jar 冲突?
遇到冲突的时候第一步,要找到 Maven 加载的到时是什么版本的 jar 包,通过们 mvn dependency:tree
查看依赖树,或者使用 IDEA Maven Helper 插件。
Mycat是什么?
Mycat是基于MySQL的数据库中间件,目的是为了降低数据库的压力。
有三个线程T1,T2,T3,怎么确保它们按顺序执行?
在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。
字长
l 机器字长:计算机能直接处理的二进制位数
你对Kube-proxy有什么了解?
Kube-proxy可以在每个节点上运行,并且可以跨后端网络服务进行简单的TCP / UDP数据包转发。基本上,它是一个网络代理,它反映了每个节点上Kubernetes API中配置的服务。因此,Docker可链接的兼容环境变量提供由代理打开的群集IP和端口。
任何一台Broker突然宕机了怎么办?
Broker主从架构以及多副本策略。Master收到消息后会同步给Slave,这样一条消息就不止一份了,Master宕机了还有slave中的消息可用,保证了MQ的可靠性和高可用性。而且Rocket MQ4.5.0开始就支持了Dlegder模式,基于raft的,做到了真正意义的HA。
什么是溢出?什么是上溢?什么是下溢?
溢出即计算机无法表示数值。上溢是指数值绝对值大于表示范围,下溢是指计算机无法提供有效精度表示数值。
Spring Boot 有哪些优点?
Spring Boot 的优点有:
超大分页怎么处理?
超大的分页一般从两个方向上来解决.
在计算机系统结构中,什么是翻译?什么是解释?
1)翻译:将一种语言编写的程序全部翻译成另一种语言,然后再执行;
2)解释:将一种语言编写的程序的一条语句翻译成另一种语言的一条或多条语句,然后执行,执行完这条语言后,再解释下一条。
解释下 Kafka 中位移(offset)的作用。
在 Kafka 中,每个 主题分区下的每条消息都被赋予了一个唯一的 ID 数值,用于标识它在分区中的位置。这个 ID 数值,就被称为位移,或者叫偏移量。一旦消息被写入到分区日志,它的位移值将不能 被修改。
答完这些之后,你还可以把整个面试方向转移到你希望的地方。常见方法有以下 3 种:
如果你深谙 Broker 底层日志写入的逻辑,可以强调下消息在日志中的存放格式;
如果你明白位移值一旦被确定不能修改,可以强调下“Log Cleaner 组件都不能影响位 移值”这件事情;
如果你对消费者的概念还算熟悉,可以再详细说说位移值和消费者位移值之间的区别。
谈谈自己对于Spring IOC的理解
IOC(Inversion Of Controll,控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由给Spring框架来管理。IOC在其他语言中也有应用,并非Spring特有。IOC容器是Spring用来实现IOC的载体,IOC容器实际上就是一个Map(key, value),Map中存放的是各种对象。
为什么InnoDB一定会生成主键?
因为Innodb的数据结构是通过聚簇索引组织起来的,如果没有主键的话,通过其他索引回表的时候没法查到相应的数据行。
HashMap在Java7和Java8中的实现有什么不同?
详见:https://blog.youkuaiyun.com/qq_36520235/article/details/82417949
如果要存储用户的密码散列,应该使用什么字段进行存储?
密码散列,盐,用户身份证号等固定长度的字符串应该使用char而不是varchar来存储,这样可以节省空间且提高检索效率。
了解过什么是“伪共享”吗?
CPU缓存从内存读数据时,是按缓存行读取的,即使只用到一个变量,也要将整行数据进行读取,这行数据量可能包含其他变量。当多个线程同时修改同一个缓存行里的不同变量时,由于同时只能有一个线程在操作,所以相比将每个变量放到不同缓存行里,性能会有所下降。多个线程同时修改了同一个缓存行上的不同变量,由于不能并发修改,所以称为“伪共享”。
给我一个符合开闭原则的设计模式的例子?
开闭原则要求你的代码对扩展开放,对修改关闭。这个意思就是说,如果你想增加一个新的功能,你可以很容易的在不改变已测试过的代码的前提下增加新的代码。有好几个设计模式是基于开闭原则的,如策略模式,如果你需要一个新的策略,只需要实现接口,增加配置,不需要改变核心逻辑。一个正在工作的例子是 Collections.sort() 方法,这就是基于策略模式,遵循开闭原则的,你不需为新的对象修改 sort() 方法,你需要做的仅仅是实现你自己的 Comparator 接口。
Java 中有几种类型的流?
(1)按照流的方向:输入流(inputStream)和输出流(outputStream);(2)按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如 FileReader)和处理流(是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如 BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接);(3)按照处理数据的单位: 字节流和字符流。字节流继承于 InputStream 和 OutputStrea,字符流继承于InputStreamReader 和 OutputStreamWriter 。
MySQL分库分表了解过吗?
详见:https://baijiahao.baidu.com/s?id=1622441635115622194
如何在 /usr 目录下找出大小超过 10MB 的文件?
find /usr -type f -size +10240k