自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GitHub上README.md教程

最近对它的README.md文件颇为感兴趣。便写下这贴,帮助更多的还不会编写README文件的同学们。README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮。不过GitHub支持的语法在标准markdown语法的基础上做了修改,称为Github Flavore...

2017-03-23 10:33:17 108

原创 CAP原理和BASE思想

分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分...

2017-03-18 18:20:41 97

原创 配置 Cobertura 过滤掉无需测试代码

 代码覆盖率的统计指标代码覆盖率指的是一种衡量代码覆盖程度的方式,通常会对以下几种方式进行统计分析:行覆盖。它又被称作语句覆盖或基本块覆盖。这是一种较为常用且具有代表性的指标,度量的是被测代码中每个可执行语句是否被执行到。条件覆盖。它度量的是当代码中存在分支时,是否能覆盖进入分支和不进入分支这两种情况。这要求开发人员编写多个测试用例以分别满足进入分支与不进入分支这两种情况。...

2017-03-07 16:15:45 1557 1

原创 StarUML时序图总结

序列图主要用于展示对象之间交互的顺序。序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。 角色(Actor)对象(Obj...

2017-02-21 20:06:33 1314

原创 MyBatis Generator 配置详解

MyBatis Generator中文文档MyBatis Generator中文文档地址:http://mbg.cndocs.tk/该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信息。注:本文后...

2017-02-17 10:39:16 76

原创 Spring的PropertyPlaceholderConfigurer应用

PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Properties文件中去。在XML文件中用${key}替换指定的properties文件中的值。这样的话,...

2017-02-06 11:21:50 79

原创 GOF 23种设计模式比喻

==创建型模式== 1、   =SIMPLE FACTORY= 打完篮球真累,正好边上有个小摊。 “来杯可乐。” “我要芬达。” “一瓶矿泉水。” 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。有了小摊这个工厂,我们口渴的问题就很easy的解决了。 2、 =FACTORY METHOD= 以前每次下午打完篮球后一般很晚,回来再洗个...

2017-02-04 09:12:33 129

原创 webx参数注入、bean创建总结

  (1)分类              参数注入分为两种:              1.作为类的属性注入                  这就是spring最典型的注入方式,通过@Autowired和@Resource进行注入               2.作为方法的入参注入                  webx中的@Param,@FormData...

2017-01-13 13:09:42 376

原创 JSR 303 - Bean Validation 介绍及最佳实践

Bean Validation 中的 constraint表 1. Bean Validation 中内置的 constraintConstraint详细信息@Null被注释的元素必须为 null@NotNull被注释的元素必须不为 null@AssertTrue被注释的元素必须为 true@AssertFalse被注释的元素必...

2016-12-23 09:55:05 105

原创 java线程池 volatile修饰符

java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类 如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,就会创建一个线程去执行这个任务;如果当前线程池中的线程数目>=corePoolSize,则每来一个任务,会尝试将其添加到任务缓存队列当中,若...

2016-11-02 14:01:52 340 2

原创 消息服务metaq Notify

Notify在设计思路上与传统的MQ有一定的不同,他的核心设计理念是1. 为了消息堆积而设计系统。消费者出现问题是个非常常见的情况,而消息系统则必须能够在后端消费不稳定的情况下,仍然能够保证用户写入的正常并且TPS不降。2. 无单点,可自由扩展的设计 MetaQ对外提供的是一个队列服务,内部实现也是完全的队列模型,这里的队列是持久化的磁盘队列,具有非常高的可靠性,并且充分利用了操作系统c...

2016-10-26 14:36:58 368

原创 lombok在IntelliJ IDEA下的使用

lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的可能性越低。官网地址:https://projectlombok.org/ 首页有一段几分钟的演示视频,看完就明白是怎么回事了。各种注解的详细用法,请参考:https://proje...

2016-10-25 15:56:36 134

原创 Java 理论与实践: 正确使用 Volatile 变量

 Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特...

2016-10-20 20:05:48 135

原创 Java transient关键字使用总结

1. transient的作用及使用方法      一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。      然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要...

2016-10-20 18:06:58 121

原创 spring 事务 mysql引擎

运行配置@Transactional注解的测试类的时候,具体会发生如下步骤1)事务开始时,通过AOP机制,生成一个代理connection对象,并将其放入DataSource实例的某个与DataSourceTransactionManager相关的某处容器中。在接下来的整个事务中,客户代码都应该使用该connection连接数据库,执行所有数据库命令[不使用该connection连接数据库执行...

2016-10-19 11:51:53 101

原创 weblogic jmx

weblogic控制台部署web应用WebLogic和Tomcat都是基于java的基础架构来满足实时处理需求,不同的版本与jdk版本兼容和有所不同;因为都是要和前台交互,所以他们都基于sun公司的servlet来实现的。WebLogic更加强大。weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是...

2016-10-19 10:22:18 517

原创 http https温故知新[整理]

 HTTP/1.0服务器的回应格式是"头信息 + 一个空行(\r\n) + 数据"。其中,第一行是"协议版本 + 状态码(status code) + 状态描述"。2.6 缺点HTTP/1.0 版的主要缺点是,每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。TCP连接的新建成本很高,因为需要客户端和服务器三次握手,并且开始...

2016-10-18 10:55:56 178

原创 logback 配置详解

一:根节点<configuration>包含的属性: scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出log...

2016-10-10 16:47:37 106

原创 java logger

1:java sdk 自带的logger配置文件位于 sdk home目录下: jdk1.6.0_25\jre\lib\logging.properties2:启用该日志配置有两种方式1)用java -Djava.util.logging.config.file=myfile属性java -Djava.util.logging.config.file=myfile  Ja...

2016-10-09 19:24:02 191

原创 复习自定义注解

1、@controller 控制器(注入服务)2、@service 服务(注入dao)3、@repository dao(实现dao访问)4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)   定义有属性的注释。 通过@加上interface标示publ...

2016-09-29 14:45:38 83

原创 bean注解

@Autowired是根据类型进行自动注入的,如果spring配置文件中存在多个XXX类型的bean时,或者不存在XXX类型的bean,都会抛出异常。 存在多个类型的实例时,按id注入@Qualifier("xxx.xxx.xxx")  若不存在某类型的实例:告诉 Spring:在找不到匹配 Bean 时也不报错 @Autowired(required = false) @R...

2016-09-28 19:53:40 119

原创 groovy

http://blog.csdn.net/kmyhy/article/details/4200563 Groovy 是下一代的java语言,跟java一样也运行在 JVM 中。groovy语法与 Java 语言的语法很相似。同样的语句,使用groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。1、  没有类型的java声明一个变量时,groovy不...

2016-07-05 10:27:10 100

原创 线程池里 线程数据清空?

todo

2016-06-08 11:40:09 750

原创 runtime类

  Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。      一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。      一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象...

2016-06-08 11:21:27 89

原创 Tomcat、Resin和Jetty

市场上常用的开源Java Web容器有Tomcat、Resin和Jetty。Resin从V3.0后需要购买才能用于商业目的,而其他两种则是纯开源的。都采用JAVA语言开发,都可以嵌到Apache中使用,也可以独立使用。 在HTTP服务器领域,Apache HTTPD的效率是最高的,也是最为稳定的,但它只能处理静态页面的请求,如果需要支持动态页面请求,则必须安装相应的插件  Re...

2016-06-08 11:03:10 245

原创 内存泄漏

内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存泄露 长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。 当集合里面的对象属性被修改后,再调用remove()方法时不起作用。例:...

2016-06-07 13:31:13 71

原创 AJAX POST&跨域 解决方案 - CORS

跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一。  和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,...

2016-05-30 19:54:28 91

原创 MySQL int转换成varchar引发的慢查询

CREATE TABLE `appstat_day_prototype_201305` ( `day_key` date NOT NULL DEFAULT '1900-01-01', `appkey` varchar(20) NOT NULL DEFAULT '', `user_total` bigint(20) NOT NULL DEFAULT '0', `use...

2016-05-30 10:22:45 778

原创 对象拷贝

对象拷贝的应用现状简介:业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择。目前流行的较为公用认可的工具类:Apache的两个版本:(反射机制)org.apache.commons.beanutils.PropertyUt...

2016-05-25 16:07:56 85

原创 socket

转自: http://www.cnblogs.com/dolphinX/p/3460545.html 从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。 两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲...

2016-05-17 19:43:30 64

原创 tomcat部署java

1、直接放到Webapps目录下Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。也可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse、...

2016-05-17 10:33:22 75

原创 tomcat nginx

我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回 很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。 一般情况下,如果我们需要用nginx来进行静态文件伺...

2016-05-17 10:19:30 87

原创 机器学习

ML决策树监督学习、无监督学习

2016-05-16 18:03:04 149

原创 敏捷开发

书籍推荐 看板方法:http://product.dangdang.com/23397064.html精益思想:http://product.dangdang.com/1268952562.html精益和敏捷开发大型应用指南:http://product.dangdang.com/20742016.html管理3.0 - 培养和提升敏捷领导力:http://product.d...

2016-05-13 09:31:32 81

原创 redis

相比memcached:1、redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。2、redis具备binlog功能,可以将所有操作写入日志,当redis出现故障,可依照binlog进行数据恢复。3、redis支持virtual memory,可以限定内存使用大小,当数据超过阈值,则通过类似LRU的算法把内存中的最不常用数据保存到硬盘的页面文件中。4、redis原生支持的数据类型更多,...

2016-05-13 09:29:17 67

原创 tair

简介tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备...

2016-05-13 09:26:34 153

原创 Berkeley DB

摘自 http://www.cnblogs.com/huqingyu/archive/2006/10/06/522251.html 并不适合所有的应用,因为简单,专一所以高效。 嵌入式数据库,的“嵌入”是指它内嵌在程序中,而不是说他只应用在嵌入式系统上。它的特点很适合应用于嵌入式系统上。当然在我们的pc机集群或大型服务器上 它适合于管理海量的,简单的数据。 Ber...

2016-05-11 20:25:51 70

原创 java应用部署方式

2016-04-29 19:19:33 433

原创 深入学习微框架:Spring Boot

http://www.infoq.com/cn/articles/microframeworks1-spring-boot/

2016-04-29 16:47:46 63

原创 javascript 逗号表达式

逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n 逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。 看下面几个例子: x=8*2,x*4 /*整个表达式的值为64,x的值为16*/ (x=8*2,x*4),x*2 /*整个表达式的值为128,x的值为16*/ x=(z=5,5*2...

2016-04-28 16:26:03 219

空空如也

空空如也

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

TA关注的人

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