- 博客(49)
- 收藏
- 关注
原创 Java 从字节码层面看Java对象
由于HotSpot VM的自动内存管理系统要求对象起始地址必须是8字节的整数倍,换句话说,就是对象的大小必须是8字节的整数倍。markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32bit和64bit。对象真正存储的有效信息,也是各种类型的字段内容。klass,类型指针,指向对象的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。
2024-03-30 16:51:00 215
原创 Flowable 笔记
Flowable 是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016 年 10 月,Activiti 工作流引擎的主要开发者离开 Alfresco 公司并在 Activiti 分支基础上开启了 Flowable 开源项目。基于 Activiti v6 beta4 发布的第一个 Flowable release 版本为6.0。
2024-03-28 16:52:14 680
原创 OpenFeign原理整理【Java面试】
1.在 Spring 项目启动阶段,服务 A 的OpenFeign 框架会发起一个主动的扫包流程。2.从指定的目录下扫描并加载所有被 @FeignClient 注解修饰的接口,然后将这些接口转换成 Bean,统一交给 Spring 来管理。3.根据这些接口会经过 MVC Contract 协议解析,将方法上的注解都解析出来,放到 MethodMetadata 元数据中。
2024-03-28 14:37:55 1011
原创 Activity笔记
Alfresco 软件在 2010 年 5 月 17 日宣布 Activiti业务流程管理(BPM)开源项目的正式启动, 其首席架构师由业务流程管理 BPM 的专家 Tom Baeyens 担任, Tom Baeyens 就是原来 jbpm 的架构师,而 jbpm 是一个非常有名的工作流引擎,当然 Activiti也是一个工作流引擎。
2024-03-28 10:25:22 1266
原创 如何在 Java 中造成内存泄漏?
如何在 Java 中造成内存泄漏?应用程序创建一个长时间运行的线程(或使用线程池来更快地泄漏)。线程通过(可选自定义)加载类ClassLoader。该类分配一大块内存(例如new byte[1000000]),将对其的强引用存储在静态字段中,然后将对其自身的引用存储在ThreadLocal. 分配额外的内存是可选的(泄漏类实例就足够了),但它会使泄漏工作更快。应用程序清除对自定义类或其ClassLoader加载源的所有引用。
2024-03-20 19:07:50 251
原创 docker安装kafka【手把手系列】
Kafka是由Apache基金会开发的分布式流处理平台,采用发布-订阅模式,支持高吞吐量、低延迟的数据传输。主要用于处理实时数据管道、数据存储和数据分析等大数据应用场景。Kafka采用高效的数据压缩算法,可以在集群中存储大量的数据,并通过分区机制来实现数据的高可靠性和可扩展性。数据管道:在数据采集和分发过程中构建可扩展的流式数据管道,用于实时数据处理和分析。例如,数据收集、日志聚合、网络追踪、用户活动跟踪等。
2024-03-19 17:27:18 1340
原创 ElasticSearch初识
如果是非 master 节点宕机了,那么会由 master 节点,让那个宕机节点上的 primary shard 的身份转移到其他机器上的 replica shard。ES 集群多个节点,会自动选举一个节点为 master 节点,这个 master 节点其实就是干一些管理的工作的,比如维护索引元数据、负责切换 primary shard 和 replica shard 身份等。例如:文档1经过分词,提取到了20个关键词,每个关键词都会记录它在文档中出现的次数和出现的位置。
2024-03-19 11:32:28 407
原创 MongoDB使用笔记
MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C++ 编写的。MongoDB 提供了面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一款非常流行的文档类型数据库。在高负载的情况下,MongoDB 天然支持水平扩展和高可用,可以很方便地添加更多的节点/实例,以保证服务性能和可用性。分片键(Shard Key) 是数据分区的前提, 从而实现数据分发到不同服务器上,减轻服务器的负担。
2024-03-18 18:59:02 1492 2
原创 Java反射机制详解
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。
2024-03-17 20:05:28 412
原创 省市县级联表-数据库创建(四)
上接上个章节INSERT INTO `sys_address` VALUES ('1002500', '红花岗区', NULL, '520302', '1002498', 3);INSERT INTO `sys_address` VALUES ('1002501', '播州区', NULL, '520304', '1002498', 3);INSERT INTO `sys_address` VALUES ('1002502', '赤水市', NULL, '520381', '1002498', 3);
2024-03-07 13:15:08 285
原创 省市县级联表-数据库创建(三)
上接上个章节INSERT INTO `sys_address` VALUES ('1001500', '高唐县', NULL, '371526', '1001492', 3);INSERT INTO `sys_address` VALUES ('1001501', '滨州市', NULL, '371600', '1000014', 2);INSERT INTO `sys_address` VALUES ('1001502', '滨城区', NULL, '371602', '1001501', 3);
2024-03-07 13:11:08 342
原创 省市县级联表-数据库创建(二)
上接上个章节: 市县级联表-数据库创建(一)INSERT INTO `sys_address` VALUES ('1000848', '江阴市', NULL, '320281', '1000842', 3);INSERT INTO `sys_address` VALUES ('1000849', '宜兴市', NULL, '320282', '1000842', 3);INSERT INTO `sys_address` VALUES ('1000850', '徐州市', NULL, '320300',
2024-03-07 12:59:49 373
原创 省市县级联表-数据库创建(一)
创建数据库DROP TABLE IF EXISTS `sys_address`;CREATE TABLE `sys_address` ( `region_id` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '地区主键编号', `region_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT
2024-03-07 11:59:57 460
原创 RBAC模型
RBAC 是基于角色的访问控制(Role-Based Access Control )基础的RBAC模型中,三张基本信息表分别为:用户、角色、权限。表达三张信息表的关系,就需要用户-角色,角色-权限映射表RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现用户和权限的逻辑分离。表的数量和关联关系应结合实际业务场景进行扩展和维护。
2024-03-02 12:05:03 374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人