摘要:
由于confluence 低版本的破解方式都是通过 confluence_keygen.jar 包方式生成破解码,然后将生成的jar包替换atlassian-extras-decoder-v2-3.4.1,但是在高版本(eg:7.19)的 该jar包版本为atlassian-extras-decod 阅读全文
摘要:
假设多级json的层级不定,而且json的key不确定,那么就不能用Object.key的方式去遍历获取key-value,那么我们可以换一种思路,使用递归算法来遍历json的多个节点,来获取每个节点的key-value,唯一的难点就是判断某个节点下是否是一个新的json对象,以下是自己写的demo 阅读全文
摘要:
1. 使用数据库、消息组件、缓存组件优雅处理双写一致性 大致思路还是采用先更新数据,然后删除缓存的思路,只是在这之前需要做一步准备工作,需要订阅数据库的执行日志,比如mysql的binlog日志,这样监听到有发生数据变更的情况,去同步删除缓存,实现解耦,具体参考 https://blog.csdn. 阅读全文
摘要:
有代码洁癖的小伙伴看过来~ 平时我们格式化代码时,代码时这样式儿的,代码中的参数和后面的说明中间是有一个空格 先看看修改后的效果 想要修改的小伙伴可以参考后面的步骤, 1. File 》settings 》Editor 》Code Style 》java 》java doc 选择将所有参数对齐,步骤 阅读全文
摘要:
1. String 和new String 在讲String 和 new String 的区别之前先看一段代码: String a = "ss"; String b = "ss"; String c = new String("ss"); System.out.println(a==c); Syst 阅读全文
摘要:
使用 processOn 画的java 集合图谱,应付面试应该可以了 阅读全文
摘要:
推荐这篇帖子,讲得不错~ https://blog.csdn.net/liangyihuai/article/details/83106584 阅读全文
摘要:
1. 在应用层面来讲 a. volatile是线程同步的轻量级实现,所以volatile的性能要比synchronize好; volatile只能用于修饰变量,synchronize可以用于修饰方法、代码块。随着jdk技术的发展,synchronize在执行效率上会得到较大提升,所以synchron 阅读全文
摘要:
简单往往是最重要的,在刚刚学java的时候老师会给我们先讲这8种基本数据类型,今天再来做一个温习,【本文大部分参考了 https://zhuanlan.zhihu.com/p/25439066,在上面做了一点补充】 根据java的数据类型分类 1、整型 byte 、short 、int 、long 阅读全文
摘要:
1. redis 能实现分布式锁的前提 a. redis 是基于内存的,内存的读写速度是很快的 b. redis 使用多路复用的技术,可以处理并发的连接 c. redis 是单线程的,省去了线程之间的上下文切换的时间 2. redis 实现分布式锁的方法 原理很复杂使用简单 1. 在redis中 , 阅读全文