03 2022 档案
摘要:本文用于个人学习记录 一、强引用、软引用、弱引用 1.强引用(StrongReference) 强引用,是使用最普遍的引用,就是定义变量时的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java 虚拟机宁愿抛出 OutOfMemoryError
阅读全文
摘要:(图片来自 JavaGuide) 一、类加载: new一个对象时,首先去检查这个指令的参数是否能在运行时常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 二、分配内存 类加载检查通过后,接下来虚拟机将为新生对象分配内
阅读全文
摘要:本文主要用于个人笔记记录,主要针对jdk1.8 一、Java内存区域(运行时数区) 图片这X掉的是方法区,方法区是JVM的规范,大家可能会搞混永久代和方法区,其实永久代就是Jdk 1.8以前 HotSpot对方法区的实现。 (图片取自java guide) 直接内存是非运行时数据区的一部分。 Jav
阅读全文
摘要:1.普通的活动编号、订单号等 可以考虑每台设备都有自己的设备号,加上相应位数递增id(可以考虑数据库取号器,每次取一批到内存中做cas增加);也可以考虑使用雪花算法+业务相关前缀 2.邀请码,这类码要求是简短 可以考虑使用时间戳某几位,加设备号,加英文字母随机码;时间戳表示当前的码是带有时效性的,比
阅读全文
摘要:1.场景1:现要查100条数据,但由于直接使用limit,数据库还是会全表查询后再返回前x条,这样会导致数据库报错。 考虑在sql中加入主键id索引直接缩小范围100,比如id在0-100范围。 2.场景2:就是要查10w、20w这种庞大的数据出来 可以考虑在程序中做分批并发查询,数据库每次只查2w
阅读全文
摘要:1.多个Broker进程分散到不同机器上。 2.备份机制(Replication)。相同的数据拷贝到多台机器。 备份(副本)机制:副本,本质就是一个只能追加写消息的提交日志 提供数据冗余。即使系统部分组件失效,系统依然能够继续运转,因而增加了整体可用性以及数据持久性。 提供高伸缩性。支持横向扩展,能
阅读全文
摘要:Apache Kafka 是一款开源的消息引擎系统(支持可重用、通用的传输消息中间件)。 支持以下模型: 1.点对点(一对一)。2.发布/订阅(多对多)。 同时也是分布式流平台。用于处理两类问题: 1.数据正确性不足。数据收集轮询的间隔时间是一个高度经验化的问题。 2.系统高度定制化(每个子系统对接
阅读全文
摘要:一、maven的基础学习 maven的基本知识这里就不过多讲解,详细可以看看这个文章,文章中把idea上maven插件为什么lifecycle和plugins都有同样的操作,以及maven lifecycle每个阶段执行的goals和phrase都列得非常清楚。 https://blog.csdn.
阅读全文
摘要:最近应用项目接入sentinel,但公司内部进行封装的sentinel filter好像一直加载不到,因此就从filter加载过程进行debug。 记录一下dubbo加载SPI的时候的方式。 源码中,spring启动时doCreateBean方法里,dubbo启动读取服务配置时,初始化Service
阅读全文