首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java
纵然间
创建于2024-02-24
订阅专栏
Java全栈知识体系
等 1 人订阅
共152篇文章
创建于2024-02-24
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Java如何确定核心线程数
如何确定核心线程数: IO密集型任务 一般来说:文件读写、DB读写、网络请求等 核心线程数大小设置为2N+1 CPU密集型任务: 一般来说:计算型代码、Bitmap转换、Gson转换等 核心线程数大小
Java JVM 虚拟机方法区知识点
1、什么是方法区 方法区(Method Area)是各个线程共享的内存区域 主要存储类的信息、运行时异常池 虚拟机启动的时候创建,关闭虚拟机时释放 如果方法区域中的内存无法满足分配请求,则会抛出Oou
Java的JVM虚拟机栈有关知识点
1、Java Virtual machine Stacks (Java虚拟机栈) 每个线程运行时所需要的内存,称为虚拟机栈,先进后出 每个栈有多个栈帧(frame)组成,对应这每次方法调用时所占用的内
Java的JVM虚拟机类加载器知识点
1、什么是类加载器 JVM只会运行二进制文件,类加载器的作用就是将字节码文件加载到JVM中,从而让Java程序能够启动起来。 2、类加载器有哪些 启动类加载器(BootStrap ClassLoade
Java JVM虚拟机类装载的过程
1、加载:查找和导入class文件 2、验证:保证加载类的准确性 3、准备:为类变量分配内存并设置类变量初始值 4、解析:把类中的符号引用转换为直接引用 5、初始化:对类的静态变量、静态代码块执行初始
Java的JVM垃圾回收知识点
1、对象什么时候可以被垃圾回收器回收 如果一个或多个对象没有任何的引用指向它了,那么这个对象现在就是垃圾,如果定位了垃圾,则有可能会被垃圾回收器回收。 定位垃圾的方式有两种: 可用计数法 可达性分析法
Java的JVM调优知识点
1、JVM调优的参数可以在哪里设置参数值 通常在Linux系统下之间加参数启动sringboot项目 总结: war包部署在tomcat中设置 jar包部署在启动参数设置 2、JVM调优的参数都有哪些
微服务限流
Nginx限流 控制速率(突发限流),使用的漏桶算法来实现过滤,让请求以固定的速率处理请求,可以应对突发流量 控制并发数,限制单个IP的链接数和并发链接的总数 网关限流 在spring cloud g
RabbitMQ中死信交换机或延迟队列
什么是死信交换机? 当一个队列中的消息满足下来情形之一时,可以称为死信(dead letter): 消费者使用basic.reject或basic.nack声明消费失败,并且消息的requeue参数设
RabbitMQ消息堆积如何解决
解决消息堆积有三种思路: 1、增加更多消费者,提高消费速度 2、在消费者内开启线程池加快消息处理速度 3、扩大队容积,提高堆积上限,采用惰性队列 在声明队列的时候可以设置属性x-queue-model
RabbitMQ高可用与数据丢失问题
在生产环境下,采用镜像模式搭建的集群,共有3个节点 镜像队列结果是一主多从(从就是镜像),所有操作都是主节点完成,然后同步给镜像节点 主宕机后,镜像节点会替代成新的主(如果在主从完成前,主就已经宕机,
Kafka如何保证消费的顺序性
问题原因: 一个topic的数据可能存在不同的分区中,每个分区都有个按照顺序的存储的偏移量,如果消费者关联了多个分区不能保证顺序性。 解决办法: 发送消息时指定分区号 发送消息时按照相同的业务设置相同
Kafka如何保证消息不丢失
需要从三个层面去解决这个问题: 1、生产者发送消息到Brocker丢失 设置异步发送,发送失败使用回调进行记录或重发 失败重试,参数配置,可以设置重试次数 2、消息在Brocker中存储丢失 发送确认
Kafka高可用机制
可以从两个层面回答,第一个是集群,第二个是复制机制 集群: 一个kafka集群由多个broker实例组成,即使某一天宕机,也不耽误其他broker继续对外提供服务 复制机制: 一个topic有多个分区
Kafka数据清理机制
Kafka存储结构: Kafka中topic的数据存储在分区上,分区如果文件过大会分段存储segment 每个分段都在磁盘上以索引(xxx.index)和日志文件(xxx.log)的形式存储 分段的好
Java中ArrayList数据结构
1、数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 2、数组的下标为什么从0开始 寻址公式是:baseAddress + i * dataTypeSize,计算下标的内存
Java中ArrayList底层实现原理
ArrayList底层是动态的数组实现的 ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10 ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组 A
Java中ArrarList和LinkedList区别
一、区别 1、底层数据结构不同,ArrayList底层是基于数组实现的,LinkedLis底层是基于链表实现的。 2、ArrayList更适合随机查找,LinkedList更适合删除和添加,查询、添加
HashMap实现原理
底层使用hash表数据结构,即数组+(链表或红黑树) 添加数据时,计算key的值确定元素在数组中的下标 key相同则替换 key不相同(哈希冲突)存在链表或红黑树 获取数据通过key的hash计算数组
Java的HashMap扩容机制分析
1、在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次扩容都是达到了扩容阈值(数组长度 * 0.75) 2、每次扩容的时候,都是扩容之前容量的2倍
下一页