自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (4)
  • 收藏
  • 关注

原创 GC --编程员的福利

一 什么是GC        说道JVM,就不得不说GC,垃圾回收机制在JVM中占有很重要的比重。在JVM运行的时候如果不进行垃圾回收,可想而知,再大的内存也会有满的一天,而且GC的出现不需要我们自己管理内存,有JVM定时的检查,将无用的对象回收,这样对我们的编码带来很大的便利!   二 GC是怎么工作     GC通过一定的算法 ,在JVM运行的时候定时的去检查内存空间,然后根据一定

2016-08-20 15:49:15 548 2

原创 redis系列--事务

一、redis事务说明:        并发控制单位,是用户定义的一个操作系列,这些操作要么全做,要么一个都不做,当发生错误的时候会发生事务回滚。 redis对事务的支持目前还是比较简单地,只能保证一个client发起的事务中的命令可以连续的执行,而且中间不会插入其他client命令。二、redis 事务操作:       一个client在一个连接中发出multi命令,这是连接会进入

2016-06-14 10:34:20 5728 7

原创 重新认识装饰模式--装饰模式实现AOP

一、AOP是什么AOP:面向方面编程,他是一种编程范式,提供从另外一个角度来考虑程序结构以完善面向对象编程。二、AOP的功能      在系统开发过程中会有一些共性的功能,这是面向对象的纵向思考方式就能解决问题了,这时候AOP横向延伸就可以解决这些公共服务织入系统中。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,比如事务处理、日志处理、权限控制封装起来,便于减少系

2016-05-25 22:57:11 7695 1

原创 分布式--系统组成模块儿

从简单的系统到分布式系统,我们是为了解决访问量增多的问题,访问多了就会出现一系列的问题,出现这些问题我们需要想办法解决,首先在组成成分想我们需要考虑解决这些问题的方案。下面是分布式系统的基本组成模块儿:1.分布式任务处理:负责具体的业务逻辑处理2.分布式节点注册和查询:负责管理所有分布式节点的命名和物理信息的注册与查询,是节点之间联系的桥梁3.分布式DB:分布式结构化数据存取4.分

2016-08-20 15:37:07 1123 2

原创 分布式--简单介绍分布式算法

今天小编只是简单介绍一下分布式算法,大家先看看有什么就可以,关于分布式小编会继续研究,继续分享的。   1.计时模型算法     分类:同步,异步,部分同步    同步:字节调用执行,组件之间按照步骤执行,这个模型无法反应现实情况,实质在分布式的情况下很少有真正的同步,这个模型会带来各种阻塞    异步:异步有点儿复杂,组件之间的动作按照他们自己的顺序要求进行。这个模型接近于显

2016-08-20 15:32:58 4376 2

原创 多线程---再次认识volatile,Synchronize,lock

在多线程中我们常用的保证共享变量的方法有很多,现在我们介绍其中的一种,volatile,也是效率最高的一种。   一 、volatile的意义:            为了确保共享变量能被正确和一致的更新,字段被声明称volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。volatile变量修饰符如果使用恰当的话,它比synchronize的使用和执行成本更低,因此它

2016-08-20 15:24:28 1269 2

转载 java中volatile关键字的含义

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized

2016-07-31 21:46:42 355 2

原创 JVM--java内存模型

大家可能看到这篇的内容,java的内存模型认为与JVM没有关系,其实不是,所有的程序运行都是在内存中运行的,我们这里所得java内存模型其实就是方法运行过程中在JVM内存空间内是怎么分配的。    1.首先需要强调的一点就是每个线程都有一个工作内存,这个工作内存和主存是相互独立的。此外工作内存中存放着主存变量的值的拷贝。运行情况如下:       2.内存有他自己的特性:   

2016-07-31 21:30:11 443 2

原创 JVM --结构与运行

一  JVM结构:   JVM包括:类加载子系统,内存空间,垃圾回收器,PC寄存器四部分。   首先我们来简单说一下这几部分:  PC寄存器:PC寄存器是属于线程级别的,在线程创建时创建,指向下一条指令的地址,在执行本地方法的时候PC值为undefined。这个和我们系统的PC计数器功能很相似,只不过PC寄存器管理的开发程序运行,而PC计算器管理的是系统软件运行。垃圾收集器:说

2016-07-31 21:07:17 381 2

原创 linux---nginx了解与安装

最近在做的一个电商项目用到了nginx来负载均衡,最近总结一下关于nginx的技术,另外电商里面涉及到的也会做一个分享! 一 什么是nginx 1.是一个使用c语言开发的高性能的http服务器及反向代理服务器。 2.Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx

2016-07-28 15:13:41 498 3

原创 linux--tomcat安装

其实在linux下安装一些东西挺简单的,主要是得熟悉linux的各种命令,今天通过tomcat安装来分享一下linux下的软件的安装规律。   一 、了解linux系统      linux系统一个基于文件的系统。在linux系统中一切为文件,不管是我们的命令,服务,还是进程,对于linux内核来讲都是文件,将我们的操作变得简单。此外linux支持多用户,多任务,多线程,能够为我们提供稳定

2016-07-28 10:25:59 439 2

原创 linux ---nginx实现负载均衡

l服务器为linux系统,采用nginx实现负载均衡,我们这里只有简单的两台服务器,主要是了解nginx负载均衡的搭建过程!

2016-07-28 09:31:52 459 2

原创 class,编程的基础

我们用了这么久的class,很少有人认真的去看过我们class源码,今天我们来看看Class能带给我们什么?     一 如何获取class实例:    方法一:通过类本身获取class实例:Class clazz1 = Person.class;System.out.println(clazz1.getName());   方法二、通过运行时类来获取class实例: Perso

2016-07-27 23:23:37 733 6

原创 cookie小知识点儿总结

之前一直不是很理解cookie到底是如何工作的,今天我们来简单的看看cookie.一  cookie原理:       是由set-cookie发送的键--值,让浏览器记住信息。浏览器在之后的请求中会携带cookie 键--值给服务器、二  cookie操作:    1.存cookie:创建并发送cookie给浏览器Cookie cookie = new Cookie("nam

2016-07-27 21:16:51 477 2

原创 shiro原理实践+++

最近的项目中,因为用到了shiro权限控制,小编自己总结了一些。咱们进入正题:   一 做什么:   shiro是Appache旗下的关于权限控制的一个产品,实现了对于权限的控制。是由java语言实现的一个框架,通过一个简单易用的API提供身份验证、授权、加密会话管理等功能。在实现单点登录方面为大型企业系统提供了便利。此外shiro可以实现共享一个session对象,并且没有对应用服务器或

2016-07-23 00:09:05 2272 7

原创 CAS 实现单点登录SSO

一 CAS是什么?为Web应用系统提供一种可靠的单点登录解决方法的一个项目,是通过共享cookie实现的。二 CAS原理  CAS是由CAS Server 和CAS Client组成:1.架构图: TGC:存放用户身份认证凭证的cookieST:服务票据,由CAS Server发出,通过客户端浏览器到达业务服务器端,一个特定的服务只有一个个唯一的ST。P

2016-07-22 23:58:18 465

原创 多线程同步---synchronize

在项目中我们经常遇到这样一种情况:两个人同时操作数据库,导致数据异常。针对于数据库级别我们采用锁机制,还有一种方法使规定我们方法调用的权限,当你在使用这个资源的时候别人是不允许使用的,在多线程中只需要一个修饰词就可以实现:synchronize。      第一步: 下面我们采用银行取钱的场景来代码实现Account类:public class Account { pr

2016-06-14 21:49:57 805 2

原创 多线程--sleep、yield对比

这篇小编想分享一下关于我们常见的sleep、yield、wait方法的有什么不同。1、sleep:线程睡眠,如果我们需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,就可以通过调用sleep方法来实现。在线程进入阻塞状态后,再sleep 这段时间内,该线程不会获得执行的机会,及时系统中没有运行的线程,处于sleep中的线程也不会执行。主要由两种重载方法:(1)static void

2016-06-14 20:30:35 743 2

原创 控制线程--后台线程

我们上一篇讲了join线程,这一篇我们主要来了解一下后台线程。后台线程主要是为其他线程提供服务,如果前台线程都死亡,后台线程会自动死亡,JVM的来及回收机制就是典型的后台线程,下面我们来看看实例。public class DaemonTest extends Thread{ public void run(){ for(int i=0;i<1000;i++){

2016-06-14 15:46:28 607 2

原创 线程控制--join线程

在我们做项目的时候时常会有这样的一种需求:我们需要执行两个方法,一个方法要等另一个方法执行完才能执行,这样的状况放到多线程中要怎么实现呢?今天就来看看多线程中的join方法。    我们的均方法通常是把一个大问题分成许多小问题,每个小问题分配一个线程,当所有的小问题都得到处理后,在调用主线程来进一步操作。下面我们来看一个demo: public class ThreadTest exte

2016-06-14 15:00:33 455 3

原创 redis系列--服务级别命令

这一篇小编想给大家分享一些服务级别的命令。   1.keys命令:返回满足的所有key2.expire:给key 设置一个过期的时间:3.persist:移除给定的key的过期时间,将key持久化4.randomkey:随机返回key空间的一个key5.rename:重命名key:6.type:返回值的类型:7.pin

2016-06-14 09:54:39 595 2

原创 redis系列--set操作

这篇小编想要很大家分享一下关于set的一些操作命令,这篇的操作命令可能有点儿多,大家看着就行,用的时候可以回来找。关于集合操作命令多也无可厚非,因为集合存在很多种的情况需要处理,下面我们来看一下这些命令:1.添加命令---sadd:sadd myset "hello"sadd myset "world"2.删除命令--srem:sadd myset2 "one"

2016-06-13 21:56:24 562 2

原创 redis系列--list命令

这篇小编想分享一下关于list命令的操作。list是一个链表结构,主要功能是push、pop、获取一个范围的所有值。1.lpush list1"hello"------压入hello  lpush list1 "world"  lrange list1 0 1--取值2.rpush  list2 "lijie"  rpush list2 "lililiuli"  l

2016-06-13 21:11:30 505 2

原创 redis系列---hashset操作命令

这篇小编分享一下关于hash操作的,什么是hash?hash是存一个string类型的field与value的映射表。关于hash操作分为两部分:和String命令一直的命令,特殊的命令。相同的我们这里只举一个例子:hset1.hset: 设置hash field 为指定值,如果key不存在,则先创建不同的:1.hexists:存在的字段2.hlen:has

2016-06-13 20:56:34 17879 2

原创 redis系列--String常见命令

安装好后我们开始学习redis的一些常见命令,这一节我们来整理一下操作String的命令。1.get set  设置数据并持久化到数据库中。2.setnx-----setnx age 33 设置不存在的key3.setex------setex haircolor 10 red      设置字段并设置字段存在的时效4.setrange  ------setrange name

2016-06-13 20:48:08 554 1

原创 redis系列--redis安装与设置配置文件

这一篇小编主要讲一下在linux环境下安装redis。在安装redis 之前确定自己的虚拟机安装完成,虚拟机下的linux系统安装完成、xshell安装好并与虚拟机下的linux创建好连接。PS:xshell可以快速执行linux命令,如果你的虚拟机很卡,这是一个很好的解决办法安装步骤:1.创建redis文件夹(ps:在root用户下执行以下的所有命令)   mkdir -p /usr

2016-06-13 20:37:05 1411 1

原创 redis系列 ---简单介绍

redis 是开源的,BSD许可,高级的key-value存储系统,可以用来存储字符串、哈希结构、链表、结合,因此常用用来踢动数据结构服务。    在linux系统下的存储系统。redis和memcached相比,独特之处:   1.redis可以用来做存储,而memercache是用来做缓存,这个特点主要因为其有持久化的功能。   2.存储的数据有结构,对于memercache来

2016-06-13 20:11:43 710 1

原创 5月份英语学习

五月份过去了,这个月我们组的学习热情特比高,经常玩儿个英语小游戏。其实这个月要感谢我们的组长,一直在努力的带着我们学习,也很享受大家营造的这个氛围,很棒,很舒服,让大家很喜欢学习英语。   这个月我们长玩的是一个猜词游戏。一个人用学习过的资料描述手中的单词,大家轮流描述,剩余的人一起猜,大家玩儿的很开心,英语学得也特别的棒!   开开心心的学习英语不是一种负担,而是一种享受,珍惜现在的英语

2016-05-31 22:22:51 424 1

原创 重新认识策略模式---利用策略实现容错恢复机制

一、说明:      容错恢复机制是应用程序开发中常见的功能,在程序运行的时候,正常情况下应该按照某种方式来做,按照某种方式来做发生错误的话,系统并不会崩溃。而是由容忍出错的能力,并且还能在出错后有备用方案,也就是恢复机制,使程序正常执行下去。二、实例:   下面一个实例:所有对系统的操作都有日志记录,而且这个日志还需要有管理界面,通常情况下,会把日志记录到数据库里面,方便后续的管

2016-05-30 15:50:22 791 2

原创 重新认识策略模式--简单分析

一、说明    定义了一系列的算法,并把每个算法封装起来,使他们可以相互替换。这种模式使算法可独立于使用它的客户而变化。它的中心不是如何实现算法,而是如何组织、调用这些算法,让程序结构更灵活,具有更好的维护性和扩展性。二、类图:三、代码实现:/** * 策略,定义算法接口*/public interface Strategy{ //某个算法接口,可以传入参数,可

2016-05-30 15:40:55 377 2

原创 OA项目----实现树状结构

树状结构在项目中很常用,最近小编在做项目中涉及到了树状结构,现在给大家分享一下。      树状结构有两个核心:           1.递归实现树状结构, 因为涉及到父节点和子节点,所以我们需要层层递归才能得到一个节点的子节点。在后台通过递归可以实现树状结构并返回。public class DepartmentUtils { /** * 便利部门树,把所有的不嫩便利

2016-05-28 21:18:26 682 1

原创 OA--架构整理

做OA这个项目有一段时间了,下面我来讲讲OA这个项目的架构。OA这个项目整体采用SSH来实现的,即spring、struts、hibernate。在这个架构中,我们需要通过hibernate实现数据持久化,通过hibernate维护实体之间的依赖关系;spring实现容器管理,管理各个bean,这里我们通过注解的方式实现容器注入,容器管理;采用上struts实现对于业务的管理.在项目架构的过程中需

2016-05-28 21:05:23 1447 2

原创 重新认识装饰模式——结合技术简单分析

最近小编一直在整理设计模式,和大家分享一些我最近的一些收获吧!今天先来整理装饰模式!   一、说明:    装饰模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案 二、类图:  三、代码实现://被装饰抽象类public abstract class Beverage{ String description ="UnKnown B

2016-05-25 20:45:35 564 1

原创 4月份英语学习

今天突然想写一篇英语博客了,因为这个月我和我的小伙伴们英语学习特别有激情!       其实开始和我的小伙伴们学习英语的时候感觉AJ这个材料并不是很好,好多重复性的东西,但是深入的学习之后发现他可以带动我们学习英语的热情。我们从第一个材料开始讨论,其实开始讨论的并不是很激烈,可能是对这个材料开始的时候还不是很熟的原因吧,随着深入的学习发现 这个材料太棒了!我们每天都会跟着AJ老师很富有激情的去

2016-04-26 19:52:56 430 3

原创 Spring框架带给我们的好处

我们常常说用了Spring框架,但是spring框架到底有什么作用呢?其实很多人都可以很轻出的告诉我,Spring使我们的开发更加简单。那么Spring是怎么使我们的框架变得简单的呢?1.基于pojo的轻量级和最小侵入性编程   在使用Spring之前,我们写代码需要先进性一些常规性的操作,比如数据库的连接,加载日志服务等,他会有一下一段类似的代码:public class

2016-04-26 19:44:36 1829 5

原创 Spring容器简单理解

容器是spring框架的核心,spring容器使用依赖注入管理构成应用的组件,她会创建相互协作的组件之间的关联。这些对象更加简单干净,更急容易理解,更统一重用以及更易于进行单元测试!      一、spring自带了两种容器实现             beanFactory(bean工厂):最简单的容器,提供DI支持。             applicationC

2016-04-26 18:39:21 1373 3

原创 代理--静态代理和动态代理

平时我们总用到代理,这里我简单讲解一下我们用的静态代理和动态代理。      一 、静态代理:通过代理来实现真实对象的方法,在访问的时候不需要访问真实的对象,从而实现了对真实对象的保护。      静态代理实现:public class UserManagerProxy implements UserManager { private UserManager use

2016-04-06 17:12:29 499 3

原创 java 多线程--概要

最近在看多线程这一块儿,会对多线程做一个比较详细的介绍吧!之前看了好多大牛的博客,有看懂的,也有看不懂的,在这里做一个总结。  一、是什么   多线程是多任务的一种特别的形式,但是多线程使用了更小的资源开销。但是一个线程是不鞥呢独立存在的,他必须是进程的一部分。此外多线程能够满足程序员编写高效率的程序来达到充分利用CPU的目的。二:生命周期新建状态:使用

2016-03-31 10:41:36 525 3

原创 hibernate总结---懒加载

我们在做数据库操作的时候存在这样的一个场景:我们涉及到的表太多了,访问的数据量过大,就会发现有时候很慢,甚至报错,但是hibernate很好的解决了这个问题--懒加载机制。    hibernate3是支持懒加载的,在发出load命令的时候,我们发现:他并不会发出查询指令,而是返回代理对象,当真正需要查询的时候通过代理对象去查询。    懒加载需要注意的是:    1 实体类不能是fi

2016-03-08 21:50:55 475 4

原创 hibernate总结---session与object

在hibernate使用中,对于session的使用时必不可少的,这一节我们来简单谈谈session和object!对象的三种状态:瞬时对象(Transient Objects):使用new 操作符初始化的对象不是立刻就持久的,它的状态是顺势的,只要不引用这些对象,他们的状态将会丢失,并由垃圾回收机制回收。持久化对象(Persist Objects):持久实例是任何就有数据库表示的

2016-03-08 21:48:52 497 2

策略实现容错恢复机制

策略实现容错恢复机制,实现算法上的动态转换。

2016-05-30

装饰模式实现AOP

采用装饰实现AOP,在横切角度上加入公共服务。

2016-05-30

activiti工具

针对于博客讲解activiti需要嵌入的插件,希望可以帮到大家!

2016-01-19

工作流小demo

简单的工作流操作,主要包括针对我博客工作流-helloworld实现,以及一些基础的工作流的操作,很简单,希望可以帮到大家!

2016-01-19

空空如也

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

TA关注的人

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