java中生成的bridge和syntheic代码
Java中有些方法从字节码来看flags中包含ACC_BRIDGE, ACC_SYNTHETIC,一般是编译为class文件时生成的。这里看看java中有哪些场景会生成 如何查看字节码 Class名包括/不包括.class扩展名都可以 1javap -v -c package.Cl...
java类什么时候初始化
这里的初始化指的是JVM启动时经过加载-链接(验证、准备、解析)后的初始化阶段 具体哪些操作会触发类的初始化呢 当虚拟机启动时,初始化用户指定的主类; 当遇到用以新建目标类实例的 new 指令时,初始化 new 指令的目标类; 当遇到调用静态方法的指令时,初始化该静态方法所在的类; 当遇到访问...
redis笔记
redis读书笔记 缓存和DB不一致一般更新DB、更新缓存方案存在写写并发造成数据不一致的风险(并发时两个线程更新DB、更新缓存顺序不一致)。实际中一般是更新DB、删除缓存的方案。后者也可能存在下面问题。 更新DB成功,删除缓存失败造成数据不一致。可以通过重试解决 删除缓存成功、更新DB失败...
git最佳实践
使用git过程中的一些最佳实践 用git缩写命令把下面配置添加到用户根目录下面的.gitconfig配置文件中 12345[alias] st = status ci = commit br = branch co = checkout 在主分支上合并commit (待验证) 主分...
maven项目构建依赖下载慢问题
从github或者gitee clone下来的项目maven构建时依赖下载慢问题,可以把maven中央参考修改为aliyun 用户根目录下面修改/增加 ~/.m2/settings.xml文件,内容参考如下: 123456789101112131415161718...
spring bean初始化顺序
spring bean初始化顺序(不包括BeanFactory的创建/属性注入准备) Constructor(构造函数) > @PostConstruct > InitializingBean > init-method 代码验证如下。主要注意的是@PostCons...
xxl-job中选择执行节点路由策略分析
读xxl-job源码分析如何选择/路由执行节点。其中一个策略是一致性hash。 分析xxl-job中的一致性hash路由策略还是蛮简单的。根据jobId和执行器地址列表来做路由即可。 执行器地址(ip:port) hash到TreeMap 为了避免增减节点时负载不均衡,加入虚拟节点...
xxl-job中时间调度策略
最新版本xxl-job中调度部分没有采用quartz,而是线程+timewheel 这部分代码位于xxl-job-admin项目中。基本思路是通过ConcurrentHashMap作为timewheel记录每秒处理的jobId列表。 scheduleThread while循环从DB中轮询j...
github clone RPC failed
github clone 异常 error: RPC failed; curl 18 transfer closed with outstanding read data remaining 最近从github中clone项目时经常遇到下面异常。 1234567╰─$ git clone ht...
Java如何隔离Jar包引入的间接依赖
Java如何隔离Jar包引入的间接依赖基础组件/中间件开发中经常以Jar包的形式提供给业务开发人员用。如何避免组件依赖的Jar和业务依赖的Jar包造成冲突呢?Java中的Jar hell是一个伤心的话题。 一 重新打包依赖包,修改包结构名 有工具可以帮助修改包名,参考 jarjar:...