- 博客(33)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 excel百万级导出工具类
package com.jd.las.secondhand.portal.util;import com.jd.fastjson.JSON;import com.jd.las.secondhand.annotation.Excel;import com.jd.las.secondhand.annotation.ExcelEnum;import org.apache.poi.hssf....
2018-04-24 09:45:38 704
转载 单例与序列化的那些事儿
本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏。单例模式,是设计模式中最简单的一种。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。关于单例模式的使用方式,可以阅读单例模式的七种写法但是,单例模式真的能够实现实例的唯一...
2018-06-21 09:58:01 263
原创 业务代表模式
业务代表模式不太好理解,建单梳理一下。BusinessService 是一个业务的接口,它有两个业务实现EBJService和JMSServiceBusinessLookUp是一个业务查找类,根据你提供的字段返回不同的业务BusinessDelegate 是把传进来的参数和调用业务方法整合到一个类里面了,也就是做了一个封装。Client就干了两件事:1 根据构造函数传入BusinessDelega...
2018-06-19 15:14:29 183
原创 策略模式
直接看代码public interface Strategy { public int doOperation(int num1, int num2);}public class OperationAdd implements Strategy { @Override public int doOperation(int num1, int num2) { ...
2018-06-19 14:44:53 145
原创 解释器模式
很简单,直接看代码就能看懂public interface Expression { public boolean interpret(String context);}public class TerminalExpression implements Expression { private String data; public TerminalExpressio...
2018-06-19 14:22:33 181
转载 漏桶算法和令牌桶算法
一背景如何提高系统的稳定性,简单来说除了加机器外就是服务降级、限流。加机器就是常说的分布式,从整个架构的稳定性角度看,一般SOA每个接口的所能提供的单位时间服务能力是有上限。假如超过服务能力,一般会造成整个接口服务停顿,或者应用挂了,将延迟传递给服务调用方造成整个系统的服务能力丧失。要是对外的公开 API 接口服务,Rate limiting 应该是一个必备的功能,否极有可能被恶意调用导致服务宕掉...
2018-06-19 10:53:35 2269
原创 excel导出工具类实例
1.定义要导出的实体类 在属性上可以定义导出excel的列名,枚举值// 入库单编号@Excel(columnName = "入库单号")private String stockInNo;// 入库类型@Excel(columnName = "入库类型")@ExcelEnum(code = {"ESRK-BJ","ESRK-CG","ESRK-JS","ESRK-PY"},na
2018-04-24 09:48:53 278
原创 JSF-provider执行过程
调用端组装好参数后最后会调用jsf client的sendMsg方法在这里面会把消息体进行编码和序列化默认的序列化方式是msgpackNetty服务端ServerChannelHandler生成一个任务执行ServerChannelHandler监听到消息体 生成一个任务JSFTask调用doRun方法执行 void doRun() { ...
2018-04-24 09:41:31 385
原创 consumer端调用方法的过
客户端调用过程1. 组装调用参数(接口名+方法名+方法参数+别名)2. 调用客户端代理执行方法……3. 客户端代理返回结果图一 组装参数图2 服务端代理链式调用服务端方法图3返回的结果...
2018-04-09 14:24:43 281
原创 mini-dubbo服务调用
Mini-Dubbo之服务消费 Consumer目录结构 消费者启动代码/** * Created by cheng.xi on 2017-04-14 09:28. * 服务消费者端引用服务 */public class TestApiConsumer { public static void main(String[] args) { DubboConsumer...
2018-03-28 16:11:49 159
原创 mini-dubbo之服务发布
Provider目录结构 1.服务端的启动/** * Created by cheng.xi on 2017-04-1410:25. * 服务提供者端发布服务 * 可以使用API直接发布服务,也可以使用和Spring集成 * 这里是测试使用API发布服务 */public class TestApiProvider { public static void main(String[] arg...
2018-03-28 15:51:43 306
转载 从头开始写一个迷你dubbo之解析
从头开始写一个迷你的dubbo,仅用作学习用,学习的过程中更深入的了解下dubbo,同时也补充下其他的知识。java rpc机制简介 java rpc机制简单来说就是服务调用者把要调用的接口名,方法名,参数等通过网络传给服务提供者。服务提供者监听到调用者发来的消息解析出要调用的哪个接口的哪个方法,以及入参等信息然后用动态代理执行,最后把执行的结果通过网络传输给调用者。 后话:通常为了保证网络...
2018-03-28 15:23:16 357
原创 java spi机制
Java SPI(Service Provider Interface)简介SPI,Service ProviderInterface,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,mysql和postgresql都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。当服务的提供者提供了一种接口的实现之后,需要...
2018-03-28 15:09:52 172
原创 01背包问题
#include #include using namespace std;const int MAX = 100;int n,W;int w[MAX],v[MAX];int book[100][100];int rec(int i,int j){ if(book[i][j] >= 0) return book[i][j]; int res;//价值 if(i ==
2017-06-30 22:40:54 224
原创 最小生成树
#include using namespace std;int main(){ int n,m,j,k,i,MIN,t1,t2,t3; int e[7][7],dis[7],book[7]={0}; int INF=999999; int coun=0,sum=0; scanf("%d %d",&n,&m); for(i=1;i<=n;
2017-06-30 22:40:05 147
原创 抽象工厂模式
package com.henu.factory.abstractfactory;public interface Color { void fill();}package com.henu.factory.abstractfactory;public class Blue implements Color{ @Override public void fill() { Sy
2017-06-30 22:26:11 132
原创 简单工厂模式
package com.henu.factory.simplefactory;public class Pizza { public void prepare(){ System.out.println("1.prepare"); } public void bake(){ System.out.println("2.bake"); } public vo
2017-06-30 22:25:13 128
原创 装饰着模式
package com.henu.Decorator;/** * 汉堡基类 * @author rock */public abstract class Humburger { protected String name; public String getName(){ return name; } public
2017-06-30 22:24:02 143
原创 观察者模式
public interface Observer { public void update(int temp,int humidity,int pressure);}public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o);
2017-06-30 22:19:33 135
原创 垃圾回收机制(对象的回收)
对象已死?首先,需要明确一个概念,垃圾对象就是没有引用指向它的对象。垃圾回收前第一件事就是要确定此对象是否是“垃圾”对象。那么Java虚拟机如何判断一个对象是“垃圾”呢?接下来介绍几个算法1引用计数法引用计数器法是最简单的算法,其算法如下:给每一个对象添加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1.任何时刻计数器都为0的对象就被认为是不再被使用的对
2017-03-14 13:15:46 368
原创 Java虚拟机内存管理
Java虚拟机在Java程序运行的时候为了更好的管理内存,把内存分为了若干个不同的内存区域。他们分别是方法区、虚拟机栈、本地方法栈、堆和程序计数器将下来介绍这几个内存区程序计数器程序计数器区,简单的来说类似于CPU寄存器中的程序计数器。主要负责记录程序执行到第几条语句。在顺序结构中没执行句语句,计数器就+1,如果遇到分支语句,计数器则重置到跳到的语句处。需要注意的是,每个线程都有自
2017-03-10 19:04:16 1515 1
java多线程如何实现1加到30
2016-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人