自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Java-SPI机制

SPI 简介SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现, 通过一个简单例子来说明SPI是如何使用的。 首先通过一张图来看看,用SPI需要遵循哪些规范,因为s...

2018-01-15 17:42:42 203

原创 POI内存溢出分析及解决方案

在使用POI进行excel操作时,当数据量较大时经常会产生内存溢出异常。下面我们通过分析如何解决该问题一、POI结构图 二、内存溢出问题在项目中遇到二十万行数据要写入到excel中时会内存溢出,一般方法是调大tomcat的内存,但是调到2048M还是会内存溢出报错。因此我们分析其原因。我们通过分析其源码,得出其实现步骤为通过InputStream一行行读取到TreeMap类型的HS...

2018-01-11 15:11:35 6180

原创 Java网络编程之流--readline()

        早两天生产环境遇到这么一个问题,系统日终跑批任务失败,发现停止在远程读取ftp服务文件任务上,实在搞不定了后来回来让我帮忙分析,我经过分析源代码,发现原来是团队的小伙伴在远程网络连接中使用BufferedReader.readline()引起的。因此及时让团队小伙将业务调整为先从ftp下载文件,再在本地读取文件,避免在网络连接中使用BufferedReader.readline...

2017-09-06 19:42:04 1047

原创 清算与结算

清分 Clearing对交易数据依据机构和交易类型进行分类汇总,并计算结算金额的过程。清算 Settlement指根据清分结果对交易数据进行净额轧差和提交并完成资金划拨的全过程。结算 Settlement of Accounts指完成客户账户间资金划拨的全过程。 清算主要是指不同银行间的货币收付,可以认为是结算进行之前,发起行和接收行对支付指令的发送、接收、核对确认,其结果...

2017-04-05 21:12:17 236

原创 银行等额本息还款算法

等额本息算法公式每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]/** * 说明:等额本息还款算法 * * @author ljf <liangjf@hundsun.com> * @date 2017-2-6 下午4:28:55 * @version V1.2 */public class Princ...

2017-04-05 21:12:04 938

原创 贷款四级分类/五级分类

四级分类正常正常还款的贷款逾期逾期贷款是指逾期未还的贷款,只要超过一天即为逾期呆滞呆滞是指逾期两年或虽未满两年但经营停止、项目下马的贷款呆账呆账是指按照财政部有关规定确定已无法收回,需要冲销呆帐准备金的贷款 五级分类正常贷款借款人能够履行合同,一直能正常还本付息,不存在任何影响贷款本息及时全额偿还的消极因素,银行对借款人按时足额偿还贷款本息有充分...

2017-04-05 21:07:06 1981

原创 java笔试题

前段时间我去某知名的医疗领域互联网公司面试架构师,殊不知某司在面试架构师级别人才时也需要做笔试题目因毫无准备当时我一下子有些懵掉了。结果可想而知,本次面试情况不理想。在此整理一下将题目记录一下。题目与结果public class Main implements Comparable<Main> { private int _id; private int...

2017-03-15 18:08:54 101

原创 WEB系统安全检测及修复办法

系统安全检测及修复办法 漏洞介绍SSL/TLS Suffers ‘Bar Mitzvah Attack’漏洞是由于https传输数据加密使用RC4加密算法,存在大约64个字节的明文数据会留给攻击者,存在的安全漏洞较高,主要是由于Web容器开启了SSL/TLS访问方式,并未屏蔽RC4加密算法的。 漏洞检测办法查看网站是否为脆弱的RC4弱密钥攻击,你可以使用openSSL命...

2015-04-28 20:13:20 398

原创 Git常用命令

备份一张GIT常用命令图,以备查看 

2015-04-26 22:43:46 78

原创 Java守护线程学习总结

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 ...

2014-12-03 18:20:34 70

原创 Java实现简易RPC框架(三)

实现带监听功能简易RPC通过上一编博文的学习,我们同样利用socket、JDK动态代理实现一个带监听功能并能停止服务器的简易RPC框架。首先定义一个服务器接口package org.bird.rpc2.support;import org.bird.rpc2.protocal.Invocation;/** * 服务器管理 * @author liangjf...

2014-12-03 16:42:57 133

原创 Java实现简易RPC框架(二)

 上一遍blog我们已经说过了RPC的相关知识,接下来我们利用socket来实现RPC。一、利用socket、动态代理实现RPC参考阿里梁飞同学网上的例子,并调整单服务多线程模式,首先是框架代码package org.bird.rpc;import java.io.IOException;import java.io.ObjectInputStream;impo...

2014-12-03 16:41:01 179

原创 Java实现简易RPC框架(一)

早些天看Hadoop源码的时候了解到Hadoop分布式环境中各个组件间的通信采用的RPC,由于暂无时间深入分析Hadoop中的RPC实现方式。参考网上资料学习跟例子实现简易RPC框架。一、什么是RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传...

2014-12-03 16:38:08 322

原创 如何发布RMI服务

1 、RMI是什么在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 RMI(Remote Method Invocation,远程方法调用)。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将服务提供者(Service Provide...

2014-12-03 16:16:06 866

原创 java 代理(二)

上一编bolg我们已经了解了jdk实现的动态代理,接下来我们再来了解一下cglib的动态代理。首先我们先看一下cglib动态代理怎么写。目标类:BookServicepackage com.cglib.proxy;public class BookService { public void add(){ System.out.println("添加图书.......

2014-11-24 15:22:50 81

原创 参考Mysql JDBC 驱动源码实现自定义驱动

一、分析Mysql JDBC平常我们直接以JDBC连接数据库代码基本都如下: Connection con = null; //创建用于连接数据库的Connection对象 try { Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动 ...

2014-11-07 15:08:30 1055

原创 了解Jquery中bind()、live()和delegate()之间的区别

    今天在写一个jquery函数的时候刚好碰到了动态添加的元素无法触发事件的疑问。故了解了一下bind()方法跟live()方法的一些特性,在这里总结一下。 DOM树首先我们看一下一个简单的HTML中DOM树的结构 根据这个DOM树。我们先用bind()函数实现对a标签的一个点击事件:$('a').bind('click', function() { alert("点击我!")...

2014-11-06 09:05:47 169

原创 java 代理(一)

首先我们需要了解一下什么是代理代理:就是一个角色代表另一角色完成某些特定的功能。例如:汽车制造商,4S店,客户客户购买汽车并不直接与汽车制造商打交道,也不用知道汽车是如何制造的,客户只与4S店打交道,而4S店可以对汽车进行一些包装,提供一些保修、保险等相关售后的服务。下面我们根据实际的Java例子来说明代理代理模式有三个角色: 1. 抽象主题角色 2. 代理主题角色 3. ...

2014-10-31 16:19:14 104

原创 网站实现视频上传、转码、截图及在线播放功能

       早些天一老同学问到怎么在网站上传自己制作的视频并在线播放呢?当时想了想自己还真没进行过这方面的应用开发。上传并在线播放视频现在应用非常广泛,优酷、土豆等在这方面应用得非常成熟。正好趁这几天不忙整理了一下这方面的知识。          在线视频播放网站主流播放格式为FLV。我们顺便了解一下什么是FLV?           FLV是FLASHVIDEO的简称,FLV...

2014-10-15 16:22:30 2010 1

原创 Docker - 容器级虚拟化解决方案

是什么 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案。拿现实世界中货物的运输作类比, 为了解决各种型号规格尺寸的货物在各种运输工具上进行运输的问题,我们发明了集装箱 Docker的初衷也就是将各种应用程序和他们所依赖的运行环境打包成标准的container/image,进而发布到不同的平台上运行 从理论上跟各...

2014-10-14 14:43:32 347

原创 Hadoop Map中如何处理跨行Block和InputSplit

前面一节中我们说过Mapper最小输入数据单元是InputSplit。比如对于那么对于一个记录行形式的文本大于128M时,HDFS将会分成多块存储(block),同时分片并非到每行行尾。这样就会产生两个问题1. Hadoop的一个Block默认是128M,那么对于一个记录行形式的文本,会不会造成一行记录被分到两个Block当中?2. 在把文件从Block中读取出来进行切分时,会不会造成...

2014-09-30 16:14:46 200

原创 Mapper输入InputSplit分片数透析

什么是InputSplitInputSplit是指分片,在MapReduce当中作业中,作为map task最小输入单位。分片是基于文件基础上出来的而来的概念,通俗的理解一个文件可以切分为多少个片段,每个片段包括了<文件名,开始位置,长度,位于哪些主机>等信息。map task的数量由输入文件总大小和分片大小确定的;hadoop2.2版本hdfs的数据块默认是128M。若一个文...

2014-09-26 00:30:10 904

原创 实现动态验证码生成

现在网上有很多在用户登陆或注册的时候为了防止程序攻击,加入了动态验证的技术,一般是让用户输入随即生成的验证码来实现。下面是一个用Servlet生成动态验证码的一个实例,可以根据实际需要进行修改。1、生成动态验证码的Servlet /** 验证码图片的宽度 */ private int width = 90; /** 验证码图片的高度 */ pri...

2014-09-22 17:50:46 763

原创 Java序列化透析

有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以...

2014-09-18 16:04:13 97

原创 Java中byte与16进制字符串的转换

因工作上经常用到byte转换成16进制字符串、16进制字符串转换为byte等,故将相关知识整理一下: Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte...

2014-09-18 12:09:49 208

原创 ByteArrayOutputStream和ByteArrayInputStream的用法

第一次使用ByteArrayOutputStream的时候是在做某个银行项目报文传输的组包/解包过程中,觉得确实是很好用,所以把它们的用法总结一下。  ByteArrayOutputStream的用法以下是JDK中的记载: public class ByteArrayOutputStream  extends OutputStream    此类实现了一个输出流,其中的数据被写...

2014-09-18 11:58:15 2201

原创 tomcat6.0实现https连接方式

一、首先我们了解一下什么是https       https(Sercure Hypertext Transfer Protocol)=安全超文本传输协议二、https的特点是     1.数据加密(SSL) = Secure Socket Layer     2.身份认证       当你的项目需要考虑安全性的时候,部分模块可以用到https。当然这些都得到CA注册,需要收费...

2014-07-21 12:06:35 240

原创 防止表单重复提交

一、利用js,表单提交后马上使按钮失效<input type="button" value="提交" onclick="this.disabled=true;this.form.submit()">  二、利用token防止表单重复提交    Filterpackage com.web;import java.io.IOException;impor...

2014-07-15 14:37:01 53

原创 防止用户直接访问框架URL的权限控制

使用过滤器可防止用户直接在浏览器中输入URL访问。过滤器的内容如下: public void preProcess(WebContext context) { this.initParam(); String URI = context.getRequest().getRequestURI(); //获取父URL--用户直接输入URL,这个父URL是不存在的 Str...

2014-07-14 11:16:08 1070

原创 JS阻止浏览器默认行为、停止事件冒泡

一、停止事件冒泡 //阻止浏览器的默认行为 stopDefaultEvent: function(e){ //如果提供了事件对象,则这是一个非IE浏览器 if(e && e.preventDefaut){ //阻止默认浏览器动作(W3C) e.preventDefault(); }else{ //IE中...

2014-07-11 10:34:45 159

原创 Oracle临时表空间使用过高及解决方案

 一、Oracle临时表空间作用      在Oracle数据库进行排序、分组汇总、索引等动作时,会产生很多的临时数据,如有一张员工信息表,数据库中是按照记录建立的时间来保存的。如果用户查询是,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。通常情况下,Oracle会先将这些临时数据存放到内存的PGA(程序全局区)内。但是这个分区容量是有限的...

2014-04-24 10:23:38 2730

原创 深入解读Quartz及应用

一、Quartz基本概念 Quartz 是 OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。读者可以到 http://www.quartz-scheduler.org/站点下载 Quartz 的最新发布版本及其源代码。QCT系统使用的是版本 1.6...

2014-02-14 17:53:38 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除