摘要: 装饰者模式 概念 动态地给一个对象添加一些额外的职责。与继承的模式对比,装饰者模式更为灵活。 类图 以上共有四个角色: 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 装饰(De 阅读全文
posted @ 2019-05-15 11:33 起个po名真费劲 阅读(2370) 评论(0) 推荐(0) 编辑
摘要: @LoadBalanced注解用来给RestTemplate做标记,以使用负载均衡的客户端来配置。 通过搜索LoadBalancerClient可以发现,LoadBalancerClient是SpringCloud定义的一个接口 public interface LoadBalancerClient 阅读全文
posted @ 2018-03-08 15:32 起个po名真费劲 阅读(321) 评论(0) 推荐(0) 编辑
摘要: ClassLoader的主要方法 1.loadClass(String name) 给定一个类名,记载一个类。 2.defineClass(byte[] b, int off, int len) 根据给定的字节数组定义一个类 3.findClass(String name) 查找一个类 4.find 阅读全文
posted @ 2017-05-14 14:15 起个po名真费劲 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Java是按照运行时数据的存储结构来划分内存结构的,java虚拟机规范将java运行时的诗句划分为6种: 1.PC寄存器 用于保存当前执行程序的内存地址,同时java程序是多线程的,不可能一直都按照线性执行下去,当有多个线程交叉执行时,被中断的线程程序当前执行到哪条的内存地址需要记录下来。 2.ja 阅读全文
posted @ 2017-05-13 19:25 起个po名真费劲 阅读(197) 评论(0) 推荐(0) 编辑
摘要: GC中的垃圾,是指的是在内存中不在不再被使用的对象。 常见的垃圾回收算法 1.引用计数算法(无法回收循环引用的对象) 2.标记清除算法分为标记阶段和清除阶段(会产生内存的空间碎片) 3.复制算法(缺点是将系统内存折半,高效性是建立在存活对象少,垃圾对象多的前提下的) 在java新生代串行垃圾回收器中 阅读全文
posted @ 2017-05-13 18:22 起个po名真费劲 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 对无序数组的并发搜索的实现可以充分的用到多cpu的优势 一种简单的策略是将原始数组按照期望的线程数进行分割,如果我们计划使用两个线程进行搜索,就可以把一个数组分成两个,每个线程各自独立的搜索,当其中有一个线程找到数据后,立即返回结果的index即可。 首先index需要采用atomicinteger 阅读全文
posted @ 2017-05-12 17:37 起个po名真费劲 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 并不是所有的操作都能进行并发计算的,比如有关于数据相关性的操作,如(B+C) * B,操作之间都会有依赖关系的。 可以使用流水线方式充分利用多核环境。 开多个线程。每一条线程相当于车间,负责执行一小部分工作,执行完传递给下一个线程,线程之间可以通过阻塞队列来进行通信。 具体实现: 其中Div, Mu 阅读全文
posted @ 2017-05-12 11:32 起个po名真费劲 阅读(587) 评论(0) 推荐(0) 编辑
摘要: Future模式核心思想是异步调用。我们可以先拿到调用的凭证,让方法先返回,让他在后台慢慢的处理这个请求。通过这个可以实现异步操作。 JDK经准备好了一套完美的实现方式。我们用于执行的异步线程需要继承Callable接口,相当于Runnable,Callable接口中有一个方法call(),相当于r 阅读全文
posted @ 2017-05-12 11:00 起个po名真费劲 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列的实现 但是阻塞队列不是一个高性能的体现,完全使用锁和阻塞实现线程之间的同步,在高并发的场合它的性能并不卓越。他仅仅是方便数据的共享。 concurrentLinkedQueue是一个高性能的队列,大量使用无锁的CAS操作,会获得客观的性能提升(不过CAS不是在所有的情况下都比悲观锁的性能好 阅读全文
posted @ 2017-05-11 16:26 起个po名真费劲 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: package com.hzins.suanfa; /** * 最长公共子序列问题 * @author Administrator * */ public class Demo5 { /** * 额外空间复杂度O(n^2) * @param str1 * @param str2 * @return */ public st... 阅读全文
posted @ 2017-05-05 12:18 起个po名真费劲 阅读(180) 评论(0) 推荐(0) 编辑