- 博客(41)
- 资源 (39)
- 收藏
- 关注
原创 数据脱敏的方法
数据脱敏(Data Masking)是指通过对敏感数据进行变形、替换、加密等处理,使其在保持可用性的同时,避免泄露真实信息。数据脱敏广泛应用于数据共享、测试、开发、分析等场景,是数据安全的重要组成部分。
2025-02-10 15:22:42
596
原创 MyBatis MetaObjectHandler:动态字段处理与对象元数据处理
通过扩展MetaObjectHandler,你可以实现动态字段处理,根据运行时条件动态设置字段值。这种方式非常适合处理创建时间、更新时间、操作人等通用字段,同时也可以根据业务需求灵活扩展。
2025-02-08 16:54:41
321
原创 文件上传到腾讯云存储、签名及设置过期时间
将文件上传到腾讯云对象存储(COS,Cloud Object Storage)可以通过腾讯云提供的 SDK 实现。以下是详细的步骤和示例代码,帮助您完成文件上传操作。创建一个存储桶(Bucket),并获取存储桶的名称和所属地域(Region)。如果文件较大,建议使用分块上传(SDK 也支持分块上传 API)。使用 SDK 提供的 API 上传文件到腾讯云 COS。在项目中引入腾讯云 COS 的 Java SDK。如果需要公开访问,可以设置文件的访问权限为公共读。:文件在 COS 上的存储路径,例如。
2025-02-06 16:01:31
716
原创 DeepSeek和ChatGPT的对比
举个例子,一个同时精通物理和化学的双料专家,比一个物理学家和一个化学家合作的价值大太多,这并非是一加一等于二的问题,同时精通多领域的人可以敏锐且完整的察觉到行业之间的联系,其内部更加的圆融合一,擅长跨领域结合创新,所以精通几乎所有领域的单体AGI,其上限显然是极高的。DeepSeek 和 ChatGPT 是两种不同的自然语言处理(NLP)模型架构,尽管它们都基于 Transformer 架构,但在设计目标、训练方法、应用场景等方面存在一些区别。使用特定领域的高质量数据(如医学、法律、金融等)进行训练。
2025-02-06 14:01:38
15232
4
原创 [JVM] JVM内存模型详解
JVM是Java Virtual Machine(Java虚拟机)的缩写,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行,这也是Java能够“一次编译,到处运行”的原因。
2023-08-16 17:28:18
139
原创 JDK1.8 LinkedHashMap源码分析
HashMap中元素插入时无序的,为了让遍历顺序和插入顺序一致,可以使用LinkedHashMap。
2023-07-31 18:00:07
170
原创 JDK1.8 HashTable源码分析
本文基于JDK1.8对HashTable源码分析。HashTable和HashMap一样,也是基于哈希表存储数据,HashTable底层是基于数组+链表方式存储,而HashMap是基于数组+链表或者红黑树的方式存储。HashTable是线程安全的,底层使用synchronized同步锁实现确保线程安全,HashMap非线程安全。
2023-07-31 11:25:23
109
原创 JDK1.8 CopyOnWriteArrayList源码分析
JDK1.8 CopyOnWriteArrayList源码解析,使用ReentrantLock加锁,主要思想“写时复制”
2023-07-28 12:29:24
115
原创 Vector源码解析
本文是基于JDK1.8源码分析。Vector和ArrayList非常类似,继承相同的类,实现相同的接口,就连方法实现也基本类似。
2023-07-27 10:41:52
73
原创 HashSet源码解析
本文基于JDK1.8对HaseSet源码分析HashSet类层级关系结构图可以看到HashSet 实现了Set接口,那为什么叫HashSet?因为HashSet内部采用HashMap存储数据。由于HashMap的key允许null值,key不允许重复,所以HashSet可以存储null值,但是元素不允许重复,和HashMap一样,也线程不安全。可以看到创建HashSet时,本质就是初始化HashMap。add(E e) 添加指定元素remove(Object o) 删除指定元素。
2023-07-26 19:27:11
79
原创 ArrayList源码解析
ArrayList采用数组存储数据,允许重复数据和null值。ArrayList大体和Vector类似,最大的区别是ArrayList非线程安全,Vector线程安全。
2023-07-26 17:25:03
85
原创 使用Docker安装RocketMQ
docker/rocketmq/data/namesrv/store目录。/docker/rocketmq/data/namesrv/logs目录。/docker/rocketmq/data/broker/store目录。/docker/rocketmq/data/broker/logs目录。把容器内的/root/store数据存储目录挂载到宿主机的。把容器内的/root/store数据存储目录挂载到宿主机的。把容器内的/root/logs日志目录挂载到宿主机的。启动mqnamesrv服务。
2023-07-14 11:34:06
284
1
原创 mysql 数据库事务隔离级别
所谓脏读就是一个事务 A 读取另一个事务 B 修改但尚未提交的数据, 并在此基础上操作,而事务 B 又执行事务回滚(也就是撤销了事务), 因为这个数据是还没有提交的数据, 那么事务A读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。所谓数据库访问的并发性问题是指多个事务可以同时访问数据库中的数据,而当多个事务在数据库中并发执行(同时执行)时,数据的一致性可能出现问题,从而导致数据出现问题。事务A两次读此数据之间,事务B对数据进行修改,那么事务A读到的数据是不一样的,因此称为是不可重复读。
2023-06-16 14:00:14
87
1
原创 编译openjdk8源码
(4)特别说明:yum取的源可能是CentOS-Base.repo里面的配置,也可能取的是单个配置文件里面的,比如AppStream的源可能取CentOS-AppStream.repo里面的配置,也可能取CentOS-Base.repo的配置,这两者可能会冲突,也可能不会冲突,不冲突报错可不理,若是报错,建议先重命名备份CentOS-AppStream.repo文件。即可(也可以不运行,若是执行完步骤2后,还出现报错的情况,可再补充执行该步骤)(2)执行切换命令,两个命令二选一,这里选的是。
2023-05-06 13:52:15
335
1
原创 Redis实现分布式锁
在使用 Lua 脚本执行 Redis 操作时,为了避免多次编译 Lua 脚本而降低性能,可以将 Lua 脚本的 SHA1 值缓存起来,然后使用 EVALSHA 命令来执行缓存的 Lua 脚本,这样可以提高 Redis 操作的性能。在上述代码中,LUA_LOCK_SCRIPT 和 LUA_UNLOCK_SCRIPT 分别是获取锁和释放锁的 Lua 脚本。getLock() 方法使用 RedisTemplate 的 execute() 方法执行获取锁的 Lua 脚本;
2023-05-06 11:21:31
493
1
原创 PJSIP集成到Android项目的历程
刚进公司时,接手了一个项目。项目中有一个模块就是PJSIP,遇到的问题就是稳定性差,莫名的Crash。 大家可能都会有这种经验,当点击某一个按钮,导致程序崩溃,遇到这种问题通常容易解决。解决方式就是查看这个点击事件具体的操作,然后对操作进行调试就能很快的发现并解决问题。但是遇到这种稳定性的问题,并且设计到JNI,就需要大量的测试,来定位问题,再考虑解决办法。
2017-05-24 15:47:01
2581
原创 Volley小记
阅读Volley源码快有一周时间了,从最初的不知从何看起,到后来的大致了解,这是一个漫长的过程。下面就对观看心得做一个小结,以后会有更多的需要阅读源码,希望这次积累的经验对今后阅读源码、技术文档产生帮助。 在查看框架的源码时,最重要的是先找准入口,就像一个迷宫,如果入口都找不到,根本就无法找到正确的道路,通过迷宫。而寻找入口的方法很简单,就是我们在使用这个框架时,第一行写的代码,这就是我们
2017-01-13 14:19:58
256
RxJavaAndRetrofit
2017-01-05
技术人员的人事面试
2013-01-25
基于SSH的注册登录
2013-01-25
eclipse Dark Juno
2017-05-27
AIDL客户端和服务端Demo
2017-01-04
RxJavaDemo
2017-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人