自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 多态在 Java 和 C++ 编程语言中的实现比较

多态在 Java 和 C++ 编程语言中的实现比较面向对象编程语言的一个重要特性就是多态,它使得可以用基类的指针或引用指向派生类的对象,而在具体访问时实现方法动态绑定。本文主要探讨多态在当前最流行的两种编程语言 C++ 和 Java 中的实现,并对其中的异同进行了比较,使读者对其有全面的理解,以便更好的在编程中正确使用这种特性。3 评论刘 冠群, 软

2016-10-28 14:50:28 761

转载 JVM垃圾收集器与内存分配

概述程序计数器、虚拟机栈、本地方法栈这些区域不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。垃圾收集器关注的是堆和方法区中的垃圾。对象已死吗引用计数器给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。这种计数法无法解决循环引用的问题

2016-09-22 15:37:43 657

原创 静态资源访问与拦截

静态资源访问映射:先调整web.xml中的DispatcherServlet的配置,使其可以捕获所有的请求:123456789        springMVC        class>org.springframework.web.servlet.Disp

2016-09-11 10:07:36 8003

原创 java反射

个人理解:java反射是一种能力,本质是机器在运行时,不知道对象类型的情况下,可以智能的(非像c++强制转换父类到子类)根据一个字符串(类名,c++不允许用变量强制转换对象)就能知道该类的所有信息,并且可以newInstance一个对象,知道该对象的所有方法,属性并操作(包括私有的),于是:1. 可以进行插件式扩展,声明一个接口对象,只要第三方插件提供了实现,就可以生成该实现的对象,在架子

2016-09-08 14:01:48 636

转载 乐观锁 悲观锁实例

引言为什么需要锁(并发控制)?  在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的

2016-09-07 10:33:29 5189 2

转载 关于TCP乱序和重传的问题

TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相

2016-09-04 09:50:09 30915 7

转载 JUnit + Mockito 单元测试

JUnit 是单元测试框架。Mockito 与 JUnit 不同,并不是单元测试框架(这方面 JUnit 已经足够好了),它是用于生成模拟对象或者直接点说,就是”假对象“的工具。两者定位不同,所以一般通常的做法就是联合 JUnit + Mockito 来进行测试。ps:Mockito 用于对方法进行打桩,模拟class,不需要autowire对象,可避免一个对象具有多层bean初始化的情形?

2016-09-01 09:50:30 615

转载 领域驱动设计实现之路

多数有经验的程序开发者都应该听说过DDD,并且尝试过将其应用在自己的项目中。不知你是否遇到过这样的场景:你创建了一个资源库(Repository),但一段时间之后发现这个资源库和传统的DAO越来越像了,你开始反思自己的实现方式是正确的吗?或者,你创建了一个聚合,然后发现这个聚合是如此的庞大,它为什么引用了如此多的对象,难道又是我做错了吗?其实你并不孤单,我相信多数同仁都曾遇到过相似的问题。

2016-08-31 20:50:06 3827

原创 java单例全解析

总结了两个经典的懒加载单例模式先上代码:[java] view plain copypublic class ImageLoader {        private volatile static ImageLoader instance;        // Returns singleton class inst

2016-08-31 19:36:17 397

转载 第三方支付架构设计之—帐户体系

第三方支付架构设计之—帐户体系一,      什么是第三方支付?        什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟。但,如果非得给这个名词总结出一个概念,却发现很难准确和全面的表述清楚。不过关系不大,我们无法给出一个很准确的概念的时候,我们就列举一下实际生活中我们经常使用第三方支付的例子:支付宝,财付通,微信支付等等,这些就

2016-08-26 10:42:55 2114 1

转载 支付清算体系例子-下

出处:http://blog.csdn.net/tenfyguo/article/details/47397751上一篇《互联网金融系列-支付清算体系介绍-上》已经比较全面的介绍了以银联为例子的支付清算体系,为了更好的理解里面的运作,本章以两个例子为重点,全面剖析整个清算的过程。1,记账原则        这块跟会计相关,不清楚的同学可以先看一下笔者之前的文章《第三方支付架

2016-08-26 10:42:19 1639

转载 支付清算体系介绍-上

一直想写下银联的支付清算体系,找到了几篇博文,作者总结的非常好,备作自己学习之用转载自:http://blog.csdn.net/tenfyguo/article/details/47294157一,支付清算体系的简介       支付清算体系是一个国家的金融基础设施,或说公共服务。我国由央行主管此事,目前大体维持“结算-清算”二级制的支付体系。通俗地讲,银行与商户、消费者

2016-08-26 10:40:20 1175

转载 SOA演进到微服务

引言:“微服务”是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用“微服务”的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,以及如何在实践中具体应用。单体架构(Monolithic Architecture )企业级的应用一般都会面临各种各样的业务需

2016-08-25 14:52:36 2019

原创 maven资料合集

看了不少maven的文章,很多比较杂而且乱,整理了下比较靠谱的资料:1.关于maven的基本介绍:http://www.cnblogs.com/Brake/p/maven_install_and_config.htmlhttp://blog.csdn.net/bjyfb/article/details/8623801主要包括maven的作用、搭建、私服/远程

2016-08-24 18:58:02 574

转载 Apache Commons IO简介

原文参考 http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html   Apache Commons IO 包绝对是好东西,地址在http://commons.apache.org/proper/commons-io/,下面用例子分别介绍:   1)  工具类   2) 输入   3) 输出 

2016-08-24 15:43:21 493

转载 Java 类的热替换

Java 类的热替换 —— 概念、设计与实现https://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/构建基于 Java 的在线升级系统对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本。因此,

2016-08-24 14:44:14 516

转载 java反射常用方法

JAVA反射使用手记        本篇文章为在工作中使用JAVA反射的经验总结,也可以说是一些小技巧,以后学会新的小技巧,会不断更新。本文不准备讨论JAVA反射的机制,网上有很多,大家随便google一下就可以了。        在开始之前,我先定义一个测试类Student,代码如下:[Java] view plain copy

2016-08-23 17:12:28 2098

转载 string对象不可变的原理

ps:主要是其内部使用了private final修饰成员,如果想修改,需要使用到反射技术string方法的修改效果是通过新建StringBuilder来实现的,更老的版本使用StringBuffer,后者是线程安全版本,但效率较低什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成

2016-08-12 17:02:27 2666 1

转载 clone方法 --深拷贝与浅拷贝

Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方法复制一个对象那么这两种方式有什么相同和不同呢? new操作符的

2016-08-12 16:58:36 5271

转载 简单REST框架

摘要本文首先描述 MVC 模式是什么,然后针对 MVC 的不足发表了作者的个人观点,随后引出了基于 REST 架构实现前后端分离的方案,最后使用了 Java 的 Spring 框架搭建了一个简单的 REST 框架。全文从原理到实战,希望对于想了解如何实现前后端分离架构的朋友有所帮助。由于篇幅有限,且个人水平不足,难免会出现一些遗漏或不足之处,恳请大家提出宝贵意见或建议,谢谢!从

2016-08-12 12:37:22 4551 1

转载 CORS解决ajax跨域访问问题

Spring MVC 4.2 增加 CORS 支持跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.fo

2016-08-12 12:06:30 8502

转载 FindBugs、PMD和CheckStyle对比

1.     概要工具目的检查项FindBugs检查.class基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错

2016-08-11 19:11:33 659

转载 使用Jenkins配置自动化构建

持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了。为了实现这个要求,我选择了Jenkins。从http://mirrors.jenkins-ci.org/windows/latest下载windows下的最新安装版jenkins。(如果不能安装,从http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载wa

2016-08-11 18:26:02 357

转载 web.xml中context-param,listener等作用及加载过程

的作用:web.xml的配置中配置作用(可在listener和servlet中使用,而ContextLoaderListener及contextConfigLocation则由spring mvc来实现,可读取application.xml等springbean配置)1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: 和

2016-08-11 17:17:44 2728

原创 静态内部类解决静态变量注入问题

1.静态变量不可直接注入,可通过setter的方式注入,且setter方法不能为static,实际上是在静态变量被加载并默认初始化过后,初始化bean时被注入的2.静态内部类可在bean被初始化之后再加载,从而实现利用外部类静态变量的目的3.变量的注入,需要注意变量名的统一public class OssClient { //log private Logger logg

2016-08-10 16:26:10 1976

转载 过滤器 拦截器 service 执行顺序

由于最近做的项目中有一部分是接口远程调用,用到了接入权限和业务权限的鉴定,需要采用SpringMVC的拦截器,以前用Struts2的时候用过拦截器,而SpringMVC的拦截器功能之前没研究过,所以这次来稍微研究一下,得出的结论是SpringMVC的拦截器和Struts2的拦截器原理几乎是一模一样的,都是利用反射功能实现动态代理。因为过滤器和拦截器有很多相似甚至相同的地方,因为很多时候二者都能

2016-08-08 14:25:56 2430

转载 new和newInstance() Constructor.newInstance()区别

1、类的加载方式不同    在执行Class.forName("a.class.Name")时,JVM会在classapth中去找对应的类并加载,这时JVM会执行该类的静态代码段。在使用newInstance()方法的时候,必须保证这个类已经加载并且已经连接了,而这可以通过Class的静态方法forName()来完成的。    使用关键字new创建一个类的时候,这个类可以没有被加载,一般也

2016-08-05 16:50:59 4638

转载 java.lang.Object总结

从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解。Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起。Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属

2016-08-05 14:47:26 565

转载 深入探讨 Java 类加载器

类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi™中的应用。类加载器是

2016-08-05 09:22:11 216

转载 Elasticsearch简介入门

你是否为了讨女朋友的欢心而偷偷搜索过她最想要的礼物?是否在女朋友生病的时候心急地搜过医院和药物?是否在吵架过后默默地搜过和好方法?让我告诉你如何用正确地姿势进行搜索。接下来,本文就简要介绍搜索利器 Elastic Search,让你在 5 分钟内学会使用它。安装如果你有 linux,并且恰好也有 docker, 那么请运行如下命令: sudo docker run -d

2016-08-04 16:20:26 452

转载 IOC和DI本质理解

IoC IoC: Inversion of Control,控制反转, 控制权从应用程序转移到框架(如IoC容器),是框架共有特性 1、为什么需要IoC容器1.1、应用程序主动控制对象的实例化及依赖装配 Java代码  A a = new AImpl();  B b = new BImpl();  a.setB(b);  

2016-08-04 13:29:50 6772 3

转载 spring mvc路径匹配原则

Ant path 匹配原则在Spring MVC中经常要用到拦截器,在配置需要要拦截的路径时经常用到子标签,其有一个path属性,它就是用来指定需要拦截的路径的。例如:根据以上配置,此拦截器会拦截所有的请求。Spring MVC中的路径匹配要比标准的web.xml要灵活的多。默认的策略实现了 org.springframe

2016-07-28 16:14:13 707

转载 Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结

内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构1

2016-07-28 15:44:53 5912 1

转载 为什么要有SerialVersionUID?

为什么要有SerialVersionUID?应该说为什么要手动声明一个ServialVersionUID。因为只要你做了序列化了,JAVA就会自动给你加上一个SerialVersionUID。Java强烈建议我们显式的声明一个SerialVersionUID,因为SerialVersionUID默认值的计算是根据类的各个方面得来的(属性,方法。。。)。详情:http://docs.

2016-07-26 18:30:16 2645

转载 Java运行时异常和非运行时异常

1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://blog.csdn.net/wuwenxiang91322/article/details/10346337

2016-07-26 14:19:13 2166

转载 生成代理方法(generate delegate methods)

先看代码: AbstractSubject类: public interface AbstractSubject {          void sayHello(); } RealSubject类: public class RealSubject implements AbstractSubject { public void sayHello() { 

2016-07-25 18:59:43 1782

原创 springfox集成教程

swagger用于定义API文档。1. 好处:前后端分离开发API文档非常明确测试的时候不需要再使用URL输入浏览器的方式来访问Controller传统的输入URL的测试方式对于post请求的传参比较麻烦(当然,可以使用postman这样的浏览器插件)springfox基于swagger2,兼容老版本2. maven引入:dependency> gro

2016-07-20 16:08:45 5696 1

转载 spring bean与线程安全

在使用Spring框架时,很多时候不知道或者忽视了多线程的问题。因为写程序时,或做单元测试时,很难有机会碰到多线程的问题,因为没有那么容易模拟多线程测试的环境。但如果不去考虑潜在的漏洞,它就会变成程序的隐形杀手,在你不知道的时候爆发。而且,通常是程序交付使用时,在生产环境下触发,会是很麻烦的事。在使用Spring框架时,很多时候不知道或者忽视了多线程的问题。因为写程序时,或做单元测

2016-07-13 20:08:57 4515

转载 Ant简易教程

所需文件ant打包apk需要三个目录: build.xml,local.properties,proguard-project.txt生成方式,在项目根目录下执行指令:android update project —path .其中,build.xml文件是进行ant build的主要文件,它引用了其它文件。这些被引用的文件有local.properti

2016-07-13 15:24:59 970

转载 java序列化和json序列化效率对比

一、背景有项目需要传输Map结构的数据,有人倾向用Java序列化来做,有人倾向用JSON的序列化来做。所以我们还是比比吧。Java观点:Object2Object,使用时简单快速。JSON观点:JSON格式与语言无关,扩展性强,速度也应该不慢。大家可能对Java序列化都有一个错误的认识,认为Java序列化比JSON的序列化效率高并且序列化的数据小,其实实际上并不一定

2016-02-23 18:05:30 17733 2

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