自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

零度的博客专栏

全栈式学徒长成记--工欲善其事必先利其器,不积小流无以成江海,不积跬步无以至千里!

  • 博客(1203)
  • 资源 (14)
  • 收藏
  • 关注

转载 Maven使用maven-shade-plugin对java工程及其全部依赖打包可执行jar

采用 maven 来进行开发管理,有一个需求是需要把通过maven管理的 Java 工程打成可执行的 jar 包,这样也就是说必需把工程依赖的 jar 包也一起打包。而使用maven默认的package命令构建的jar包中只包括了工程自身的 class 文件,并没有包括依赖的 jar 包。       我们可以通过配置插件:maven-assembly-plugin (使用此插件会有一

2017-09-07 10:30:05 901

转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究

1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事

2017-09-06 11:37:30 423

转载 Java使用RSA加密解密签名及校验

由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类:[java] view plain copy print?package com.ihep;    import java.io.BufferedReader;  import java.

2017-09-06 10:28:24 910

转载 java锁机制:synchronized/lock(Condition)

1、synchronized把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有原子性(atomicity)和 可见性(visibility)。1.1 原子性原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。1.2 可见性可见性则更为微妙,它要对付

2017-09-05 16:15:38 1036

转载 JAVA CAS原理深度分析

java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。CASCAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。本文先从CAS的应用说起,再深入原理解析。 CAS应用CAS有3个操作数,

2017-09-05 13:30:24 335

转载 synchronized和lock的实现原理

目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家

2017-09-05 10:51:42 2118 1

转载 并发容器之CopyOnWriteArrayList及与其他容器对比

一、  CopyOnWriteArrayList原理   Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWrit

2017-09-04 11:40:35 1367

转载 图解JVM内存结构及内存/栈溢出原因解析

一、背景知识1、JVM体系结构2、JVM运行时数据区3、JVM内存模型JVM运行时内存 = 共享内存区 + 线程内存区3-1、共享内存区共享内存区 = 持久带 + 堆持久带 = 方法区 + 其他堆 = Old Space + Young Space

2017-09-04 11:17:24 1257

原创 Hibernate使用索引及索引添加原则

1、使用Hibernate添加索引的方式       1)表上加索引 @Table(name = "T_S_USER",indexes={@Index(name="trial_idIndex",columnList="trial_id"),@Index(name="material_idIndex",columnList="material_id")})

2017-08-31 11:40:07 14270

转载 java泛型详解

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述       泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?       泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时

2017-08-24 10:47:57 526 1

转载 数据库切分(7)之一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Shardi

2017-08-22 11:42:11 833

转载 数据库切分(6)之多源数据的事务处理

系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。本文原文链接:http://blog.csdn.net/bluishglc/article/deta

2017-08-22 11:02:05 478

转载 数据库切分(5)之sharding实现层面的考量(使用框架还是自主开发)

当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题,本文会对这一系列的问题逐一进行分析和考量。本文原文连接:http://blog.csdn.net/bluishglc/

2017-08-22 10:22:20 335

转载 数据库切分(4)之全局主键生成策略

本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示本文原文连接: http://blog.csdn.net/bluishglc/article/details/7710738 ,转载请注明出处!

2017-08-22 09:47:36 397

转载 数据库切分(3)之数据库切分实施策略和示例演示

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略第一部分:实施策略图1.数

2017-08-21 09:44:31 819

转载 数据库切分(2)之垂直切分的粒度

垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响.       关联打断地越多,则受影响的join操作越多,应用程序为此做出的妥协就越大,但单表的路由会越简单,与业务的关联性会越小,就越容易使用统一机制处理.在此方向上的极端方案是:打断所有连接,每张表都配有路由规则,可以使用统一机制或框架自动处理.比

2017-08-17 10:54:51 422

转载 数据库切分(1)之基本思想和切分策略

一、基本思想      Sharding(切分)的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID

2017-08-17 10:32:34 585

转载 MyBatis入门教程

一、简介      mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。   下面在整体上把握一下mybatis框架,总结

2017-08-17 09:40:47 547

转载 深入理解Java虚拟机(8)-.Class文件格式(七)

下面继续介绍class文件中的其他信息。class文件中的fields_count和fieldsfields_count描述的是当前的类中定义的字段的个数, 注意, 这里包括静态字段, 但不包括从父类继承的字段。 如果当前class文件是由一个接口生成的, 那么这里的fields_count描述的是接口中定义的字段, 我们知道, 接口中定义的字段默认都是静态的。此外要说明的是,

2017-08-15 11:23:04 513

转载 深入理解Java虚拟机(7)-.Class文件格式(六)

经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, 是因为对于理解class文件格式,常量池是必须要了解的, 因为class文件中其他地方,大量引用了常量池中的数据项。  对于还不了解常量池的读者, 如果想要深入了解class文件格式, 或者想继续读这篇博客和本专栏以后的博客, 那么我建议先把我前面的几篇博客读一下,把常量池的结构熟悉一下, 对于理解后面的内容很有帮助。 

2017-08-11 11:46:48 302

转载 深入理解Java虚拟机(6)-.Class文件格式(五)

前几篇博文, 对class文件中的常量池进行了详细的解释。 前文讲解了常量池中的7种数据项, 它们分别是:CONSTANT_Utf8_infoCONSTANT_NameAndType_infoCONSTANT_Integer_infoCONSTANT_Float_infoCONSTANT_Long_infoCONSTANT_Double_infoCONSTANT_String_info

2017-08-11 11:25:41 392

转载 深入理解Java虚拟机(5)-.Class文件格式(四)

在上一篇博客深入理解Java Class文件格式(三) 中, 介绍了常量池中的两种类型的数据项, 分别是CONSTANT_Utf8_infoCONSTANT_NameAndType_info 。CONSTANT_Utf8_info中存储了几乎所有类型的字符串, 包括方法名, 字段名, 描述符等等。 而CONSTANT_NameAndType_info是方法符号引用或字段的符

2017-08-11 10:48:20 442

转载 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

class文件简介及加载     Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:      class字节码文件是根据JVM虚拟机规范中规定的字节码组织规

2017-08-10 14:25:35 772

转载 深入理解Java虚拟机(4)-.Class文件格式(三)

首先, 让我们回顾一下关于class文件格式的之前两篇博客的主要内容。 在 深入理解Java Class文件格式(一) 中, 讲解了class文件在整个java体系结构中的位置和作用, 讲解了class文件中的魔数和版本号相关的信息, 并且对常量池进行了概述。 在 深入理解Java Class文件格式(二) 中, 主要讲解了class文件中的特殊字符串, 包括类的全限定名, 字段描述符和方

2017-08-10 14:21:31 311

转载 深入理解Java虚拟机(3)-.Class文件格式(二)

在上一篇文章 深入理解Java Class文件格式(一) 中, 介绍了class文件在整个java体系结构中的位置和作用, 并对class文件的整体格式做了说明, 介绍了其中的魔数和版本号的相关内容, 并对常量池做了概述。 在本文章, 继续介绍class文件中的其他内容。class文件中的特殊字符串首先说明一下, 所谓的特殊字符串出现在class文件中的常量池中, 所以

2017-08-10 11:53:23 348

转载 深入理解Java虚拟机(2)-.Class文件格式(一)

Class文件在Java体系结构中的位置和作用在上一篇博客中, 大致讲解了Java虚拟机的体系结构和执行原理。 本篇博客主要讲解能够被JVM识别, 加载并执行的class文件的格式。对于理解JVM和深入理解Java语言, 学习并了解class文件的格式都是必须要掌握的功课。 原因很简单, JVM不会理解我们写的Java源文件, 我们必须把Java源文件编译成class文件,

2017-08-10 11:51:30 474

转载 深入理解Java虚拟机(1)-虚拟机是什么

什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的

2017-08-10 10:49:15 402

转载 redis的主从复制(读写分离)/哨兵(主从切换)配置

当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个slave的服务。         准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使用6000端口。

2017-08-04 14:04:42 12654 2

转载 Redis主从复制和集群搭建配置详解

http://m.blog.csdn.net/u011204847/article/details/51307044http://m.blog.csdn.net/nuli888/article/details/52136822redis主从复制概述1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数

2017-08-04 10:16:28 813

转载 mybatis的嵌套查询和延迟加载分析

本文我们研究mybatis的嵌套查询和延迟加载。 1.预备知识 resultMap是mybatis里的一个高级功能。通过利用association和collection,可以做到将多个表关联到到一起,但又不用写JOIN这种复杂SQL,有点类似于hibernate、JPA。 如果不熟悉resultMap的话,可以读一下官方的文档。 2.官方例子 学习最好的方法就是看例子 

2017-08-03 10:41:17 747 1

转载 数据库的水平/垂直切分的一些概念

垂直切分       垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆

2017-08-03 09:35:01 541

转载 Android四大基本组件介绍与生命周期

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。一:了解四大基本组件Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结

2017-08-02 14:21:10 313

转载 23种设计模式(23)-解释器模式

解释器模式 定义:解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式的结构 下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示:  模式所涉及的角色如下所示:   (1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色

2017-08-02 11:26:57 311

转载 23种设计模式(22)-调停者模式

调停者模式 定义:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。为什么需要调停者 如下图所示,这个示意图中有大量的对象,这些对象既会影响别的对象,又会被别的对象所影响,因此常常叫做同事(Colleagu

2017-08-01 11:57:49 463

转载 23种设计模式(21)-访问者模式

访问者模式     一、概述 1、定义 2、分派的概念  3、分派的类型  4、双重分派     二、结构     三、具体案例  一、概述 1、定义 访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。(访问者模式是一种分离对象数据结构与行为的方法,通过这种分离,可以为一个已存在的

2017-08-01 11:05:14 369

转载 【全解析】屏幕尺寸/分辨率/像素/PPI之间到底什么关系?

今天我给大家来讲讲这几个咱们经常打交道的词到底啥意思,以及他们之间到底有什么关系。这篇文章是我花了一个下午从N多篇文章里提炼出的一个白话版,保证让你看得懂。咱们从手机开始说起吧。先上一张图,给大家看看关于手机屏幕方面的一些参数。红框内的三个参数,大家一定都不陌生,我也不陌生。不过讲真的,就在不久前,我连手机的屏幕尺寸到底是怎么算出来的都不知道。下面我们开始慢慢讲。屏幕(主屏)尺寸是什么

2017-08-01 10:40:17 1115

转载 23种设计模式(20)-状态模式

状态模式 一、概述 二、结构 三、具体案例 四、认识状态模式    一、概述 定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 本质:根据状态来分离和选择行为。 状态:对象实例的属性值。 行为:对象的功能,大多对应到方法上。 状态模式的功能:分离状态的行为,通过维护状态的变化,来调用不同装态对应的不同功能。 状态和行为是相

2017-07-31 10:28:46 357

转载 23种设计模式(19)-备忘录模式

备忘录模式 一、 概念 二、 结构 三、 分类 1.”白箱”备忘录模式的实现 2.“黑箱”备忘录模式的实现 3.“多重”检查点 4.”自述历史”模式  引子 我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状 态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除了几行代码),我们希望返回删除前的状态,便可以使用

2017-07-31 09:53:25 313

转载 23种设计模式(17)-责任链模式

责任链模式     一、 概念     二、 引子     三、 结构     四、 具体案例 一、概念 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到 链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地

2017-07-28 10:05:44 292

转载 23种设计模式(16)-迭代子模式

一、 概述 二、 结构 1.白箱聚集与外禀迭代子 2.黑箱聚集与内禀迭代子         主动迭代子和被动迭代子          静态迭代子和动态迭代子 Fail Fast         Fail Fast在JAVA聚集中的使用         迭代子模式的优点   一、概述1.定义 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭

2017-07-26 16:38:23 832

JEE开发之IDE安装配置、SSM框架整合详细教程

JavaEE开发之myeclipseIDE安装、配置、(maven,svn)、SSM框架整合详细教程

2017-03-20

springmvc带进度条上传源码

springmvc带进度条上传源码

2016-11-07

checkStyle与findBugs-myeclipse10.6插件

checkStyle与findBugs-myeclipse10.6插件

2016-06-17

jacob库包实现word转化为html

可以使用word准换为html的库

2016-04-14

Grails快速开发Web应用程序

Grails快速开发Web应用程序完整的PDF文件

2015-08-14

基于OSGi和Spring开发Web应用的Demo

基于OSGi和Spring开发Web应用的博文对应的代码

2015-08-11

w3cshool完整在线教程

w3c完整版的教程,相信你值得拥有,有需要的可以下载哦

2014-01-23

Hibernate_Session_Transaction

可以对hibernate的 Session 和 Transaction 有更深入的认识 希望对一些概念比较模糊的人 有帮助

2013-03-26

spring security 3 的学习的帮助文档

spring security 3 的学习的帮助文档 里面包含了 两个帖子 和 一个设计文档 ,希望对需要的朋友有用

2013-03-26

S2SH整合完美教程

struts2 spring hibernate的完整整合,包括的 配置文件和注解的不同方式

2013-01-07

Jreport—jasperreport的一个实例demo

Jreport—jasperreport的一个实例demo

2012-02-22

遗传算法基本C++实现

主要一些jsp的源代码。对学习jsp有很大帮助!

2011-05-28

gui的图像分割代码

Matlab的gui实现图像分割代码程序,

2010-05-13

matlab图像分割

matlab 图像分割程序用于图像处理,关于各种处理过程的算法实现

2010-05-05

空空如也

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

TA关注的人

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