自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

转载 高性能IO设计的Reactor和Proactor模式

在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。       在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程

2013-04-15 21:03:14 504

原创 细说ArrayList的remove方法

public class ArrayListTest { static void removeTest(){ ArrayList arr = new ArrayList(); arr.add(1); arr.add(2); arr.add(3); arr.add(4); arr.add(5); System.out.println(arr); for (i

2013-04-15 20:30:38 853

原创 关于final变量在类的存储与加载

引出问题:项目接口调试,final签名修改后,运行的文件没有重新覆盖,一文件的final静态变量修改了,另一引用的文件没有生效,报签名错误。 final变量的陷阱:当final变量改变的时候,引用其的所有文件都必须重新部署,否则仅仅重启程序的话,是不会生效的。也就是,修改的文件会使引用的文件发生重新编译。这在集成编译环境中很容易被忽略,误以为只需要重新部署修改过的java文件对应的

2013-03-22 02:12:12 1383

转载 优化数据库前 问自己10个问题

在优化你的数据库时,你可能没有用到这些细节的优点。以下是10个关于你的数据库性能的问题,需要你问问自己。  1. 假设你的数据库不需要存储特殊字符的能力,尤其是Unicode标准中规定的那些字符,你有没有在系统中把nchar类型替换成char之类的各种适用的字段类型?  2. 你是不是在用smalldatetime类型,而不是datetime?如果你不清楚这两种类型有什么区别,这是

2013-01-29 17:05:46 237

转载 linux安装nginx(rhel-rpm)

nginx   最近版本升级的很快,之前弄过 最近整理一下1.linux 下面安装  1.下载 pcre-8.10.tar.gz  nginx-1.1.1.tar.gz   2.安装 pcre 让nginx支持rewrite     pcre-8.10.tar.gz  上传到/home 目录下面    1) 解压 pcre     tar zxvf

2013-01-29 11:28:31 465

原创 linux安装nginx(rhel-rpm)

nginx 最近版本升级的很快,之前弄过 最近整理一下1.linux 下面安装 1.下载 pcre-8.10.tar.gz nginx-1.1.1.tar.gz 2.安装 pcre 让nginx支持rewrite pcre-8.10.tar.gz 上传到/home 目录下面 1) 解压 pcre tar zxvf ...

2013-01-29 11:05:19 355

原创 linux安装nginx(rhel-rpm)

8.10.tar.gz 上传到/home 目录下面 1) 解压 pcre tar zxvf pcre-8.10.tar.gz 解压 pcre 后 /home 下面会有 pcre-8.10 文件夹 2)配置pcre cd /home/ pcre-8.10 ./configure 输入该命令后屏幕会生成一堆文件,不用去管它 3)make 在linux 中输入 make 命令后屏幕会生成一堆文件

2013-01-29 11:05:19 85

原创 对于防御式编程我的想法

我个人是非常赞成防御式编程的,它为构建一个健壮的系统提供了强力的支持。            至于怎样才能算是一个真正的防御式编程,这个其实不需要有很明文的标准,一般来说,只要把输入输出和代码结构处理好,就可以算是完成了大部分工作了。防御式编程是一种代码习惯,而不是一种审查的时候才添加到代码里面的测试或检查元素,它贯穿于软件开发维护的整个过程。写于2013-01-20 jianjifei

2013-01-20 12:06:35 441

转载 Ubuntu 12.04 常用的快捷键

超级键操作 1、超级键(Win键)–打开dash。2、长按超级键– 启动Launcher。并快捷键列表。3、按住超级键,再按1,2,3等数字键–从Launcher打开一个应用程序,当你按住超级键时,每个应用程序图标上都会显示一个数字,按下对应的数字就会打开盖应用程序。4、超级键+A–从Launcher打开应用程序窗口。5、超级键+F–从launcher打开文件和文件夹窗口。

2013-01-19 11:00:14 374

原创 windows7 优化:readyboost总结

转自:[url]http://blog.csdn.net/jianjifei/article/details/8511637[/url] windows vista以上系统携带有readyboost功能,在物理内存与虚拟内存之间建立了一层缓存,缓存的页交换大小为4k-512k,小文件的随机访问速度远比机械磁盘要快,所以在需要用到虚拟内存的时候,就能感觉到性能有很大的提升。...

2013-01-19 01:29:59 263

原创 windows7 优化:readyboost总结

2013-01-19 01:29:59 140

原创 vmware安装ubuntu12.04

linux是必啃的一块骨头,现在的linux水平仅限于那么几个命令,实在是让人汗颜,就连笔记本上个双系统都还没有装过。一直用linux都是虚拟机,习惯于rhel的敲打命令行部署开发程序而已。          今晚就装了个ubuntu桌面版,现在连linux装系统都傻瓜化了,感觉和装windows没有什么区别。为了不要在各个分区出现空间不足的情况,干脆就设了一个swap分区和一个/分区,然后就

2013-01-19 01:18:04 841 1

原创 写代码过程中必须有的几个本能

我作为一个正式的程序员已经快5年了,算上了大学时没日没夜写代码的日子,那时候写代码的时间远比现在要长。现在做得更多的是看书,了解多方面的技术,唯一可庆的是,现在我感觉进步的速度不比我当年菜鸟的时候要差。那也可能侧面反应了一个问题,我如今也还是一个菜鸟,需要沉淀的东西还很多很多。           从刚开始的时候,空指针异常、数组越界异常、数据库连接异常、除数为0异常等等,这些问题总是频繁地出

2013-01-18 10:22:12 356

转载 与svchost.exe (LocalSystemNetworkRestricted)有关的几个服务

这两天优化win7通过关闭服务,获得了大量内存。大部分服务还好,基本上按照网上的说法加上自己经验适当调整即可,唯独主要涉及的服务如下:  SuperFetch建立了一个内存区域作为硬盘缓存了,和虚拟内存不同,该缓存建立在物理内存上,并且以用户使用习惯为基准。其实是一共广泛撒网的政策,开机之后,该服务延迟启动,它会找到C:\Windows\Prefetch,即之前对记录你操作

2013-01-17 13:18:10 2486 1

原创 windows7 优化:readyboost总结

windows vista以上系统携带有readyboost功能,在物理内存与虚拟内存之间建立了一层缓存,缓存的页交换大小为4k-512k,小文件的随机访问速度远比机械磁盘要快,所以在需要用到虚拟内存的时候,就能感觉到性能有很大的提升。            而如果物理内存空间足够大,readyboost是否就没有用了呢?不是的。            物理内存足够大的时候,只是表明了再程

2013-01-17 09:29:30 1510 1

原创 我的Java代码编写的几个原则

1、可以抽象化的尽量抽象化         2、import的类尽可能的少         3、尽可能使用静态类或单例,但可能出现同步问题的地方尽可能不用         4、通用的代码里面绝不包含特定业务逻辑的任何代码段         5、不考虑数据库的独立性         6、没有经过测试的代码绝不发布写于2013-01-14 jianjifei

2013-01-14 13:12:16 643 1

原创 商城活动的代码重构

我现在在一家电子商务的公司任职,负责网上商城的一个模块。       商城经常会推出活动,以刺激市场的推广,但每一次的活动总有那么一些相似的地方,而且占的比重还不小。但过往都是不断开发新的模块,代码的重用率相对较低,开发的周期也比较长,而且代码混杂在一起,再一次回过头来读代码的时候,总会觉得晦涩难懂。       mark写于2012-01-12 jianjifei

2013-01-12 12:50:31 389

原创 Oracle 9i&10g 编程艺术 第一章

一般来说,一本书的第一章的信息量是最大的,也看得比较难,但好歹都看完了。       可以这样说,颠覆了我一些过去的概念,而且越发想看下去。       感觉最深刻的是并发性、数据库独立性。其它的数据库还没有了解,但并发性似乎是oracle最大的一个亮点。       有一个我们开发人员一直推崇的做法就是在开发的时候,尽量去保证数据库移植的时候,应用程序不用做太多的修改,甚至是不用做任

2013-01-11 09:52:50 468

转载 DML DDL DCL命令的区别

总体解释:DML(data manipulation language):       它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language):       DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或

2013-01-10 13:00:26 555

原创 windows xp 安装sql server 2000提示‘以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前请重新启动计算机’

windows xp 安装sql server 2000 提示‘以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前请重新启动计算机’解决方法:1、打开“开始”——>“运行”,输入“regedit”,打开注册表编辑器; 2、找到目录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager;

2013-01-09 21:54:46 659

原创 序言

再一次写博客,主要是为了学习。在之前的一段时间内,我一直在挣扎着要不要把IT这条路走下去,因为发生了很多的事情。        但直到现在,我都还没能给自己一个最终的答案,无法给自己一个肯定。        所以,也就导致了我现在的一事无成,拿起过不少东西,也放弃了不少东西。        win32,linux,c, c++,java,tomcat,jms,android,oracl

2013-01-08 21:04:36 335

关于阅读框架源代码

学习一个框架,能从源代码去学习是一件好事。但是,在熟悉一个框架的功能及性能之前,就草率的接触源代码,这不是一个好的习惯。正如一个系统的开发,没有做好需求,是不会完成一个好的系统的。框架源码也一样,不是一些小程序,信手拈来即可。如果每次遇到一个新的框架就急于去研究其源代码,那将会适得其反。把这个框架熟悉使用,常常想一下,它应该如何去设计,才能得到这样的功能和性能,或是可以思考怎样才会...

2010-04-05 19:06:34 78

关于阅读框架源代码

2010-04-05 19:06:34 60

计算机科学不是一门学科

如果说计算机是一门学科的话,以前我是赞同的。问我这门学科包括什么,我会告诉你是:编译原理、计算机组成原理、数据结构、算法等等,回答的这些几乎就是我大学所接触到的课程知识。现在,确实是不这样认为了。之前对院长所说的计算机专业其实不是一门专业并没有嗤之以鼻,但没有太过深刻的体会。换个角度来说,数学可以解决特定的数理问题,对问题模型通过计算可以得出精确地结果;天文学可以完成对天体...

2010-03-24 19:48:42 313

计算机科学不是一门学科

2010-03-24 19:48:42 117

装饰模式

装饰模式是用于对象的创建,而此对象的创建基于原来对象的加强,也就是通过原组件对象的参数传递,把此对象层层加强。例如:BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));通过层层的参数传递,把InputStream适配为InputStreamReader再装饰加强为BufferedReade...

2010-03-23 12:56:28 73

装饰模式

new BufferedReader(new InputStreamReader(System.in));通过层层的参数传递,把InputStream适配为InputStreamReader再装饰加强为BufferedReader。这里的参数的传递是关键,是通过引用而非继承方式。装饰器中的继承的实质是为了类的兼容的需要,便于参数引用可以层层传递兼容,而不是通过继承实现功能的扩展,功能扩展主要在实例的引用。一般来说是纵向结构,如果只是一层继承实现,其余装饰类用横向实现的话,也是可以的,但是这个和纵

2010-03-23 12:56:28 55

唐僧师徒四人谁最适合做销售

唐僧立场坚定,从不动摇,销售的话,可能就是不肯让步,这样得不到顾客的认可。再说,明辨是非能力不强,销售是企业的第一线,不能明辨信息的话会使得公司遭受损失的可能性增大。悟空义气重,脾气有点大。但是能力强,个人灵活,并且人脉宽广,对信息的辨别能力强。个人很被信任,顾客放心。八戒油嘴滑舌,总能够讨得顾客欢心,会尽量满足客户的要求。但是当遇到困难的时候,第一个想法就是退缩。销售...

2010-03-22 13:33:02 482

唐僧师徒四人谁最适合做销售

话会使得公司遭受损失的可能性增大。悟空义气重,脾气有点大。但是能力强,个人灵活,并且人脉宽广,对信息的辨别能力强。个人很被信任,顾客放心。八戒油嘴滑舌,总能够讨得顾客欢心,会尽量满足客户的要求。但是当遇到困难的时候,第一个想法就是退缩。销售本身就是一件会挫折连连的工作,所以,八戒不会有大顾客。沙僧老实,平凡,没有特别突出的地方,吃苦耐劳。所以会透露不该透漏的信息,难有顾客。排序:悟空、八戒、沙僧、唐僧。

2010-03-22 13:33:02 227

UML类关系

UML主要是用来描述对象模型,其中包括类之间的各种关系,现在总结类之间的关系如下:一般化关系:也就是特殊到一般的关系,在对象语言中也就是extends和implements的这层关系。而继承级关系需要注意的是类别的关系,即a is b。关联关系:可以表示为一种a has b的关系,包括聚合和合成关系。在对象语言中,b是通过类的实例变量来表示的。聚合关系:只是一种聚集,各个部...

2010-03-21 08:54:05 55

UML类关系

2010-03-21 08:54:05 44

Java IO 框架整理

可从IO的类层次,IO框架的设计模式来论述。总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。而每个流都分输入和输出,所以,总体来说,IO有四个顶层类:InputStreamOutputStreamReaderWriter而作为机器级别...

2010-03-18 09:48:03 159

Java IO 框架整理

2010-03-18 09:48:03 68

原创 Java关于编译的一点想法

Java是一种解释性语言,严谨来说是编译.java + 解释执行.class才对。 根据我所了解的编译原理,编译过程可以是由上至下,当遇到编译错误的时候,编译器可以进行修正并且继续进行编译,直至.java文件全部编译结束。 Java文件是被编译成字节码的形式,一条语句被编译成n条.class执行指令。但是编译出错时将变成怎样的形式,我就不是很了解了?继续编译剩下的或者是就此...

2009-12-07 16:43:05 68

原创 Java关于编译的一点想法

编译器可以进行修正并且继续进行编译,直至.java文件全部编译结束。 Java文件是被编译成字节码的形式,一条语句被编译成n条.class执行指令。但是编译出错时将变成怎样的形式,我就不是很了解了?继续编译剩下的或者是就此打住?慢慢考察吧。 测试结果: 编译一旦发生错误的话,控制台会报出相关的错误,并且跳过错误继续编译,但将不会生成新的.class文件。 如果是内部类的话,并且直至编译完成内部类还没有出现编译出错信息,也就是编译出错在内部类之后。即使编译器没有报内部类出错,但

2009-12-07 16:43:05 53

原创 抽象类与接口的区别

这只是我在看设计模式的时候的一点想法。由于Java中只有单继承而没有多继承,那如果有多继承的话,是否抽象类和接口都没用了,而是要像C++一样设计?我也不觉得Interface的存在也仅仅是为了解决类的多继承问题。对于抽象类的接口的选择上,可以从Java的类库容器设计上来看看:Collection,Map和Iterator都使用了接口。而Collection和Map都有相应的抽象类,...

2009-12-01 13:12:32 62

原创 抽象类与接口的区别

设计?我也不觉得Interface的存在也仅仅是为了解决类的多继承问题。对于抽象类的接口的选择上,可以从Java的类库容器设计上来看看:Collection,Map和Iterator都使用了接口。而Collection和Map都有相应的抽象类,抽象类中更多强调的是一种通用的数据格式。而在运行时,抽象类可以以普通类的形式获得内存分配,而接口存在于代码区,不会获得内存分配并且只是作为引用类型而存在。所以,我认为抽象类偏向于对数据结构的封装(包括对抽象类中数据的操作),而接口则是对行为的一

2009-12-01 13:12:32 56

空空如也

空空如也

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

TA关注的人

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