摘要:ArrayList<String> arrayList = new ArrayList<>(2); arrayList.add("1"); // minCapacity = 1, elementDataLength = 2, 不需要增加capacity; arrayList.add("2"); // 阅读全文
posted @ 2020-07-27 10:46 FrankYou 阅读(90) 评论(0) 推荐(0) 编辑
摘要:import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Func 阅读全文
posted @ 2020-07-16 09:49 FrankYou 阅读(131) 评论(0) 推荐(0) 编辑
摘要:private static class ParameterizedTypeTest<T extends Number> { private List<T> list = null; public static void main(String[] args) throws NoSuchFieldE 阅读全文
posted @ 2020-07-16 08:59 FrankYou 阅读(107) 评论(0) 推荐(0) 编辑
摘要:JMockit is a Java toolkit for automated developer testing.It contains APIs for the creation of the objects to be tested, for mocking dependencies, and 阅读全文
posted @ 2020-05-13 17:44 FrankYou 阅读(320) 评论(1) 推荐(0) 编辑
摘要:工作层次不同:交换机主要工作在数据链路层(第二层)路由器工作在网络层(第三层)。转发依据不同:交换机转发所依据的对象时:MAC地址。(物理地址)路由转发所依据的对象是:IP地址。(网络地址)主要功能不同:交换机主要用于组建局域网,而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入Inter 阅读全文
posted @ 2020-05-11 12:28 FrankYou 阅读(75) 评论(0) 推荐(0) 编辑
摘要:一、事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。 ①编程式事务:是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: try { //TODO something transactionManager.c 阅读全文
posted @ 2020-04-13 15:05 FrankYou 阅读(1054) 评论(0) 推荐(0) 编辑
摘要:这篇文章介绍 Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture。API通过例子的方式演示了它的行为,每个例子演示一到两个行为。 既然CompletableFuture类实现了CompletionStage接口,首先我们需要理解这个接口的契 阅读全文
posted @ 2020-04-01 12:01 FrankYou 阅读(221) 评论(0) 推荐(0) 编辑
摘要:前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。 1、查询SQL尽量不要使用select *,而是select具体字段。 反例子: select * from employee; 正例子: select id,name from empl 阅读全文
posted @ 2020-03-30 12:47 FrankYou 阅读(221) 评论(0) 推荐(1) 编辑
摘要:作者:crossoverJie链接:https://juejin.im/post/5b67902f6fb9a04fc67c1a24来源:掘金 前言 记得前段时间我们生产上的一个网关出现了故障。 这个网关逻辑非常简单,就是接收客户端的请求然后解析报文最后发送短信。 但这个请求并不是常见的 HTTP , 阅读全文
posted @ 2020-01-10 16:06 FrankYou 阅读(107) 评论(0) 推荐(0) 编辑
摘要:dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交 阅读全文
posted @ 2020-01-10 10:13 FrankYou 阅读(409) 评论(0) 推荐(0) 编辑
摘要:package netty; import static io.netty.handler.codec.http.HttpHeaderNames.CONNECTION; import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH; import static io.netty.handler.codec.http 阅读全文
posted @ 2020-01-03 11:37 FrankYou 阅读(395) 评论(0) 推荐(0) 编辑
摘要:public abstract class AbstractUnSafeCas<T> { @SuppressWarnings("unused") private volatile Object value; private static final AtomicHelper ATOMIC_HELPER; private final CountDownLatch countDownLatch = n 阅读全文
posted @ 2019-12-16 12:06 FrankYou 阅读(74) 评论(0) 推荐(0) 编辑
摘要:import java.util.Arrays; import org.apache.commons.lang.ArrayUtils; public class Test { public static void main(String[] args) { int[] sortedArrays = quickSort(new int[]{3, 5, 1, 2}); S... 阅读全文
posted @ 2019-11-18 16:59 FrankYou 阅读(100) 评论(0) 推荐(0) 编辑
摘要:CGLIB代理类,用CGLIB来实现一个代理类。大致原理描述如下: 1、使用Enhancer类来生成一个继续于被代理类的子类,此子类会重写被代理类(父类)中所有的非final的public方法; 2、当调用代理类的某个方法时实际上通过一个MethodInterceptor委托来间接调用的; 3、Me 阅读全文
posted @ 2019-10-15 17:51 FrankYou 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1、mysql中InnoDB引擎中页的概念 2、mysql索引详解--如何从磁盘中读取索引文件 阅读全文
posted @ 2019-10-12 15:41 FrankYou 阅读(67) 评论(0) 推荐(0) 编辑
摘要:一条SQL语句执行得很慢的原因有哪些 https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485185&idx=1&sn=66ef08b4ab6af5757792223a83fc0d45&chksm=cea248caf9d5c1dc72 阅读全文
posted @ 2019-10-12 12:12 FrankYou 阅读(501) 评论(0) 推荐(0) 编辑
摘要:1、对于阻塞模式下,调用connect()进行连接操作时,会一直阻塞到连接建立完成(无连接异常的情况下)。所以可以不用finishConnect来确认。 2、但在非阻塞模式下,connect()操作是调用后直接返回结果的,有可能是true(如本地连接),也可能是false(在部分情况下是false) 阅读全文
posted @ 2019-09-18 15:04 FrankYou 阅读(496) 评论(0) 推荐(0) 编辑
摘要:相关术语解释: RSA,参考: https://en.wikipedia.org/wiki/RSA_(cryptosystem) 非对称加密算法 ,参考:https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%8 阅读全文
posted @ 2019-09-12 15:11 FrankYou 阅读(1421) 评论(0) 推荐(0) 编辑
摘要:1 、写在前面 1.1 名词解释 consumer表示服务调用方 provider标示服务提供方,dubbo里面一般就这么讲。 下面的A调用B服务,一般是泛指调用B服务里面的一个接口。 1.2 拓扑图 大写字母表示不同的服务,后面的序号表示同一个服务部署在不同机器的实例。 2 、从微观角度思考 2. 阅读全文
posted @ 2019-09-11 11:26 FrankYou 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:关于一致性hash算法,可以参考这篇文章: https://zhuanlan.zhihu.com/p/34985026 1、类的Diagram 2、代码实现 2.1、Node类,每个Node代表集群里面的一个节点或者具体说是某一台物理机器; package consistencyhash; impo 阅读全文
posted @ 2019-09-02 17:33 FrankYou 阅读(214) 评论(0) 推荐(0) 编辑
摘要:package netty; import com.google.common.collect.ImmutableList; import lombok.SneakyThrows; import java.util.List; import java.util.Objects; import java.util.Random; /** * Test * * @author xfyou */ pub 阅读全文
posted @ 2019-08-30 16:01 FrankYou 阅读(378) 评论(0) 推荐(0) 编辑
摘要:本文章为作者原创,有问题的地方请提出指正。 1、类继承Diagram 2、定义EndPoint类 目前仅仅定义了2个方法,分别用来获取本地或远程服务器的地址。 2、定义AbstractClass类 主要是定义几个抽象方法: doOpen - 创建引导类Bootstrap; doConnect - 创 阅读全文
posted @ 2019-08-29 15:44 FrankYou 阅读(3538) 评论(1) 推荐(1) 编辑
摘要:1、集群容错的配置项 failover - 失败自动切换,当出现失败,重试其他服务器(缺省),通常用于读操作,但重试会带来更长的延时。 failfast - 快速失效,只发起一次调用,失败立即报错。通常用于非幂等性写操作,比如说新增记录 failsafe - 失败安全,出现异常时,直接忽略,通常用于 阅读全文
posted @ 2019-08-27 17:56 FrankYou 阅读(302) 评论(0) 推荐(0) 编辑
摘要:dubbo 2.5.10 版本,netty仍然使用的是netty的3.10.5版本,我们从下面的代码可以看出,SPI默认使用的是“netty”,而不是“netty4”。 不管是NettyClient,还是NettyServer创建Channel的工厂类ChannelFactory地创建方式都是一样的 阅读全文
posted @ 2019-08-27 10:30 FrankYou 阅读(250) 评论(0) 推荐(0) 编辑
摘要:排他锁(X) 这里主要讲讲分布式锁中的排他锁。排他锁(Exclusive Locks,简称X锁),又称为写锁或独占锁,是一种基本的锁类型。如果事务T1对数据对象O1加上了排他锁,那么在整个加锁期间,只允许T1对O1进行数据的读取和更新操作,其它任何事务都不能对O1进行任何类型的操作,直道T1释放了排 阅读全文
posted @ 2019-08-26 14:36 FrankYou 阅读(2782) 评论(0) 推荐(0) 编辑