Java开发
让一切
这个作者很懒,什么都没留下…
展开
-
Springboot+WebSocket使用报错IllegalStateException及解决方案
这个错误表明在尝试通过 WebSocket 发送文本消息时,WebSocket 连接的状态处于状态,而该状态是不允许调用方法的。这通常发生在。简单说是因为两个不同线程同时调用了sendMessage这个方法,也就是同一时刻向socket写消息冲突了。原创 2024-01-26 14:49:43 · 408 阅读 · 1 评论 -
阿里开源中间件Canal两个重要文件意义及项目使用
这个文件是会缓存数据库结构(补充:看网上帖子,还会缓存数据库),当你在配置文件中开启了tsdb这个选项(默认是开启的),如果你后面变更了表结构,h2数据库对应的缓存是不会更新的,也就是这个文件不会更新,这个时候一般会爆如下异常。这个文件是用于存储canal读取mysql中binlog的偏移量,存储的是json格式,如果服务器突然挂掉,此时这个文件里面的内容可能就会有问题,,重启的时候由于canal会去读取这个文件的内容找到上一次binlog的位置,但是这个文件内容又有问题,此时就会报错。原创 2024-01-26 14:47:24 · 216 阅读 · 1 评论 -
单例模式-double check问题
需要注意的是,虽然 Double-Checked Locking 在一些场景下能够提高性能,但在某些特定情况下可能会引入一些问题,例如指令重排序等,因此在现代 Java 中,更推荐使用基于类加载机制的静态内部类实现的懒汉式单例模式或者直接使用饿汉式单例模式,它们更为简单、安全,并且在大多数情况下性能表现也很好。饿汉式单例模式的优点是实现简单,线程安全,缺点是在应用启动时就创建实例,如果该实例在后续的程序执行中没有被使用,可能会造成资源浪费。饿汉式单例模式在类加载时就创建了实例,因此不存在多线程竞争的问题。原创 2024-01-26 14:30:25 · 484 阅读 · 1 评论 -
Java Map中使用get()调用不存在的key会发生什么?
结论:map中调用get时,没有key但是不会报错,会返回null值。原创 2023-04-26 11:16:47 · 3466 阅读 · 0 评论