java
若等无在
这个作者很懒,什么都没留下…
展开
-
【设计模式:行为型】装饰者模式
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。适用场景:扩展一个类的功能或者给一个类添加附加职责给一个对象动态的添加功能,或动态撤销功能。下面我们通过一个案例来了解装饰者模式创建一个抽象类——饼public abstract class Bing { public String desc="a"; public String getDesc(){ return desc; } public void setDesc原创 2020-09-21 19:10:50 · 149 阅读 · 0 评论 -
线程安全的Hashtable, ConcurrentHashMap 的 key和value 为什么不能为null?
线程安全时不能为Null的原因:线程安全代表集合会在多线程场景下使用。假设使用map.get(key1)时返回为null。会有两种可能:1.key1不存在,所以返回为null;2.key1对应的值为null。对于单线程的HashMap,可以通过contains(key1)来检查是哪种情况;多线程场景下:假设concurrentHashMap允许存放值为null的value。有A、B两个线程。线程A调用concurrentHashMap.get(key1)方法,返回为null我们用contai原创 2020-08-20 17:01:29 · 1519 阅读 · 5 评论 -
什么是服务器的“HA部署”?“HA”是什么的简称?
HA是High Availability的简称。国内译成双机热备部署方案。 这个顾名思义就是:高可用性。 意思是为了减少系统停工时间,最大限度地保持服务的高度可用性。原创 2020-08-17 19:17:57 · 4853 阅读 · 0 评论 -
冒烟测试
1.冒烟测试是什么?针对每个版本或每次需求变更后,在正式测试前,对产品或系统的一次简单的验证性测试。2.冒烟测试的目的为正式测试前,验证是否产品或系统的主要需求或预置条件是否存在bug。3.冒烟测试怎么做?最好的方法,设计出自动化测试脚本,每一次版本更新后都可以去执行脚本验证一下。...原创 2020-08-17 16:50:26 · 203 阅读 · 0 评论 -
分布式事务的解决方案,mq消息队列如何保证数据一致性
分布式事务用户在支付完成后会调用选课表添加学生选课记录。选课记录添加完成学习即可在线开始学习。如果更新支付表成功,远程调用添加选课成功(选课数据库commit成功),最后更新支付表commit失败,此时出现操作不一致。上边的问题涉及到分布式事务控制。1、什么是分布式系统?部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完原创 2020-08-10 19:30:42 · 5067 阅读 · 1 评论 -
Variable used in lambda expression should be final or effectively final jdk1.8 lambda表达式外部变量为final
lambda 表达式只能引用标记了 final 的外层局部变量,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。原因:在lambda表达式中对变量的操作都是基于原变量的副本,不会影响到原变量的值。假定没有要求lambda表达式外部变量为final修饰,那么开发者会误以为外部变量的值能够在lambda表达式中被改变,而这实际是不可能的,所以要求外部变量为final是在编译期以强制手段确保用户不会在lambda表达式中做修改原变量值的操作。...原创 2020-08-10 19:18:42 · 1533 阅读 · 0 评论 -
spring Date JPA进行增删改时不加事务,会报错 - cannot reliably process ‘remove‘ call]
int deleteById(Integer id);我用的 jpa 报错最后发现没有加 @Transactional正确写法:@Transactionalint deleteById(Integer id);原创 2020-08-08 14:12:55 · 1158 阅读 · 0 评论 -
@Value注入不生效,@Value注入静态变量
当使用@Value注入配置参数时报错,报错原因不一定是@Value注入失败。可能是用到配置参数的地方需要的是静态配置参数。所以解决办法是改成get()获取。改正前private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);改正后private Auth getAuth() { return Auth.create(ACCESS_KEY, SECRET_KEY);// 密钥 }另一个问题:sp原创 2020-07-27 16:07:50 · 2171 阅读 · 0 评论