自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (23)
  • 收藏
  • 关注

原创 多线程编程-减少上下文切换(1)

1、多线程编程-1-如何减少上下文切换    我们在使用多线程时,不是多线程就能提升程序的执行速度,程序在执行时,多线程 是 CPU通过给每个线程分配CPU时间片来实现的,时间片 是CPU分配给每个线程执行的时间,因时间片非常短,所以CPU通过不停地切换线程执行。什么是上下文切换:     操作系统中,CPU时间分片切换到另一个就绪的线程,则需要保存当前线程的运行的位置,同时需要加载需

2016-07-31 21:40:17 5120

原创 分布式锁实现的三种方式

要实现分布式锁,需要满足以下功能1、同一线程可重入2、有高可用的获取&释放锁3、获取锁&释放锁性能好4、这把锁最好是组阻塞的5、分布式锁解决是在集群环境下,只能有一个线程在同一时刻进入某一个方法实现分布式锁的三种方法1、数据库(乐观锁--insert 一条记录,此记录的方法名做为唯一索引,插入成功认为获取到锁),排它锁(for update方法),此方法...

2019-10-11 18:42:49 239

原创 架构-负载均衡

互联网常见的分布式加构分层1、客户端层(浏览器、APP、小程序 等)2、反向代理层(Nginx)3、站点层(web-server)4、服务层(service,,,dubbo webservic)5、数据层(DB)这五个分层的负载均衡策略1、客户端到反向代理层是通过DNS 轮询IP(反向代理层(nginx的对外网ip)2、反向代理层 到站点层是 通过nginx来...

2019-10-09 21:17:28 287

原创 spring事物的七种传播行为

1、REQUIRED :需要事物:如果当前存在事物,就沿用当前事物,否则就新建一个事物2、SUPPORTS:支持事物:如果当前存在事物,就沿用当前事物,如果不存在,则继续用无事物的方式运行子方法3、MANDATORY:必须使用事物:如果当前没有事物,则抛出异常,如果存在当前事物,就沿用当前事物4、REQUITES_NEW:创建新的事物:无论当前是否有事物,都会创建新的事物,这样新的事物...

2019-07-05 23:30:02 676

原创 数据库的四个隔离级别

1、未提交读:事物1读取了其它事物示提交的记录,出现了脏读2、读写提交:事物不会读取其它事物未提交的记录,避免了脏读,但是不可重复读3、可重复读:会出现幻读(看到的和实际的可能不同),可重复读是指一条记录在一个事物中每次读取的结果是一致的。4、串行化:按SQL提交的顺序一条条的执行。...

2019-07-05 23:02:29 161

原创 用time实现心跳检查

TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println("test"); } }; Timer timer = new Timer("schedule-test"); timer.schedule(time

2017-09-11 21:34:59 582

原创 终止线程的方法

1、在run()方法,用return返回2、在run()的方法中设置全局变量,(while()),将变量设置为falsepublic volatile exist = true;run(){while(exist){}}3、或者捕获异常,抛出try { .... wait();} catch (InterruptedExcept

2017-09-11 21:15:56 285

转载 基于Spring可扩展Schema提供自定义配置支持

spring 可以基于schema 扩展,自定义 schema。参考文档自己搭了个应用试验了一下: 首先看下自己写的 myns.xsd  Xml代码  xml version="1.0" encoding="UTF-8"?>  xsd:schema xmlns="http://www.yjhexy.com/schema/m

2017-02-09 17:07:23 610

原创 非阻塞同步

非阻塞同步:client:public class SocketClientDaemon { public static void main(String[] args )throws Exception{ CountDownLatch countDownLatch = new CountDownLatch(10); //开启10个线程 ,同时发

2016-07-10 19:37:15 309

原创 线程池合理配置

要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析:任务的性质:CPU密集型任务,IO密集型任务和混合型任务。任务的优先级:高,中和低。任务的执行时间:长,中和短。任务的依赖性:是否依赖其他系统资源,如数据库连接。任务性质不同的任务可以用不同规模的线程池分开处理。CPU密集型任务配置尽可能少的线程数量,如配置Ncpu+1个线程的线程池。IO密集型任务则由于需

2016-07-10 19:34:52 1503

转载 vmstat

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。一般vmst

2016-06-25 21:11:47 306

原创 itables

启动和停止1、命令:service iptables start/stop/restart或者直接去找/etc/init.d/下的2、配置文件:/etc/sysconfig/iptables没有的话,可以用iptables-save生成框架: tables > chains > rules(target)整体上可认为iptables就是由许多chain组成的

2016-06-11 21:19:24 464

原创 对象序列化。

1、利用jdk自带的 (ObjectOutPutStream.writeObject ,ObjectInputStream.readObject())public static byte[] ObjectToByte(java.lang.Object obj) {      byte[] bytes = null;      try {          // obje

2016-05-21 23:24:57 307

原创 MD5加密

MessageDigest md5 = MessageDigest.getInstance("MD5");md5.reset();md5.update("sdf".getBytes());byte[] bKey = md5.digest();long res = ((long) (bKey[3] & 0xFF) 24) | ((long) (bKey[2] & 0xFF)

2016-05-21 23:10:36 419

原创 hashcode

自个实现hashcode. ,一个对象进行比较时,要实现hashCode 和equals()方法。@Overridepublic int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; //ID 为类的某一个属性 return result;}@

2016-05-21 19:30:20 430

转载 hscode & equals

1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。equals()方法在object类中定义如下:Java代码 public boolean equals(Object obj) {return (this == obj);} public boolean equals(Object obj) {

2016-05-20 21:13:42 334

原创 redis-sort set

有序集合sorted set和set一样也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score。sorted set的实现是skip list(跳表)和hash table的混合体当元素被添加到集合中时,一个元素到score的映射被添加到hash table中,所以给定一个元素获取score的开销是O(1),另一个score到元素的映射被添加到skip

2016-05-08 18:01:14 804

原创 redis-集合

集合是用空的散列实现的,所以集合的添加和查找的时间复杂度为o(1),集合与列表的区别是:集合是无序且不能有重复数据,列表可以用有序且可以有复复的VALUE值。列表是基于链表实现的,所以添加数据的时间复杂度为o(1),但查找就慢了。主要命令如下1、sadd、srem (添加、删除元素)127.0.0.1:6379> sadd mathscores 1 2 3 4(integer)

2016-05-02 19:59:37 500

原创 redis-list(列表)

redis的列表是使用双向链表实现的。所以向两端添加元素时间复杂度为0(1),不过使用链表的代价是查找较慢。1、lpush 、rpush (向左端、右端添加元素),lrange 取一定范围的元素的值,127.0.0.1:6379> lpush listexample 2(integer) 1127.0.0.1:6379> lpush listexample 3 4 5  //一次插

2016-05-02 13:39:10 336

原创 redis-散列

1、hget hset hmget hmset hexists hgetall hdel127.0.0.1:6379> hgetall userinfo 1) "name" 2) "\xe5\xbc\xa0\xe4\xb8\x89" 3) "pwd" 4) "000000" 5) "address" 6) " beijing caoyangqu" 7) "tel"

2016-05-02 13:13:19 456

原创 redis-list

Redis lists基于Linked Lists实现。这意味着即使在一个list中有数百万个元素,在头部或尾部添加一个元素的操作,其时间复杂度也是常数级别的。用LPUSH 命令在十个元素的list头部添加新元素,和在千万元素list头部添加新元素的速度相同。那么,坏消息是什么?在数组实现的list中利用索引访问元素的速度极快,而同样的操作在linked list实现的list上没有那么快

2016-04-26 16:15:25 419

原创 reids-string

几个注意事项:1、incr是原子性的,意味着多个客户端同时调用这个incr,是串行执行的。2、getset命令,将新值设置成功后,返回旧的值。127.0.0.1:6380> set test 001OK127.0.0.1:6380> get test"001"127.0.0.1:6380> getset test 002"001"3、mset mget一次赋

2016-04-24 11:29:08 372

原创 redis -key的定义规则

Redis keysRedis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值。关于key的几条规则:太长的键值不是个好主意,例如1024字节的键值就不是个好主意,不仅因为消耗内存,而且在数据中查找这类键值的计算成本很高。太短的键值通常也不是好主意,如果你要用”u:1

2016-04-24 11:04:25 25508 1

原创 目录文件

1、ls -l 看下文件属性 crw-rw----. 1 root video    10, 175 Apr 15 18:33 agpgartdrwxr-xr-x. 2 root root         620 Apr 15 18:33 block第一个字符代表这个文件是目录、文件或链接文件等等。当为[ d ]则是目录当为[ - ]则是文件;若是[ l ]则表

2016-04-16 10:43:28 463

原创 使用beanutils动态排序

1.beanCompartor 动态排序还是通过反射,动态设定Bean按照哪个属性来排序,而不再需要在bean的Compare接口进行复杂的条件判断。List peoples = ...; // Person对象的列表Collections.sort(peoples, new BeanComparator("age"));如果要支持多个属性的复合排序,如"Order By la

2016-01-04 09:24:32 761

转载 oracle执行效率

、识别占用资源较多的语句的方法(4种方法)测试组和最终用户反馈的与反应缓慢有关的问题。利用V_$SQLAREA视图提供了执行的细节。(执行、读取磁盘和读取缓冲区的次数)数据列EXECUTIONS:执行次数DISK_READS:读盘次数COMMAND_TYPE:命令类型(3:select,2:insert;6:update;7delete;47:pl/sql程序单元)

2013-11-28 09:20:04 3014

转载 spring dm环境担建

<br />Spring dm环境搭建<br />1 下载eclipse 3.6 压缩包并解压。下载地址:<br />http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/R/eclipse-jee-helios-win32.zip<br /> <br />2 下载spring-osgi-2.0.0.M1压缩包并解压到e:/spring-dm。下载地址:<br />http://

2011-05-03 15:03:00 2962

转载 几种远程传输协议比较

一、综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能。RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服

2011-04-25 09:51:00 5771

转载 web前端性能化

<br />首先从一次完整的的请求说起:(以此为例get,www,baidu.com)<br />1,webbrower 发出request,<br />2,然后解析www.baidu.com为ip,找到ip的服务器,<br />3,服务器处理请求资源并返回请求的内容,<br />4,browser接受请求内容过程,(返回内容是按顺序读取的)<br />4.1遇到外联css,就会并发去读取css内容(),<br />4.2遇到图片时,回去并发读取图片,目前浏览器的并发数为2,<br />4.3遇到js时则会

2011-04-25 09:34:00 515

原创 线程间的通信-生产消费者模式

<br />JAVA线程间通信问题 <br /><br />有很多现实问题要求不仅要同步的访问同一共享资源,而且线程间还彼此牵制,通过相互通信来向前推进。那么,多个线程之间是如何进行通信的呢? <br /><br /><br /><br />解决思路 <br />在现实应用中,很多时候都需要让多个线程按照一定的次序来访问共享资源,例如,经典的生产者和消费者问题。这类问题描述了这样一种情况,假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费。如果仓库中没有产品,则生产者可

2011-04-08 18:27:00 1275

转载 BTree和位图索引

<br />B-树索引在Oracle中是一个通用的索引,在创建索引时它就是默认的索引类型。最多可以包括32列。<br /> <br />位图索引Oracle为每个唯一键创建一个位图,然后把与键值所关联的ROWID保存为位图。最多可以包括30列。<br /> <br />一般情况下,大多数用户都只创建TYPE为NORMAL的B-树索引,所以对于较低基数的列我们都是不创建索引的,因为B-树索引对查询速度提升不一定会有改善,甚至会增加Insert、Update、Delete命令所消耗的时间。下面我们通过一个例子来

2011-04-05 11:42:00 3443 2

转载 spring的几个过滤器和监听器

Spring 所提供的过滤器和监听器   Spring 为 Web 应用提供了几个过滤器和监听器,在适合的时间使用它们,可以解决一些常见的 Web 应用问题。   延迟加载过滤器    Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关

2011-02-16 17:17:00 4791

转载 持续集成

<br />《持续集成》总结了10条实践,它们分别为:      a.只维护一个源码仓库<br />自动化构建<br />让构建自行测试<br />每人每天向主干提交代码<br />每次提交都应在持续集成机器上构建主干<br />保持快速的构建<br />在模拟生产环境中测试<br />让每个人都能轻易获得最新的可执行文件<br />每个人都能看到进度<br />自动化部署<br />原始文章距今已10年有余,这在软件行业中算是很长的时间了,但我们都能看到Martin总结的这些实践依旧闪耀着光芒,依旧有很多

2011-02-16 09:43:00 1402

转载 java -verbose命令

<br />java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。<br />1.java -verbose:class<br />在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX  (XXX为程序名)你会在控制台看到加载的类的情况。<br /> verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下: [Lo

2011-02-16 09:19:00 31779 1

转载 java的几种引用类型

<br />Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配给新的对象了,程序如果继续使用这个引用的话会造成不可预期的结果。开发人员有可能忘记显式的调用释放内存

2011-02-02 10:26:00 9036

转载 centos安装

<br />     CentOS——全名为“社区企业操作系统”(Community Enterprise Operating System)。CentOS 是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 GNU/Linux 发行版,其稳定性值得信赖,CentOS就是Redhat的AS/ES/WS的免费版本。使用CentOS,可以获得和AS/ES/WS相同的性能和感受。CentOS的最新版本是CentOS5

2011-01-09 12:44:00 499

原创 tomcat 和apache 配置

为什么要进行整合?Tomcat:    具有传统的web服务器的功能,除了可以处理html页面以外,还可以作为servelt容器来解析jsp和servlet。 Apache:    对静态页面,资源文件(图片,文本,js,htc等)的处理能力(速度,稳定)远远大于Tomcat。但是不支持asp, php, cgi, jsp等动态网页。 同是作为web服务器,仅仅处理html页面时,Apache服务器的性能比tomcat要好,因此,常常将两者结合。一般来说,大的站点都是将Tomcat与Apache的结合,Ap

2011-01-08 17:50:00 572

转载 tomcat ,apache 负载均衡配置

<br />采用apache2.2+tomcat6+mod_jk模式实现负载均衡 <br />环境说明: <br />JDK: jdk1.5.0_06 <br />Apache: apache_2.2.11-win32-x86-no_ssl.msi <br />Tomcat: apache-tomcat-6.0.20.zip <br />mod_jk: mod_jk-1.2.28-httpd-2.2.3.so <br />安装步骤: <br />1. 安装jdk <br />2. 安装apache2.2 直

2011-01-08 17:18:00 556

转载 spring security

spring security 提供系统安全功能<br />文章分类:Java编程<br />1.概述<br />     由于 spring security 是在权限系统开发关闭后补上去的所以只使用了 spring security 中的提供的一部分内容;<br />完成功能包括:用户校验、注销功能、Session 失效处理、防止一个用户同一时间内多次登录系统、保护系统资源(防止绕过登录访问资源)。<br /> <br />2.代码片段<br /> Applicationcontext-security

2011-01-07 23:25:00 1995

转载 spring security

spring security 提供系统安全功能<br />文章分类:Java编程<br />1.概述<br />     由于 spring security 是在权限系统开发关闭后补上去的所以只使用了 spring security 中的提供的一部分内容;<br />完成功能包括:用户校验、注销功能、Session 失效处理、防止一个用户同一时间内多次登录系统、保护系统资源(防止绕过登录访问资源)。<br /> <br />2.代码片段<br /> Applicationcontext-security

2011-01-07 23:25:00 1018 1

hibernate缓存深入详解

hibernate缓存深入详解 hibernate缓存深入详解!!

2012-03-21

apache-maven-2.2.1-bin.zip

apache-maven-2.2.1-bin.zip包

2011-04-01

JQuery+UI+中文帮助文档

JQuery+UI+中文帮助文档.rar

2011-04-01

JPA开发帮助手册----

JPA开发帮助,内有和struts2 的结合使用的讲解

2011-04-01

powerDesign15使用手册

powerDesign15使用手册,有使用例子。

2011-04-01

hibernate参考手册,CHM格式

hibernate参考手册,CHM格式!对hibernate进行了分题讲解.

2009-11-20

ecside 源代码,使用帮助及demo

ecside 源代码,使用帮助及demo.

2009-11-09

javascript设计模式(PDF)

javascript设计模式(PDF),利用js实现常用的设计模式。

2009-09-07

javascript设计模式 (传错了,是快捷方式 )

javascrpt 的深入讲解,javascript的面向对象的设计方法,及设计模式在javascript中的应用。 http://download.csdn.net/source/1641088 在为下载

2009-09-01

json 包,JSON服务端处理。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成

2009-08-18

java 的jive 源代码

java 的jive 源代码 学习设计模式的好帮助。

2009-08-03

java 一些常用代码,及编写技巧

java 一些常用代码,及编写技巧 包括java ,jsp,servlet,weblogic,tomcap,sockt 及多线程等。

2009-07-28

UML建模语言,PDF

标准建模语言,UML2.0。 标准建模语言,UML2.0。

2009-07-14

BIRT中文手册使用指南

BIRT中文手册,讲解birt的API及使用实例。

2009-04-01

eXtremeComponents帮助手册

eXtremeComponents帮助手册

2008-12-19

javascript 帮助手册

javascript 帮助手册 内有javascript的API,DOM,js内置对象的属性及方法

2008-12-19

js 实现的树形目录

js 实现的树形目录 树实现动态检索数据。

2008-12-19

EXTJS_WEB开发指南

ExtJS的前身即YUI(Yahoo User Interface),经过不断发展与改进,已经成为最完整与成 熟的一套构建RIA Web应用的JavaScript基础库。利用ExtJS构建的RIA Web应用具有与桌面程 序一样的标准用户界面与操作方式,能够横跨不同的浏览器平台。ExtJS已经成为开发具有较 好用户体验的Web应用的完美选择

2008-12-18

spring开发帮助

spring开发帮助(CHM) 这份手册提供Spring的功能参考指南

2008-12-18

java设计模式(CHM)

java设计模式(CHM) 共有23种设计模式。

2008-12-11

hibernate3的api

hibernate3的api及用使用帮助(chm格式)

2008-12-11

eXtremeComponents

eXtremeComponents 源代码

2008-10-17

空空如也

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

TA关注的人

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