摘要:
最近接触到公司一个项目,需要将生成的源码动态编译,记录下学习过程。
先贴出官网推荐写法:
JavaCompiler.CompilationTask getTask(Writer out, JavaFileManager fileManager... 阅读原文
2019-05-18 07:36:01 阅读(2148) 评论(0)
摘要:
锁优化
这里的锁优化主要是指 JVM 对 synchronized 的优化。
自旋锁
互斥同步进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。自旋锁的思想是让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状... 阅读原文
2019-05-18 06:00:12 阅读(3152) 评论(0)
摘要:
熔断:类似生活中的保险丝,电流过大就会熔断
降级:类似生活中的旅行,行李箱只有那么大,所以要抛弃一些非必需的物品
熔断降级应用:
某宝双十一商品下单,用户量巨大,于是考虑抛弃相关商品推荐等模块,确保该商品信息和下单功能通畅
熔断和降级的区别以及联系:
1.两者都是为了防止系统崩溃,提高可用性
... 阅读原文
2019-05-18 00:00:02 阅读(2321) 评论(0)
摘要:
一、什么是幻读
在一次事务里面,多次查询之后,查询的结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做 幻行
二、为什么要解决幻读
在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。
三、MySQL 是如何解决幻读的
如果你看到了这篇文章... 阅读原文
2019-05-17 19:44:06 阅读(2023) 评论(0)
摘要:
Channel的注册是在SelectableChannel中定义的:
1 public abstract SelectionKey register(Selector sel, int ops, Object att)
2 throws ClosedChannelException;
3 ... 阅读原文
2019-05-17 19:01:02 阅读(2225) 评论(0)
摘要:
今天开发一个需求,需要在一个旧表中增加一列并且对已经的表中记录初始化新列的值,
由于是一次性的工作,故写了个存储过程来代替代码程序初始化
创建及执行过程记录如下:
MySQL [XXX_YYY]> delimiter $$
MySQL [XXX_YYY]>CREATE PROCEDURE `up... 阅读原文
2019-05-17 18:28:01 阅读(2112) 评论(0)
摘要:
mysql8.0.x以后的版本在连接数据库的时候有些不同。
首先:
Class.forName("com.mysql.cj.jdbc.Driver");
其次:
DriverManager.getConnection("jdbc:mysql://localhost:3306/java?useUni... 阅读原文
2019-05-17 16:40:01 阅读(2520) 评论(0)
摘要:
Dubbo 2.7 版本增加新特性,新系统开始使用 Dubbo 2.7.1 尝鲜新功能。使用过程中不慎踩到这个版本的 Bug。
系统架构
Spring Boot 2.14-Release + Dubbo 2.7.1
现象
Dubbo 服务者启动成功,正常提供服务,消费者调用偶现失败的情况。错误如下图:
可以看出,主... 阅读原文
2019-05-17 14:49:23 阅读(3413) 评论(0)
摘要:
一个类的主要成员时方法,辣么我们通过反射获取到一个类的所有方法信息后,总的寻找一种方式去操作调用这些方法,这样反射才有意义有意思。
Method对象有一个方法invoke。 public Object invoke(Object obj, Object... args) throws IllegalAcc... 阅读原文
2019-05-17 14:21:01 阅读(2231) 评论(0)
摘要:
Java面试题总结(一)---Java基础
1、面向对象的特征有哪些?
答:面向对象的特征主要有以下几个:
1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不需要了解全部的问题,而只是选择其中的一部分,避免考虑一些与目标无关的细节。抽象包括两个方面,一是过程... 阅读原文
2019-05-17 14:19:05 阅读(2244) 评论(0)