本站首页    管理页面    写新日志    退出


«may 2019»
1234
567891011
12131415161718
19202122232425
262728293031


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:861502
建立时间:2007年5月10日




[J2SE相关]synchronized和wait()/notify()
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-11-7 21:32:05

方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。 wait()/notify():调用任意对象的 wait() 方法导致线程阻塞,并且该对象上的锁被释放。而调用 任意对象的notify()方法则导致因调用该对象的 wait() 方法而阻塞的线程中随机选择的一个解除阻塞(但要等到获得锁后才真正可执行)。 synchronized和wait()、notify()的关系: 1.有synchronized的地方不一定有wait,notify 2.有wait,notify的地方必有synchronized.这是因为wait和notify不是属于线程类,而是每一个对象都具有的方法,而且,这两个方法都和对象锁有关,有锁的地方,必有synchronized。 另外,请注意一点:如果要把notify和wait方法放在一起用的话,必须先调用notify后调用wait,因为如果调用


阅读全文(3523) | 回复(1) | 编辑 | 精华 | 删除
 


[J2SE相关]Java内部类(Inner Class)详解[转]
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-10-30 13:24:20

关键字: java inner class nested 简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。 1 Static member class(静态成员类) 类声明中包含“static”关键字的内部类。如以下示例代码, Inner1/Inner2/Inner3/Inner4就是Outer的四个静态成员类。静态成员类的使用方式与一般顶层类的使用方式基本相同。 java 代码 public class Outer{ //just like static method, static member class has public/private/default access privilege levels //access privilege level: public public static class Inn


阅读全文(2655) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate乐观锁的实现原理剖析与使用乐观锁时的注意点
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-10-24 10:49:26

Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里我们只讨论乐观锁。 Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleObjectStateException异常。 Hibernate乐观锁是怎么做到的呢? 我们先从Hibernate乐观锁的实现说起。要实现Hibenate乐观锁,我们首先要在数据库表里增加一个版本控制字段,字段名随意,比如就叫version,对应hibernate类型只能为 long,integer,short,timestamp,calendar,也就是只能为数字或timestamp类型。然后在hibernate mapping里作如下类似定义: <version name="version" column=&quo

阅读全文(2973) | 回复(0) | 编辑 | 精华 | 删除
 


[J2SE相关]转:图解JVM在内存中申请对象及垃圾回收流程
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-10-6 21:28:20

关键字: jvm 内存 gc 先看一下JVM的内存模型: 从大的方面来讲,JVM的内存模型分为两大块: 永久区内存( Permanent space )和堆内存(heap space)。 栈内存(stack space)一般都不归在JVM内存模型中,因为栈内存属于线程级别。 每个线程都有个独立的栈内存空间。 Permanent space里存放加载的Class类级对象如class本身,method,field等等。 heap space主要存放对象实例和数组。 heap space由Old Generation和New Generation组成,Old Generation存放生命周期长久的实例对象,而新的对象实例一般放在New Generation。 New Generation还可以再分为Eden区(圣经中的伊甸园)、和Survivor区,新的对象实例总是首先放在Eden区,Survivor区作为Eden区和Old区的缓冲,可以向Old区转移活动的对象实例。 下图是JVM在内存空间(堆空间)中申请新对象过程的活动图(点

阅读全文(5935) | 回复(0) | 编辑 | 精华 | 删除
 


[Spring]转:Spring事务的传播行为和隔离级别
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-10-6 21:26:32

关键字: 数据库 事务的传播行为和隔离级别[transaction behavior and isolated level] Spring中事务的定义: 一、Propagation :   key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。 很多人看到事务的传播行为属性都不甚了解,我昨晚看了j2ee with

阅读全文(2463) | 回复(0) | 编辑 | 精华 | 删除
 


Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-9-5 12:12:23

[文章作者:张宴 本文版本:v5.4 最后修改:2009.06.26 转载请注明原文链接:http://blog.s135.com/nginx_php_v5/]   前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第5篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。这是一篇关于Nginx 0.7.x系列版本的文章,安装、配置方式与第4篇文章相差不大,但增加了MySQL安装配置的信息、PHP 5.2.10 的 php-fpm 补丁。Nginx 0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。   链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》、《2008年8月的第4版》      Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Syso

阅读全文(3547) | 回复(0) | 编辑 | 精华 | 删除
 


Linux必学的安装登录命令
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-9-5 11:08:41

不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把 比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh 、exit、last; ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、 crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、 finger、mail、 nslookup; ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、 who; ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uude

阅读全文(4071) | 回复(1) | 编辑 | 精华 | 删除
 


[MYSQL]转:mysql存储过程语法
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-8-24 16:15:17

mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin ……… end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法: drop procedure sp_name// 2.注意事项 (1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 四.区块,条件,循环 1.区块定义,常用 begin …… end; 也可以给区块起别名,如: lable:begin ……….. end lable; 可以用leave lable;跳出区块,执行区块以后的代码 2.条件语句 if 条件 then statement else statement end if ; 3.循环语句 (1).while循环 [ label: ] WHILE expression DO statement

阅读全文(3822) | 回复(1) | 编辑 | 精华 | 删除
 


[Apache Mina]转:Apache Mina使用手记(四)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-8-21 16:18:57

上一篇中,我们介绍了如何在mina中编写自己的日志过滤器,这一篇我们自己实现一个编解器。 实际应用当,很多应用系统应用的都不是标准的web service或XML等,比如象中国移动/联通/电信的短信网关程序,都有自己不同的协议实现,并且都是基于TCP/IP的字节流。Mina自带的编解码器实现了TextLineEncoder和TextLineDecoder,可以进行按行的字符串处理,对于象短信网关程序,就要自己实现编解码过滤器了。 我们定义一个简单的基于TCP/IP字节流的协议,实现在客户端和服务端之间的数据包传输。数据包MyProtocalPack有消息头和消息体组成,消息头包括:length(消息包的总长度,数据类型int),flag(消息包标志位,数据类型byte),消息体content是一个字符串,实际实现的时候按byte流处理。源代码如下: view plaincopy to clipboardprint? package com.gftech.mytool.mina; import com.gftech.util.GFCommon; publi

阅读全文(3628) | 回复(0) | 编辑 | 精华 | 删除
 


[Apache Mina]转:Apache Mina使用手记(三)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009-8-21 15:55:58

在上一篇中,通过一个简单的例子,得以管中窥豹,了解了Mina的基本编写方法。在MinaTimeServer演示程序中,我们添加了两个过滤器,一个是日志过滤器LoggingFilter,一个是文本编解码过滤器。前者实现日志信息的自动处理,后者实现对按行读写的文本数据的编码和解码。 其中LoggingFilter默认的是slf4j,它是一个日志Facade,实际并不实现真正的日志处理功能,它在程序运行时自动判断classpath中加载的日志组件,比如:log4j/Logback/JUL等,确定之后调用真正的日志组件实现真正的日志处理操作。这一点对于组件式的程序,很明显是非常灵活的,因为你并不知道用户的实际环境中使用的是log4j还是JUL,或者是Logback等,但是为了实现自动识别,slf4j默认了log配置文件的加载位置,让我觉得十分不便。 我自己的所有系统中,都使用是log4j(他的替代产品Logback已经出来了,据说性能更强),我一般喜欢把所有配置文件包括log4j.properties都放在conf目录下,以便管理。因此,对于slf4j中需要把log4j.prope

阅读全文(2970) | 回复(0) | 编辑 | 精华 | 删除
 


« 1 2 3 4 5 6 7 8 9 10 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144271951 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号