随笔分类 - 面试题
摘要:在面试 Netty 时,面试官可能会问以下问题: Netty 是什么?它的主要特点是什么? Netty 是一个 Java 异步事件驱动的网络应用程序框架,用于快速开发高性能、高可靠性的网络客户端和服务器。 Netty 的主要特点如下: 高性能:Netty 的设计和实现都致力于提供高性能的网络通信能力
阅读全文
摘要:为什么Netty使用NIO而不是AIO? 前言 AIO是异步非阻塞的,NIO是同步非阻塞的。理论上讲,AIO的吞吐量肯定比NIO的要大。两种IO的概念如下: 1,NIO模型: 同步非阻塞。服务器实现模式为一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求
阅读全文
摘要:1、微服务注册中心的注册表如何更好的防止读写并发冲突? 微服务注册中心的注册表一般是一个分布式系统,它可以被多个服务实例同时读写,因此并发冲突是一个常见的问题。为了防止并发冲突,可以采取以下措施: 使用分布式锁:可以使用分布式锁来协调对注册表的访问。当一个服务实例需要修改注册表中的某个信息时,它需要
阅读全文
摘要:什么是索引下推 索引下推(Index Condition Pushdown,简称 ICP)是 MySQL 5.6 版本引入的一种优化技术,它可以在索引遍历的过程中,将一部分 WHERE 条件推到存储引擎层,从而减少需要返回到 MySQL 服务器层进行过滤的数据量,提高查询性能。 以查询语句“SELE
阅读全文
摘要:InnoDB行锁升级为表锁的问题 InnoDB 行级锁是通过给索引上的索引项加锁来实现的,InnoDB行级锁只有通过索引条件检索数据,才使用行级锁;否则,InnoDB使用表锁 在不通过索引(主 键)条件查询的时候,InnoDB是表锁而不是行锁 总结:就是在没有使用索引的情况下InnoDB就会使用表级
阅读全文
摘要:概述 分布式锁 前言 redis缓存过期淘汰策略 概述 详解 如果是注释掉的,那么使用的就是默认的 也可以通过命令设置 如果把redis内存打满,会报这个错 默认有8种 概述 redis过期键的删除策略,到期不会自动删除 定时删除(不推荐) 惰性删除(不推荐) 定期删除 引出内存淘汰策略 明细 设置
阅读全文
摘要:AOP 前言 代码示例 Spring4+SpringBoot1.5.9 Spring5+SpringBoot2.3.3 Spring循环依赖 循环依赖是什么 Spring循环依赖报错演示BeanCurrentlyCreationException 构造方法注入(永远无法避免循环依赖问题)纯JavaS
阅读全文
摘要:可重入锁(又名递归锁) 概述 可重入锁种类 隐式锁(即synchronized使用的锁)默认是可重入锁 Synchronized可重入的实现原理 多啥会多出来一个,是为了防止发生异常也可以退出锁 显式锁(即Lock)也有ReentrantLock这样的可重入锁 LockSupport 是什么 线程等
阅读全文
摘要:第9题 概述 测试Demo 整机:top top精简版--〉 uptime CPU:vmstat 查看所有CPU核信息 每个进程使用CPU的用量分解信息 内存:free 每个进程内存的使用信息 硬盘:df 磁盘IO:iostat 网络IO:ifstat 第10题 先用top命令找出CPU占比最高的
阅读全文
摘要:第5题 总览 StackOverflowError OOM:Java heap space vm配置调成 -Xms10m -Xmx10m OOM:GC overhead limit exceeded OOM:Direct buffer memory OOM:unable to create new
阅读全文
摘要:题目 第1题 判断对象是否可以被回收 引用计数法 枚举根节点做可达性分析(根搜索路径) 第2题 JVM 参数类型 标配参数 X参数(了解) XX参数 Boolean类型(+是开启,-是未开启) public class HelloGC { public static void main(String
阅读全文
摘要:一、概述 二、为什么用,有什么好处 三、BlockingQueue的核心方法 四、SynchronousQueue队列 理论 实操 public class SynchronousQueueDemo { public static void main(String[] args) { Blockin
阅读全文
摘要:AtomicInteger位于java.util.concurrent.atomic包下,是对int的封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS。 1. CAS cas介绍 CAS(compare-and-swap)直译即比较并交换,提供原子化的读改写能力,是Java 并发中所
阅读全文
摘要:可见性与原子性 可见性:一个线程对共享变量的修改,更够及时的被其他线程看到 原子性:即不可再分了,不能分为多步操作。比如赋值或者return。比如"a = 1;"和 "return a;"这样的操作都具有原子性。类似"a += b"这样的操作不具有原子性,在某些JVM中"a += b"可能要经过这样
阅读全文
摘要:一、volatile volatile是java虚拟机提供的轻量级的同步机制; 三大特性:保证可见性,不保证原子性,禁止指令重排 JMM(Java内存模型)-->(三大特性:可见性,原子性,有序性) 可见性 验证可见性代码 //volatile可以保证可见性,及时通知其他线程,主物理内存的值已经被修
阅读全文
摘要:子线程循环10次,主线程循环100次;然后子线程循环10次,主线程循环100次,这样循环50次; public class CircleThread { public static void main(String[] args) { Fun fun = new Fun(); new Thread(
阅读全文
摘要:题目 两个线程,一个线程打印1到52,一个线程打印A到Z,打印顺序是12A34B……5152Z 代码实现 public class ThreadTest { public static void main(String[] args){ Foo tt = new Foo(); new Thread(
阅读全文
摘要:public class Test { public static void main(String[] args) { f1(); } static Test t = new Test(); static{ System.out.println("1"); } { System.out.print
阅读全文

浙公网安备 33010602011771号