
Java开发
文章平均质量分 65
java相关积累(源码、踩坑、问题排查、新技术尝鲜)
是曹大大
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【JVM调优】JVM高频参数和最优实践
JVM调优高频参数、最佳实践原创 2024-10-07 11:23:32 · 1145 阅读 · 0 评论 -
【RocketMQ】RocketMQ的特性(顺序、事务等)
RocketMQ 提供了一系列特殊功能,如顺序消息、事务消息、延迟消息、消息回溯、死信队列、消息追踪等,来支持高复杂度的分布式系统需求。内容原创、有问题欢迎大家交流指正,转载注明原处~原创 2024-10-03 21:00:46 · 923 阅读 · 0 评论 -
【RocketMQ】初识
RocketMQ基本概念、浅层原理原创 2024-09-29 15:06:58 · 1119 阅读 · 0 评论 -
【RocketMQ】从 文件/数据结构 视角理解RocketMQ原理
一文总结RocketMQ各个模块之间的底层文件和数据结构,附带一丢丢原理的浅层解析原创 2024-09-28 22:00:28 · 828 阅读 · 0 评论 -
【开发踩坑】windows查看jvm gc信息
EZ。原创 2024-08-06 13:02:39 · 446 阅读 · 0 评论 -
【开发踩坑】 MySQL不支持特殊字符(表情)插入问题
参考:https://zhuanlan.zhihu.com/p/351071361?服务器的配置本身就是 utf8mb4,所以是没问题的;字符占用4字节,老的utf8是不支持的,只有mb4才支持。初步觉得是编码问题(utf8 — utf8mb4)所以问题变成了,为什么这里的设置失效了;connector版本:6.0.6。这个字符一看就很优秀啊。test验证:插入成功。原创 2024-07-19 11:45:43 · 812 阅读 · 0 评论 -
【开发踩坑】生僻字插入MySQL失败
如果是超过 4 个字节,那么就需要使用 utf8mb4 (max byte 4 ):加强版的 utf8 来存储。结论:MySQL编码存在字段级别的设置,生僻字需要字段级别的编码支持。总而言之,utf-8 只支持 3 个字节的字符;设置answer字段值为 “𬱖”出现错误。表级别的设置更新了,但是字段还没有更新;4 字节,显然 utf8 是不满足的。此时更新字段级别的编码类型:解决。alt 之后还是报错;原创 2024-07-19 11:35:07 · 776 阅读 · 0 评论 -
【开发踩坑】使用PageHelper工具正常sql后面多无关语句
后面凭空多出了一个 LIMIT语句。原创 2024-07-18 09:49:33 · 417 阅读 · 0 评论 -
【开发踩坑】@Builder注解下字段默认值设置失败
那么如果走的是Builder().build(),这里会直接pass属性设置,build之后返回的是全空的属性的对象,默认值设置也就失效了;加入 @Default 注解的属性如果在build阶段没有明确set值,那么就会取默认值;这里的ifEvaluate属性默认值设置失败,属性取出为空;使用@Builder注解并对一个属性设置了默认值。运行时设置属性的值(如果没有传入,则不会设置);本质是AOP注入一个内部类:TBuilder。原创 2024-07-18 09:41:39 · 647 阅读 · 0 评论 -
【踩坑日记】一次merge污染引发的血案
团队开发中你都踩过什么坑?原创 2024-07-18 09:36:24 · 316 阅读 · 0 评论 -
【源码剖析】PageHelper 源码剖析 + 踩坑分析
ThreadLocal源码剖析如果分页信息写入ThreadLocal 之后,语句并没有执行,那么本配置会被带到下一个线程执行的请求中如果这个中间发生异常,那么已经写入的 ThreadLocal 信息不会被自动清理的;此时,当前线程被分配进行下一次请求;page 的参数会被带到下一个请求中;执行 SQL;出错;原创 2024-07-17 15:38:20 · 1188 阅读 · 0 评论 -
【源码剖析】ThreadLocal 源码剖析
当某个 ThreadLocal 已经失效,按照常理应该被回收的时候(这个时候,可能有多个线程持有ThreadLocalMap,并在内部的 Entry 中持有 ThreadLocal 对象,而这个对象对于线程而言已经是没用的了);此时如果这里对 ThreadLocal 的引用是强引用,那么 JVM 判断不应该回收,造成内存泄露;Entry 对所持有的对象(ThreadLocal 对象)的引用方式是弱引用,jvm 进行 GC 的时候不会考虑弱引用的引用;这里提供一个延迟计算、动态创建对象的函数式接口;原创 2024-07-17 15:26:08 · 465 阅读 · 0 评论 -
【源码剖析】Optional 工具类源码剖析
简单来说就是一个简单的细粒度安全编程工具类。原创 2024-07-17 15:20:40 · 256 阅读 · 0 评论 -
Java21新特性之:Pattern Matching for switch(switch )
具体来说,它利用了Java中的类型参数(type parameters)和类型推断(type inference)机制。switch泛型的原理是通过在编译时确定泛型类型,并在运行时根据实际类型执行相应的代码。这里只能手动判断对象类型、之后进行相应的操作;这里直接可以使用switch语句,进行转换;switch语句支持泛型了!原创 2024-07-17 15:13:56 · 292 阅读 · 0 评论 -
Java 21 新特性尝鲜
java21新特性尝鲜啦原创 2024-07-17 15:11:28 · 197 阅读 · 0 评论 -
java lambda处理collection大合集
LAMDA表达式(实用篇)List相关的转换List<对象> 提取某个属性,放入新的List/SetList<对象> 生成按属性分类的MapList<对象> 生成(属性1 -> 属性2)的映射MapList<对象> 生成(属性1 -> 对象)的映射MapMapSet先看数据结构://对象类Apple定义class Apple{ private String name; private double price;}List相关的转换原创 2021-04-16 14:27:19 · 451 阅读 · 0 评论 -
springboot 常见报错分析s
springboot 常见报错分析(持续更新,欢迎补充)数据库相关数据库相关**java.sql.SQLException: The server time zone value ' 字符串' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property)原创 2020-06-02 03:59:10 · 229 阅读 · 0 评论 -
关于java foreach循环的一个小问题
for循环的原理(待办)缘起缘起今天遇到这么一个问题:char[] a = new char[2];for(char i : a){ i = '0';}for(char i : a){ System.out.print(i);}结果发现,啥都没打印出来 ????不知道是什么原理之前不要随便用啊!研究一下再上答案...原创 2020-05-16 12:42:37 · 251 阅读 · 0 评论 -
双队列实现栈
两个队列实现栈原理分析代码原理分析栈:先进后出队列:先进先出两个队列结构:queue1、queue2,queue1用作默认入栈入口push:开始,判断 queue2是否为空,true则直接将数据放入queue1(默认入栈容器)中,false则放入queue2中pop:开始,判断queue1、queue2是否都为空,true则返回null,false则找到不为空的那个(一般情况下一个为空,一个不为空)。假设queue2为空,queue1不为空,此时,将queue1中元素移向queue2,直到 q原创 2020-05-11 12:41:03 · 671 阅读 · 0 评论 -
双栈实现队列(改进版)
两个栈实现队列(改良版)原理分析代码原理分析栈:先进后出;队列:先进先出现在初始化两个栈 stack1、stack2,一个进,一个出进队:直接压入 stack1出队:最开始,stack2 里面是没有东西的,那么这时候就把 stack1 里面的所有元素依次 pop 出,并 push 入 stack1; 全部转移之后,处于 stack2 栈顶的就是最早进入 stack1 的元素,这时,对 stack2 进行 pop, 出去的就是最早进入队列(双栈)的元素;第一次之后,stack2 中已经有元素,这时原创 2020-05-11 06:41:25 · 372 阅读 · 0 评论 -
Java Factory概念学习第四课(BeanFactory)
Java Factory概念学习第四课(BeanFactory)beanFactorybeanFactory今天引入Spring自带的factory即BeanFactory先模拟beanFactory的工作原理: public interface Moveable { void run(); }public class Car implements Movea...原创 2019-02-27 22:22:05 · 253 阅读 · 0 评论 -
Java Factory概念学习第三课(抽象factory)
Java Factory概念学习第三课(抽象factory)系列物品生产系列物品生产接上一篇交通工具的实例化的内容,现在考虑另一种情况,即Test不仅仅需要交通工具,还需要武器、食物等等。那么先写另外两个类:public class M416 { public void shoot() { System.out.println("开枪哒哒哒"); }}public ...原创 2019-02-27 22:08:53 · 317 阅读 · 0 评论 -
Java Factory概念学习第二课 (一般factory)
**Java Factory概念学习第二课 (一般factory)**任意定制交通工具上篇说到了实例化的控制,即控制对象的实例化个数,单例和多例。接下来慢慢过渡到工厂的概念。先来考虑一下新的需求:Test类不仅仅需要汽车,还需要火车、飞机甚至宇宙飞船,那么怎么来方便的添加呢?这个好说,写一个新的类Train:class Train(){ public void run...原创 2019-02-27 17:20:24 · 878 阅读 · 0 评论 -
Java Factory概念学习第一课 (单例、多例)
Java Factory概念学习第一课 (单例、多例)单例的概念多例的概念单例的概念对于一个Car类:public class Car{ public void run(){ System.out.println("汽车突突突地跑"); }}另一个类来获得Car,也就是实例化这个Car,:public class Test{ publ...原创 2019-02-27 17:04:09 · 313 阅读 · 0 评论