随笔分类 - JAVA
摘要:ABA问题是并发编程中的一个经典问题,主要涉及多线程和共享变量的操作。 在多线程环境中,如果多个线程对同一个共享变量进行读取和修改操作,可能会导致ABA问题。ABA问题指的是以下情况: 线程A读取共享变量的值为A。 线程A被调度出去,线程B进入执行,并将共享变量的值修改为B。 线程B被调度出去,线程
阅读全文
摘要:前言 (51条消息) Java生成条形码code128_明明如月学长的博客-CSDN博客_code128bean怎么谁知两侧留白 1 public class BarcodeUtil { 2 3 4 public static File generateFile(String msg, String
阅读全文
摘要:前言 有时候图片会使用 Base64 编码来处理,然后再传到前端 img 标签的 src 属性里展示,这里记录遇到的一个问题,就是使用谷歌邮箱来打开图片,使用了 Base64 编码处理的图片是展示不出来的,不是找不到,是直接 src 属性都会不见了(可以在浏览器上按F12打开控制台查看),经过多次测
阅读全文
摘要:前言 首先我们得了解什么是Oauth2.0,简单来说Oauth2.0它是一个授权协议。我们可能会听说过,使用Oauth2.0来实现单点登录SSO,以及第三方登录。那个什么是授权? 举个通俗易懂的例子,就是第三方人员A要想进入B公司的大厦进行业务交流的时候,因为A并不是B公司的员工,出于安全的缘故,所
阅读全文
摘要:前言 KISS(Keep It Simple Stupid) 如何把Kiss原则应用到工作中? 要谦虚,不要认为自己是个天才,这是你第一个误解。只有谦虚了,你才能真正达到超级天才的水平,即使不行,who cares!你的代码那么stupid simple,所以你不需要是个天才! 将你的任务分解为4-
阅读全文
摘要:日常开发中,我们都会用到线程池,一般会用execute()和submit()方法提交任务。但是当你用过CompletableFuture之后,就会发现以前的线程池处理任务有多难用,功能有多简陋,CompletableFuture又是多么简洁优雅。 1. 使用线程池处理任务 import java.u
阅读全文
摘要:案例背景 在互联网分布式场景中,原本一个系统被拆分成多个子系统,要想完成一次写入操作,你需要同时协调多个系统,这就带来了分布式事务的问题(分布式事务是指:一次大的操作由多个小操作组成,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败)。那怎么设计才能实现系统之
阅读全文
摘要:一、业务背景 有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。 二、分析流程 使用 Redis 作为分布式锁,将锁的状态放到 Redis 统一维护,解决集群中单机 JVM 信息不互通的问题,规定操作顺序,保护用户的数据正确。 梳理设
阅读全文
摘要:1、使用自定义BOM来维护第三方依赖 1 <dependencyManagement> 2 <dependencies> 3 <dependency> 4 <groupId>io.spring.platform</groupId> 5 <artifactId>platform-bom</artifa
阅读全文
摘要:转载于: Java Bean 转 Map 的巨坑,注意了!!! (qq.com)
阅读全文
摘要:JAVA基础 1、自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。 2、前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。 3、后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者
阅读全文
摘要:也就是说 javac 默认按照本机语言(GBK) 编译代码 而我们的代码是 utf-8 编码,所以会报错 解决方法:运行是指定编码格式 javac -encoding UTF-8 xxx.java 注意事项GBK应该是属于ANSI之中的,在ANSI的国际通用集,GBK是专门来解决中文编码的,是双字节
阅读全文