自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程安全(二)-同步工具类

同步工具类:   1闭锁: 闭锁的作用相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过。 当闭锁到达结束状态后,将不会再改变状态,因此这扇门将永远保持打开状态,闭锁可以用来确保某些活动指导其他活动都完成后才继续执行。   例如; 1确保某个计算在其需要的所有资源都被初始化之后才继续执行。 2确保某个服务在其依赖的所有其他服务都已经启动之后才启动。

2012-12-22 18:05:26 630

原创 线程安全(一)

java中地同步机制是使用关键字synchronized,它提供一种独占的加锁方式,还包括volatile变量,显式锁以及原子变量。   注意: 无状态的对象一定是线程安全的。 要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。 对于每个包含多个变量的不变形条件,其中涉及的所有变量度需要同一个锁来保护。 通常,在简单性与性能之间存在着相互制约的因素。当实现某个同步策略是

2012-12-22 18:04:24 547

原创 maven 聚合和继承

聚合和继承: 聚合: Maven会首先解析聚合模块的POM,分析要构建的模块,并计算出一个反应堆构建顺序,然后根据这个顺序依次构建各个模块。 继承: 就是抽象各个模块中重复的配置。在父pom中声明一些配置提供给子pom中使用。以实现移除声明多处使用的目的。 作为父模块中的POM,其打包类型必须是pom,由于父模块只是为了消除重复的配置,它本身不包括pom之外的项目文件也就不需要s

2012-09-22 17:53:56 634

原创 maven 声明周期

Maven生命周期阶段详解 3大生命周期蕴含着小小的阶段,我们按顺序看一下 clean周期: pre-clean:准备清理 clean:真正的清理工作 post-clean:执行清理后的一些后续工作 default周期: validate:验证 initialize:初始化配置 generate-sources:生成源代码编译目录 pro

2012-09-22 17:53:28 679

原创 maven 仓库

maven 仓库: maven clean install  install插件的instal目标是将目的构件输出文件安装至本地仓库 仓库信息可以直接配置在项目的pom配置文件中,认证信息需要配置在settings文件中        nexus     Team Nexus Repository     http://localhos

2012-09-22 17:52:21 735

原创 maven 坐标和依赖

maven坐标: groupId  组Id artifactId 模块Id或者子项目Id  version 版本号 packaging  打包方式 classifier该元素用来帮助定义构建输出的一些附属构件 依赖的配置:

2012-09-22 17:49:43 3345

原创 maven 基础

编写主代码 1 在绝大多数情况下,应该把项目主代码放到src/main/java 目录下(遵循maven的约定),而无需额外的配置。maven会自动搜寻该目录找到项目的主代码,其次主代码的包名应该基于groupId和artifactId,这样更加清晰和符合逻辑方便搜索构件或者java类。 2我们执行maven clean install 命令   clean 告诉maven清除输出目

2012-09-22 17:44:24 622

原创 linux命令 kill 与killall 命令

kill的应用是和ps 或pgrep 命令结合在一起使用的 [root@localhost ~]# ps auxf |grep httpdroot 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 \_ grep httpdroot 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpdapache 48...

2012-04-24 22:56:24 204

原创 inux的vmstat命令详解

vmstat结果内容的解释 Vmstat procs -----------memory----------       ---swap--   -----io----       --system--   -----cpu------        r b   swpd   free    buff       cache   si   so      bi    bo         i...

2012-04-24 22:50:27 168

原创 linux ps 命令详解

inux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运...

2012-04-24 22:48:04 194

原创 linux top命令详解

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu...

2012-04-24 22:46:12 140

linux find命令详解

查询某个文件的具体位置 find / -name statusApproved.vm或者find /etc -name statusApproved.vm (表示在etc目录下面查找) 结果为: find: /proc/15832/fd: Permission denied /usr/ali/apache-tomcat-6.0.35/webapps/ROOT/templates/credi...

2012-04-24 22:17:54 348

原创 深入解析SpringAOP设计

在深入解析SpringAOP设计原理之前,我们需要了解SpringAOP中的几个核心概念: 1 连接点(jointpoint): 一个连接点是一个程序执行过程中的特定点。电信的连接点包括对一个方法的调用,方法执行的过程本身,类的初始化,对象的实例化等。连接点是AOP的核心概念之一,它用来定义在程序中的什么地方能够通过AOP加入额外的逻辑。 2 通知(advice):在某一特定的连接点出运行的代

2012-02-12 19:46:18 696

原创 乔,你终于开博了

自从毕业之后就从未在写过博客,只因为自己半年多一只不再状态,因为好多事,终究只能说自己惭愧,虽然毕业顺利进入阿里巴巴,工作也很顺利,任务圆满完成,但自己对自己松懈了,缺少了过去的斗志。今晚偶然决定不能在这样下去了,决定再次开始我的博客之路,用它来记录下我的技术成长。也到哪天回过来能看一下。        路漫漫其修远兮,吾将上下而求索。不为别的,只为我比别人强,我相信自己。给自己证明自己的一个机

2012-02-01 23:46:39 404

Spring MVC 整体的流程

DispatcherServlet(DispatcherServlet是基于Spring MVC框架Web应用程序的Front Controller,它将负责所有对应当前Web应用程序的Web请求的处理,它使用一个外部化的配置文件,用来配置Spring MVC 框架在处理Web请求过程中所涉及的各个组件,包括HandlerMapping定义,Controller定义,ViewResolver定义等...

2011-04-30 13:17:18 142

数据库系统结构

数据库的三级模式结构: 数据库的三级模式结构是由外模式,模式,内模式。 模式又称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。是所有用户的公共数据视图。数据库模式计全局逻辑结构是数据库的中心和关键,它独立与数据库的其他层次,因此设计数据库模式结构时应首先确定数据库的逻辑模式。 DBMS提供模式描述语言(模式DDL)来严格定义模式。 外模式:又称为子模式或用户模式,它是数据库用户能够...

2011-03-07 16:48:20 156

原创 MapReduce

1.什么是MapReduce?        MapReduce 是由Google公司的Jeffrey Dean 和 Sanjay Ghemawat 开发的一个针对大规模群组中的海量数据处理的分布式编程模型。MapReduce实现了两个功能。Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集。而Reduce是把从两个或更多个Map中,通过多个线程,进程或者独立系统并行执行处...

2011-03-07 11:55:01 240

我该做什么?

IT时代最缺的是什么,是创意,而创意则是建立在你对生活的感触和好奇,也许你不了解如何生活,但你对生活充满好奇和疑问,那么你就有可能成功,因为只有你了解了人们在生活中需要什么,你才会去改善它,让它做到完美。什么是虚拟化,云计算,物联网,我都不知道,但它们也许会在以后的五年内或者十年内改善人们的生活品质,也许不会,我希望自己能快一点想到自己的创意,而不是重复着别人的思想,而在编写着和别人没有多少差别的...

2010-10-31 22:07:11 146

排序算法

为了招聘将以前学过的排序算法又复习了一遍,就贴了出来,希望对忙于找工作的同学有点帮助!同时也希望大家有什么好的算法贴出来一起探讨。 #include<stdio.h> #define N 8 /* 直接插入排序是一种基本的插入排序方法,其基本操作是将第i个记录插入到前面的i-1个已排好序的记录中。 具体的过程为:将第i个记录的关键字Ki顺次与前面记录的关键字Ki-1 ,Ki-...

2010-10-11 19:32:10 166

Spring ApplicationContext

ApplicationContext是一个IoC容器,但它扩展了IoC容器的许多功能:例如像资源的获取,国际化,事件的处理和传播等,你可以基于Spring容器来打造自己的应用程序框架。 首先我们通过ApplicationContext的源代码分析一下: public interface ApplicationContext extends ListableBeanFactory, Hierar...

2010-10-06 13:07:16 143

Spring属性编辑器

什么是属性编辑器,作用? * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器 * 如何定义属性编辑器?  * 继承PropertyEditorSupport类,覆写setAsText()方法(注意要将处理完成的对象通过PropertyEditorSupport的setValue设置回去)  *向Io...

2010-10-06 12:03:27 106

JDK动态代理

注意在使用JDK提供的动态代理要求我们的目标对象必须实现接口。我们可以通过调用java.lang.reflect.Proxy的静态方法   public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) loader是类装载器 ...

2010-10-05 14:12:23 111

java的反射机制

反射:运行时类型 如果你不知道某个对象的确切类型,RTTI可以告诉你,但有一个限制:这个类型在编译时必须已知,这样才能使用RTTI识别它,并利用这些信息做一些有用的时。换句话说,在编译时,编译器必须知道所有要通过RTTI来处理的类。 当通过反射与一个未知类型的对象打交道时,Java虚拟机只是简单地检查这个对象,看它属于哪个特定的类,就像RTTI那样。在用它做其他事情之前必须先加载那个类的C...

2010-10-05 11:16:20 124

原创 Spring源码解析 BeanPostProcessor的实现

BeanPostProcessor是使用IoC容器时经常使用会遇到的一个特性,这个Bean的后置处理器是一个监听器,它可以监听容器触发的事件。把它向IoC容器注册以后,使得容器中管理的Bean具备接收IoC 容器事件回调的能力。具体的后置处理器需要实现接口BeanPostProcessor,然后设置到XML的Bean的配置文件中。这个BeanPostProcessor是一个接口类,它有两个接口方法...

2010-10-02 21:45:16 189

原创 Spring源码解析 lazy-init属性和预实例化

默认情况下会在容器启动时初始化bean, 但是我们可以指定Bean节点的 lazy-init="true" 来延迟初始化bean,这时候,只有第一次获取bean才会初始化bean。在IoC容器的初始化过程中,主要的工作是对BeanDefinition的资源定位,载入,解析和注册。此时依赖注入并没有发生,依赖注入发生在应用第一次向容器所要Bean时。对于容器的初始化有另外一种情况,就是用户可以通过设...

2010-10-02 19:02:59 271

原创 Spring源码解析 依赖注入

当IoC容器的初始化完毕后,我们就要接触IoC容器的核心功能:依赖注入 在基本的IoC容器接口BeanFactory中,有一个getBean的接口方法的定义,这个接口的实现就是触发依赖注入发生的地方。我们从DefaultListableBeanFactory的基类AbstractBeanFactory入手了解getBean()的实现:   public Object getBean(St...

2010-10-02 18:35:31 261

原创 Spring源码解析3 IOC容器的初始化

上一次我们了解BeanDefinition的在载入和解析,现在我们来看一下BeanDefinition的注册过程: 当BeanDefinition在IoC容器中载入和解析完成后,用户定义的BeanDefinition信息已经在IoC容器内建立起了自己的数据结构以及相应的数据表示,在Default ListableBeanFactory中通过一个HashMap来持有载入的BeanDefiniti...

2010-10-02 13:12:25 177

原创 Spring源码解析 2 IOC容器的初始化

前面我们分析了:IoC容器的第一个步骤BeanDefinition的Resource定位,接下我们分析BeanDefinition的载入和解析。我们先总的描述一下的BeanDefinition的载入和解析: BeanDefinition的载入过程包括两部分,首先是通过调用XML的解析器得到Document对象,但这些Document对象并没有按照Spring的Bean规则进行解析。 按照Spr...

2010-10-02 12:06:22 159

原创 Spring源码解析1 IOC容器的初始化

参考《Spring技术内幕》一书:    IoC容器的基本接口是由BeanFactory来定义的,也就是说BeanFactory定义了IoC容器的最基本的形式,并且提供了  IoC容器所应该遵守的最基本的服务契约。BeanFactory只是一个接口类,并没有给出容器的具体实现。DefaultListableBeanFactory,XmlBeanFactory,ApplicationContext...

2010-10-01 22:03:55 170

原创 模块编译

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。模块具有以下特点: 1 模块本身不被编译入内核映像,从而控制了内核的大小 2 模块一旦被加载,它就和内核中的其他部分一样 一、 什么是模块 模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内...

2010-09-18 15:02:59 151

Makefile和Kconfig认识

linux2.6内核的配置系统由以下3个部分组成: Makefile 定义linux内核的编译规则 配置文件Kconfig :给用户提供配置选择的功能 配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面 linux内核中增加程序需要完成以下3项工作: 将编写的源代码复制到linux内核源代码的相应目录。 在目录的Kconfig文件中增加新源代码对应项目...

2010-09-14 18:33:56 126

原创 Spring 引入的运用

参考《Spring高级程序设计》   引入是Spring提供的AOP功能的重要组成部分。使用引入可以动态地在现有的对象中添加新的功能。当我们在现有的对象中添加的功能是一个横切关注点而用传统的面向对象方法难以实现时,我们就可以利用引入动态的添加该功能了。   Spring文档中列举了两个典型的引入用法:对象锁定和对象篡改检测。 我们主要对对象篡改检测进行分析: 现在我们构建一个统计信息收...

2010-09-14 10:33:29 135

原创 BeanFactoryPostProcessor类的运用

package com.spring.ch04; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.spri...

2010-09-07 10:48:26 302

list.h库文件的分析与运用

 lish.h定义双向循环链表的的相关操作。具体的源码分析网上有很多,而且你自己通过阅读注释也可以看懂每个函数的具体功能。接下来就是list.h文件的运用: 由于list.h属于内核模块中的库文件(usr\src\linux-headers-version\include\linux\ 而默认加载的是usr\include\下的库文件,不包含list.h 因此需要自己写一个库文件其中包含li...

2010-08-31 19:11:17 345

原创 如何判断两个类之间的差异

代码实现 package net.mindview.util; import java.util.*; public class Sets { public static <T> Set<T> union(Set<T> a,Set<T> b){ Set<T> result=new HashSet<T>(a); ...

2010-08-16 09:35:11 341

原创 HashSet和散列码的研究

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。。 hashCode 散列码    散列码是由对象导出的一个整数值。在Object中有一个hashCode方法来得到散列码。    基本上,每一个对象都有一个默认的散...

2010-08-10 19:13:05 136

原创 持有对象Arrays.asList异常解决办法

添加一组元素 package com.day1; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; public class AddingGroups { ...

2010-08-08 17:50:29 178

java编程思想 IO13 源码 文件解压缩

package com.io; import java.io.*; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public class GZIPcompress { /** * 用GZIP进行简单压缩 * 直接将输出流封装成GZIPOutputStream或Z...

2010-05-09 15:21:09 225

java编程思想 IO12 源码 文件加锁

package com.io; import java.io.*; import java.nio.channels.FileLock; import java.util.concurrent.TimeUnit; public class FileLocking { /** * 文件加锁,Java的文件加锁直接映射到了本地操作系统的加锁工具 * @throws File...

2010-05-09 12:37:41 127

java编程思想 IO11 源码 内存映射访问与性能

package com.io; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class LargeMappedFiles { /** ...

2010-05-08 21:32:05 149

hadoop开发资料

hadoop 开发文档

2014-12-23

数学建模电子教案(经典例题综合)

展现数学的魅力,经典的例题,经典的思想,让你摆脱建模的困扰!物超所值!

2009-06-14

数字移动通信(课件和flash)

介绍数字移动通信技术的发展过程,以及蓝牙,电话拨号的原理,是一份值得学习的资料。

2009-06-14

加密解密第三版 加密解密

加密解密加密解密加密解密加密解密加密解密加密解密加密解密加密解密

2011-04-30

空空如也

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

TA关注的人

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