java之枚举的最佳实践

背景场景是这样的,客户端要发送JSON数据到达服务端解析,由于客户端的不同版本更新,打过来的数据有差异,服务端要兼容这种差异对不同的处理这些数据,因为客户端升级是由用户决定的。思路实现的方式肯定很多种,恰好学到《effective java》中的枚举,枚举可以加一个方法,我们这个场景每一种日志格式就
2021年03月31日 536次浏览

firewalld防火墙命令

1、firewalld的基本使用启动: systemctl start firewalld查看状态: systemctl status firewalld禁用,禁止开机启动: systemctl disable firewalld停止运行: systemctl stop firewalld2.配置f
2021年03月08日 517次浏览

分布式事务之2PC

两阶段提交(2PC) 是 Oracle Tuxedo 系统提出的 XA 分布式事务协议的其中一种实现方式。一、关于 XA 分布式事务协议XA 分布式协议主要有两个角色:事务管理器(协调者)事务管理器作为全局事务的协调管理者,与每个资源管理器通信,完成分布式事务的管理。资源管理器 (参与者)资源管理器
2021年02月25日 531次浏览

dubbo之统一异常处理

难点利用AOP集中处理,将目标包,进行包裹处理,将异常try捕获之后,做统一结果集封装对于,用事务的方法,需单拎出来处理,由于事务只会对RunTimeException生效,Exception不对事务生效,需将异常捕获,转化为RunTimeException来触发事务回滚例子/** * 服务层异常处
2021年01月20日 587次浏览

java知识点扫盲

什么是Dubbo的泛化调用是什么?答:一般调用,Dubbo必须依赖服务端提供的api包,如果服务端升级了api包,客户端也必须跟着升级。泛化接口调用方式主要用于客户端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示。某种原因没有服务接口,而要发起服务的调用,就需
2021年01月20日 498次浏览

多线程编程之synchronized锁的升级优化

synchronized锁升级优化在JDK1.6以前,使用synchronized就只有一种方式即重量级锁,而在JDK1.6以后,引入了偏向锁,轻量级锁,重量级锁,来减少竞争带来的上下文切换。Java对象头每个对象都拥有对象头,对象头由Mark World ,指向类的指针,以及数组长度三部分组成Ma
2020年12月12日 380次浏览

源码分析之HashMap

Java 8 中 HashMap 的实现使用了很多位操作来进行优化。本文将详细介绍每种位操作优化的原理及作用。Java 中的位运算位操作包含:与、或、非、异或移位操作包含:左移、右移、无符号右移HashMap 中的位运算计算哈希桶索引hashCode 方法优化指定初始化容量扩容方法里的位运算总结回顾
2020年12月12日 400次浏览

java之四种动态代理的实现

动态代理说白了还是为了最终生成新的代理类,把原先的老类包裹一层,生成新的类。CGLAB代理类核心,hadle类package proxy; import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer;import net.s
2020年12月09日 555次浏览

java编程小技巧

java判断字符串是否是数字public static boolean isNumeric(String str) {String bigStr;try {bigStr = new BigDecimal(str).toString();} catch (Exception e) {return fa
2020年12月04日 442次浏览

java之sql优化集合

1.大分页查询,先查询id,在查具体数据,减少回表次数 select id from xxx; select * from xxx where id in (上面语句结果); 2.多表left join查询 多表left join 查询1 原始sql select a.*,b.* from xxx as a left join yyy as b on a.id=b.aid where a.type=1 可先子查询a表,用子表再left join b表 减少笛卡尔积次数
2020年12月03日 1,064次浏览