自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周江霄

成功取决于习惯,而非智慧

  • 博客(172)
  • 资源 (2)
  • 收藏
  • 关注

原创 2016年上半年总结

按道理,这篇博客应该是两个月之前的,各方面原因吧,最主要是懒,给拖到了今天。   米老师为我们制作的博客书下来了,拿到手里很开心,翻了前两遍,都是看插图,昨天晚上想着是做个总结,顺便把之前写过的网易上写的文章又看了一遍,能够感受到之前思想上一步一步的变化,大部分是集中在14年10月之前,之后便是技术上的总结多一些。由此证明,要想有思想上的提高,可以有两种提升路径,一是是非把自己撞的头破血流的经

2016-10-30 16:44:16 2227 25

原创 IDEA main方法自动补全

最近刚从Eclipse转到IDEA,各种学习丫,IDEA里的main方法是不能自动补齐的,肿么办呢?     1.首先,点击File-->Settings-->Editor-->Live Templates          2.新增模板组     点击右上角的"+",添加"Template Group",如java     3.新增模板

2016-09-27 21:08:55 36662 20

原创 使用Apache commons轻松发送Email

最近项目上需要使用javamail发送邮件,在网上搜索了一些资料,发现Apache common下有个Email组件,对javamail进行了封装,灰常的好用。     1.加入maven坐标依赖 org.apache.commons commons-email 1.3.3

2016-09-27 20:46:08 6020 10

原创 Spring4+Quartz2集群动态创建任务

公司最近需要使用Quartz集群来实现任务的动态创建和删除,之前自己只是用过配置好的单机版的,而且是定时执行的任务,正好借这个机会深入学习一下Quartz。     在正式开始之前,我们先来了解下,spring3.1以下的版本必须使用quartz1.x系列,3.1以上的版本才支持quartz 2.x,不然会出错。至于原因,则是spring对于quartz的支持实现,org.springfr

2016-08-29 18:32:30 9467 13

原创 RMI、RPC和JMS的比较

RMI        Java RMI 指的是远程方法调用 (Remote MethodInvocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。      RMI对服务器的IP地址和端口依赖很紧密,但是在开发的时候不知道将来的服务器IP和端口如何,但是客户端程序依赖这个

2016-06-30 14:43:26 6201 12

原创 MongoDB的安装和启动

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。这篇博文先为大家简单的介绍下,MongoDB的安装。     一、下载     MongoDB的官网可以下载最新的Mong

2016-06-26 23:48:39 5562 7

原创 Nginx+Tomcat实现反向代理

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。     而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上

2016-06-21 23:30:55 29627 13

原创 Nginx根据IP区分实现虚拟主机

Nginx可以使在一台服务器上运行多个网站,而且网络之间互相不干扰.     区分不同的网站有三种方式:     1.ip区分     2.端口区分     3.域名区分     1、将/etc/sysconfig/network-scripts/ifcfg-eth0文件复制一份,命名为ifcfg-eth0:1     修改其中内容:     DEVICE=eth0

2016-06-21 16:06:21 1538 8

原创 Redis的主从复制

Redis的主从复制,可以允许多个Slave server拥有和Master server相同的数据库副本。这样,我们就可以在redis遇到故障时,依然保证在不修改其他配置的情况下,服务可以正常使用。     一、Redis主从复制的特点          1.Master可以拥有多个Slave     2.多个slave可以连接同一个master外,还可以连接到其他sla

2016-05-30 23:36:24 781 9

原创 Redis的数据类型

Redis中一共包含五中数据类型,下面就让我们一块认识下:     一、String      String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。     常用的set命令有:     1.set     设置key对应的值为

2016-05-29 21:22:39 1005 8

原创 Centos下安装Redis步骤简介

一、Redis简介     Redis是一个开源的高性能键值对数据库,他通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。Redis数据库中的所有数据都存储在内存中,由于内存的读写速度远快于硬盘,而且可以将内存中的数据异步写入到硬盘中,同时不影响继续提供服务。Redis虽然是作为数据库开发的,但由于其提供了丰富的功能,越

2016-05-16 22:58:03 744 6

原创 Java IO系统——NIO之Buffer、Channel和Charset类

从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新功能,这些功能被统称为新IO(NIO),新增了许多用于处理输入/输出的类,这些类都被放在java.nio包以及子包下,并且对原java.io包中的很多类都以NIO为基础进行了改写,新增了满足NIO的功能。 一、Why 为什么要使用NIO呢,我们下面从两方面分析:

2016-04-30 14:18:18 915 6

原创 Java IO系统——RandomAccessFile类

RandomAccessFile是Java输入/输出体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通输入/输出流不同的是,RandomAccessFile支持"随机访问"的方式,程序可以调到程序的任意地方来读写数据。RandomAccessFile也有一个局限,就是它只能读写文件,不能读写其他IO节点。     一、

2016-04-26 22:15:21 639 5

原创 Java IO系统——IO流分类说明

字节流和字符流的用法几乎完全一样,区别如下:     1.数据单元不同:字节流操作的是8位的字节(byte),而字符流操作的数据单元是16位的字符。     2.基类不同:字节流InputStream和OutputStream作为基类,字符流已Reader和Writer作为基类。          输入流和输出流:     输入流:     1.基类:InputStream

2016-04-26 10:35:56 1503 10

原创 Java IO系统——File类

File类具有一个欺骗性的名字,通常你会认为它对应的是一个文件,但事实并非如此。它既可以代表一个特定的文件目录,也可以代表一个目录内一系列文件的名字,FilePath似乎是一个更好的名字。它代表了与平台无关的文件和目录,如果想在程序中操作文件和目录,都可以通过File类来完成,File能新建、删除、重命名文件和目录,File不能访问文件内容本身,如果要访问文件本身,则需要使用输入/输出流。

2016-04-25 21:51:35 673 7

原创 Dubbo框架介绍

Dubbo是一个常用的分布式服务框架,它致力于提供高性能和透明化的RPC远程调用服务方案,Dubbo有助于开发企业级的开发效率,以及可以通过简单的配置就可以做到负载均衡。     一、Dubbo的基础知识     1.Dubbo是什么     2.Dubbo涉及的知识          二、Dubbo框架设计介绍     1.Dubbo的各个角色

2016-03-31 21:58:34 1661 5

原创 RPC框架设计和调用详解

一、RPC是什么     RPC是远程调用过程的简写,是一个协议,处于网络通信协议的第五层:会话层,其下就是TCP/IP协议,在建立在其基础上的通信会话协议。RPC定义了交互的模式,而应用程序使用这些模式,来访问其他服务器的方法,并不需要关系具体的网络上的细节。     1.RPC模式     RPC采用C/S模式,客户端发送请求,服务端响应,

2016-03-30 21:58:58 12837 7

原创 ZooKeeper的部署与运行

这篇博文主要介绍一下通过单机和集群两种方式部署一个ZooKeeper,以及如何将其顺利的运行起来。     一、系统环境     通常对Java开源产品而言,在部署与运行之前,总是需要搭建一个合适的环境,通常包括操作系统和Java环境两个方面。     1.操作系统     ZooKeeper对不同平台的支持都很好,在现在绝大多数主流的操作系统上都能够正常运

2016-03-29 19:57:33 2209 9

原创 初识ZooKeeper

本篇博文先对ZooKeeper进行一个初步的较少,ZooKeeper是什么、ZooKeeper的由来及其基本概念,从宏观上对ZooKeeper有个认识。     一、ZooKeeper是什么     ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式

2016-03-28 20:26:31 950 12

原创 2015年下半年成长总结

又一次写成长总结了,总感觉时间过的特别快,尤其是这半年。    一、技术上    差不多是9月份开始接触ITOO3.0和ITOO4.0,从项目中学习到一些新的知识,比如使用Maven构建项目、EJB的学习还有JBOSS服务器的接触,对分布式系统有了初步的概念,如果让自己去编码实现,感觉没有什么问题,但是对整体架构的设计缺乏更细致深入的认识。    从11月份开始,便

2016-02-28 20:47:16 1495 27

原创 Java基础(十一)——反射

Java反射最大的好处就是能在运行期间,获得某个类的结构、成员变量,用来实例化,而不是仅仅靠new来实现。          一、获得Class对象     在Java中,每个类被加载之后,系统就会为类生成一个对象的Class对象,通过该Class对象就可以访问JVM中的这个类了。在Java程序中,获得Class对象通常有如下三种方式。     1.使用Class类

2016-02-03 20:28:51 816 8

原创 Java基础(十)——类加载机制

当Java程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个不步骤来对该类进行初始化。如果没有意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化。     一、类加载     类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为

2016-02-02 20:48:52 682 4

原创 Java基础(九)——泛型

介绍泛型之前,先来张图,从宏观上认识一下我们今天要介绍的主角:泛型。这张导图是笔者自己对泛型的一个整体印象,下面我们从why、what、how三个角度来分析一下,我们说的泛型。

2016-02-01 20:14:59 1216 5

原创 Java基础(八)——集合

在java中,集合主要是为了保存数量不确定的数据,以及保存具有映射关系的数据。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象;而集合里只能保存对象。        java的集合类主要由两个接口派生出来:Collection和Map,Collection和Map是java集合框架的根接口,这两个接口又包含了一些子接口或

2016-01-30 13:42:14 939 8

原创 Java基础(七)——枚举类

在某些情况下,一个类的对象时有限而且固定的,比如季节类,它只有4个对象;再比如行星类,目前它只有8个回想,这种实力有限而且固定的类,在Java里我们被称为枚举类。     一、枚举类入门     Java5新增了一个enum关键字,用以定义枚举类,和普通的类相比,枚举类有如下特点:     1.枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了ja

2016-01-16 20:05:27 677 5

原创 Java基础(六)——接口和抽象类

接口和抽象类很像,那么他们有什么异同呢,这就是这篇博文要讨论的。     一、相同点     1.接口和抽象类都不能被实例化,他们都位于继承树的顶端,用于被其他类实现和继承。     2.接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。     二、不同点     接口和抽象类的差别也很大:    

2016-01-16 19:24:33 638 7

原创 Java基础(五)——final修饰符

final关键字可用于修饰类、变量和方法,final修饰变量时,表示该变量一旦获得了初始值就不可被改变,严格的说法就是,final修饰的变量不可被改变,一旦获得了初始值,该final变量的值就不能被重新赋值。     一、final成员变量     成员变量是随类初始化或对象初始化而初始化的,对于final修饰的成员变量而言,一旦有了初始值,就不能被重新赋值,如果既没有在定

2016-01-16 19:03:03 833 4

原创 Java基础(四)——初始化块

Java使用构造器来对单个对象进行初始化操作,使用构造器先完成整个java对象的状态初始化,然后将java对象返回给程序,从而该java对象的信息更加完整。与构造器作用类似的是初始化块。初始化块是Java类里可以出现的第4种成员,前面依次有成员变量、方法、构造器,下面我们就来介绍一下它:     一、初始化块语法格式     初始化块里的代码可以包含任何可执行性语句,包括定

2016-01-16 17:01:00 122 5

原创 Java基础(三)——形参个数可变的方法

从JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加三点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。下面程序定义了一个形参个数可变的方法。package cn.gome.c_object;public class VarargsTest { //============

2016-01-16 15:52:27 2180 3

原创 Java基础(二)——数组

数组是编程语言中最常见的一种数据结构,可用于存储多个数据。Java的数组要求所有的数组元素具有相同的数据类型,Java的数组既可以用来存储基本类型的数据,也可以用来存储引用类型的数据,只要所有的数组元素具有相同的类型即可。一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可改变。    一、定义数组    Java支持两种语法形式类定义数组。

2016-01-10 18:50:17 868 4

原创 Java基础(一)——equals和==的区别

Java程序中,测试两个变量是否相等有两种方式,一种是利用==运算符,另一种是利用equals()方法。下面这篇博文就简单的介绍一下这两者的不同。    一、"==方法"        当我们使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,只要这样个变量的值相等,就将返回true。    当我们使用==来判断两个引用类型变量是,只有它们指向同一

2016-01-10 17:58:59 1290 6

原创 Activiti进阶(十一)——分配组任务的三种方式

上一篇博客我们讲了分配个人任务的三种方式,这篇博客我们来介绍一下分配组任务的三种方式。     一、流程图                                                                                       图一  分配组任务的三种方式       二、分配组任务方式一:直接指定

2015-12-27 15:49:28 28062 10

原创 Activiti进阶(十)——分配个人任务的三种方式

用户任务(UserTask)即用户操作的任务, 个人任务是用户任务的一种,这篇博文将简单地介绍下分配个人任务的三种方式。     一、流程图                                                                                           图一   分配用户任务流程图

2015-12-23 18:02:31 42793 10

原创 Activiti进阶(九)——接收任务(ReceiveTask)

接收任务(ReceiveTask)即等待任务,接收任务是一个简单任务,它会等待对应消息的到达。当前,官方只实现了这个任务的java语义。 当流程达到接收任务,流程状态会保存到数据库中。在任务创建后,意味着流程会进入等待状态,直到引擎接收了一个特定的消息, 这会触发流程穿过接收任务继续执行。    一、流程图

2015-12-23 11:33:10 22876 6

原创 Activiti进阶(八)——并行网关(ParallelGateWay)

上一篇博客我们讲到了排他网管,这篇博文简单介绍一下他的兄弟,并行网关。     一、流程图                                                                     图一   并行网关网购流程图     在这里,我们模拟网上购物流程,四个用户任务,分别是付款、发货、收款、收货,其中付款和收货的办理

2015-12-22 22:18:43 44727 8

原创 Activiti进阶(七)——排他网关(ExclusiveGateWay)

上一篇博文我们简单介绍了一下连线,也分析了一种情况,就是在工作流中,用户任务下面有两个连线,如何选择工作流的进程。这一篇博文和上一篇博文讨论的主题类似,解决上一篇博文中有多个连线分支的情况,我们可以使用排他网管来解决。     一、流程图

2015-12-20 15:52:09 51861 19

原创 Activiti进阶(六)——连线(SequenceFlow)

这篇博文为大家简单的介绍一下Activiti中的连线,还是和平时一样,我们放在例子中吧。     一、流程图                                                                                        图1   请假流程     在上面的流程图中,我们发现和之前不同的是,用户任

2015-12-20 14:53:41 24522 9

原创 Activiti进阶(五)——流程执行历史记录

之前的几篇文章,为大家简单的介绍了部署流程定义、启动流程实例、查看和办理个人任务以及如何设置和获取流程变量,这一系列的活动组成了一个完整的执行流程,那么一个执行完的流程我们如何查看相关的定义呢,这篇博文就为大家简单的介绍一下流程执行的历史记录查询。    一、查询历史流程实例 /**查询历史流程实例*/ @Test public void findHisProces

2015-12-20 12:15:11 44403 6

原创 Activiti进阶(四)——流程变量的设置和获取

流程变量在整个工作流中扮演很重要的作用。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是只对应一个流程实例。也就是说各个流程实例的流程变量是不相互影响的。这篇博文就简单的为大家介绍下流程变量的设置和获取。一、设置流程变量     流程变量的设置方式有两种,一是通过基本类型设置,第二种是通过JavaBean类型设置。     1

2015-12-18 18:55:07 68349 13

原创 Activiti进阶(三)——流程定义的CRUD

流程定义的RCUD,也就是对流程的增删该查,这篇博文简单的为大家介绍一下使用Activiti的api对流程定义进行增删改查操作。     一、查看流程定义 // 查询流程定义 @Test public void findProcessDifinitionList() { List list = processEngine.getRepositoryService()

2015-12-09 20:01:51 8477 6

cover看片遮字幕的工具

一款很好用的遮挡字幕的工具,方便小巧,可以任意选择颜色。

2013-12-01

VB6IDEMouseWheelAddin.dll

一款很好用的VB鼠标滚轮插件,VB自身代码窗口没有滚轮插件,不方便人们编程,专业人士必备

2013-12-01

空空如也

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

TA关注的人

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