- 博客(8)
- 收藏
- 关注
原创 MySQL中!=、<>和 is not 的区别
MySQL中!=、<>和 is not 的区别数据准备执行表创建并插入示例数据# 创建user表create table user( id int primary key auto_increment comment 'key', name varchar(20) not null default '', jobs varchar(255), comment tinytext, married bool);# 插入示例数
2021-05-22 11:18:38
2172
2
原创 logback spring 实践
这里写自定义目录标题logback spring 实践创建工程配置profile编写启动类配置logback运行程序logback spring 实践日志框架用了很久,但是都没探究过其中的一些细节,今天就从头来学习一下目前springboot中默认继承的日志框架,看看在生产实践中应该如何配置。当然这些都是一点个人的想法,大家有好的意见欢迎评论留言,共同学习。创建工程因为springboot中已经集成了logback,因此不需要添加额外的依赖,这里我创建了一个maven工程,命名为springboot
2021-05-16 13:28:16
255
原创 Java创建自己的jar包
Java使用jdk提供的原生命令进行jar包创建编写示例代码任意目录下新建一个HelloJar.java文件,编写代码public class HelloJar{ public static void main(String[] args){ System.out.println("Hello Jar!"); }}编译源文件在当前源文件路径下执行javac HelloJar命令生成HelloJar.class字节码文件javac 就是java的编译器,jar
2021-05-10 20:15:08
735
原创 链表算法——反转链表
1 反转链表leetcode题目 24. 反转链表定义链表 ListNode.javaclass ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val;
2021-03-03 19:19:46
76
1
原创 mysql悲观锁和乐观锁生产实践
最近,生产系统遇到了一个mysql数据更新的并发问题,业务场景是这样的:逆向订单的操作是通过队列来完成入库的,每一次退货入库都会生成一条消息,然后退款成功后,由一个作业来更新退货主表中的金额, 如果退货金额达到申请退货的金额, 则更新退货单的状态为完成。问题就出在偶尔会出现支付系统返回的统一比退货单的两次退款事件几乎是同时发生的,导致作业在执行更新是产生了并发问题, 最终作业执行完成,而退货表的已退金额却没有完整更新。解决方法:数据库进行更新时对该记录进行加锁。1 悲观锁2 乐观锁...
2020-12-06 15:08:31
138
1
原创 Java多线程之指令重排
为什么需要指令重排通常一条指令的执行可以简单分为以下几个步骤:取指(都取指令) IF译码和去寄存器操作数 ID执行或者有效地址计算 EX存储器访问 MEM写回 WB同样的,汇编指令也不是一步就能执行完的,CPU实际工作时,需要分为多个步骤依次执行。由于每个步骤都可能使用不同的硬件完成,因此聪明的工程师们发明了流水线技术来执行指令,如下图所示:CPU实际执行过程中,当执行到指令2时,指令1还没开始执行,只是刚刚完成了取值操作而已,这样的好处是加入每个指令都需要执行1ms,那么指令2的执
2020-10-11 16:04:13
804
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人