自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (7)
  • 收藏
  • 关注

转载 国外三大云存储服务对比

据国外媒体最新报道,谷歌和微软在云计算运算服务上的竞争不分上下,微软也将打造其 Infrastructure as a Service (IaaS) 云计算服务。4月下旬,微软发布了SkyDrive,谷歌就发布了Google Drive,自此国外互联网巨头都推出了云存储服务,三个服务都非常相似。那么Dropbox还能保持领头羊的地位吗?让我们一起来看看,Google Drive、SkyDr

2013-01-16 16:33:12 7691 2

转载 什么是云存储?

云存储的概念与云计算类似,它是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。    全球数据量的猛增使得存储日益成为一个更独立的专业问题,越来越多的企业开始将存储作为单独的项目进行管理。同时,持续增长的数据存储压力带动着整个存储市场的快速发展。    云存储(cloud stor

2013-01-16 11:06:05 1602

转载 TCP连接的状态转换深度剖析

对于平时我需要观察LVS与Client及RS之间TCP连接建立情况,你就需要深入了解一下建立连接的TCP三次握手和关闭连接的四次握手,举下面一个例子,你知道这些状态表示什么吗,下面的TCP连接状态图可以让你明白这一切,往下看吧12345678910111213root@LG181:/usr/local/lvs# ipvsadm -L -

2012-10-19 11:23:50 3473

转载 加快Java的文件序列化速度

自从第一个Java版本开始,很多开发人员一直都在尝试让Java获得最少和C/C++一样的表现。JVM提供商尽他们最大的努力去实现一些新的JIT算法,但是还是有很多需要做的,特别是在我们使用Java的方法上。例如,在对象文件序列化上就差距很大--尤其在读写内存对象上。我将就这个主题做一些解释和分享。所有的测试都是在下面这个对象上执行的:1pub

2012-10-12 16:31:37 2641

转载 Java 理论与实践: 正确使用 Volatile 变量

简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。Vola

2012-10-05 10:23:02 719

转载 Java NIO vs. IO

当学习了Java NIO和IO的API后,一个问题很快进入心中:我应该在何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地阐明Java NIO和IO的差异、它们的用例,以及它们如何影响您的代码设计。Java NIO和IO的主要差异下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IONIO

2012-09-13 09:37:09 1019

转载 对寄存器ESP和EBP的理解

先转下来,有时间了再补充内容。一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush   p2    ;参数2入栈, ESP -= 4

2012-08-26 20:56:38 924

原创 设计模式之抽象工厂模式

抽象工厂模式1 模式概述   在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化,绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?可以采用以下解决方案——抽象工厂模式。2 模式动机    工厂方法模式中具体工厂负责生产具体的产品,每一个

2012-08-13 20:06:02 1709

原创 设计模式之工厂方法模式

工厂方法模式1 工厂方法模式的引入——简单工厂模式的不足在《设计模式之简单工厂模式》一文中,提到简单工厂模式:1)只提供了一个工厂类,该工厂类知道每一个产品对象的创建细节;2)当有新产品要加入时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”,也是其最大的缺点。3)工厂类职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高,影响系统的灵活性和扩展性。因此,引

2012-08-13 19:06:15 865

原创 设计模式之简单工厂模式

提到工厂模式,有必要先说明下,工厂模式其实包含了三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。其中,简单工厂模式并不属于GOF 23中设计模式中。先看下简单工厂模式。简单工厂模式 意图  一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例。 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。 模式结构及参与者

2012-08-13 16:19:15 1382

原创 设计模式六大原则6—开闭原则

开闭原则定义:软件实体如类、模块、函数等应该对外扩展开放,对修改关闭。也就是说,一个软件实体应该通过扩展来实现变化,而不是修改已有的代码来实现变化。问题由来:在软件的生命周期内,因为需求变化、系统升级或维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过回归测试。解决方案:当软件需要变化时,尽量通

2012-08-11 16:36:44 997

原创 设计模式六大原则5—迪米特原则

迪米特原则(Least Knowledge Principle)定义:迪米特原则,又叫“最少知识原则”。其含义是:一个对象对其他对象有最少的了解,即一个类应该对自己需要耦合或调用的类知道得最少,只需知道它所提供的接口就行。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。      迪米特法则还有一

2012-08-11 16:01:45 1881

原创 设计模式六大原则4—接口隔离原则

接口隔离原则定义:1)客户端不该依赖它不需要的接口;2)类间的依赖关系应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类C来说不是最小接口,则类B和类D必须去实现他们不需要的方法,如下图所示。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原

2012-08-11 14:49:19 1333

原创 设计模式六大原则3—依赖倒置原则

依赖倒置原则(Dependence Inversion Principle, DIP)定义:依赖倒置原则具有以下三层含义:1、高层模块不应该依赖底层模块,两者都应该依赖其抽象;2、抽象不应该依赖细节;3、细节应该依赖抽象。问题由来:类A直接依赖类B,若要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般为高层模块,负责复杂的业务逻辑;类B和类C是低层模

2012-08-10 22:38:18 1034

原创 设计模式六大原则1—单一职责原则

单一职责原则(SingleResponsibility Principle ,SRP)定义:应该有且只有一个原因引起类的变更。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T

2012-08-10 13:12:47 1368

原创 设计模式六大原则2—里氏替换原则

里氏替换原则(Liskov Substitution Principle, LSP)   看到里氏替换原则,感觉很好奇,名字很怪,哈哈哈,其实这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的,向伟大的IT届的女精英们致敬!定义1:如果对应类型为S的对象o1,有类型为T的对象o2,使得以T定义的所有程序P,在所有的对象o1都替

2012-08-10 11:01:14 2069

转载 Memory barrier

Memory barrier,是一种屏障和一类指令,在执行这个屏障指令前后,CPU或者编译器在内存操作上强制一个约束序列。CPU使用性能优化器可以导致执行代码的无序。在单一线程执行中,重排序内存操作通常不会被注意。但是在并行编程或者设备驱动中会导致不可预料的行为。确切的排序约束是依赖于硬件的,并且有系统结构的内存模型所定义。一些结构提供多个屏障来强制不同的排序约束。内存约束通常使用在低级的机器码中

2012-08-08 10:45:56 1270

原创 设计模式之单例模式

学习了这么久的设计模式,决定做个总结。看到CSDN博客上也有作者写过一天一个设计模式的,哈哈哈,我惭愧,做不到一天一个,那就两天一个设计模式吧。我力求把每一个模式总结得全面,除了基本原理以外,每个模式的应用场景,以及应该注意的问题等将会有介绍。在此,先特别感谢GOF的《设计模式—可复用面向对象软件的基础》这本书,真的是经典之作,也特别感谢其他已经做过设计模式总结的网友们,有了你们的知识分享,我才会

2012-08-07 21:01:47 1152

转载 Java实现Immutable Class要点

Java中很多class都是immutable,像String,Integer等,它们通常用来作为Map的key.那么在实现自定义的Immutable的Class的时候,应该注意哪些要点呢?a)Class 应该定义成final,避免被继承。b)所有的成员变量应该被定义成final。c)不要提供可以改变类状态(成员变量)的方法。【get 方法不要把类里的成员变量让外部

2012-08-07 14:49:19 986

原创 long和double类型变量的非原子性

“深入java虚拟机”中提到,int等不大于32位的基本类型的操作都是原子操作,但是某些jvm对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。 错误数据出现的原因是: 对于long和double变量,把它们作为2个原子性的32位值来对待,而不是一个原子性的64位值, 这样将一个long型的值保存到内存的时候,可能是2次32位的写操作, 2个竞争线程想写

2012-08-07 14:33:06 7226 2

原创 volatile关键字

volatile关键字在我们接触较多的几种语言C/C++/Java中均存在,在并发编程方面也会用到,因此还是有必要了解。    1 volatile关键字在java并发编程下的应用      Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,关于long和double类型变量的非原子性问题,可参考《long和double类型变量的非原子性》一文。也就是说,对于

2012-08-07 14:21:54 1714

转载 如何成为一个编程高手

看了此文,很有感触,故转载于此。行动吧,以光的速度追上优秀者的步伐。     在过去5年中,我面试了数百名IT工程师,我认为很值得把我的面试IT工程师的经验同大家分享。这能够:●帮助人们为他们的下一个面试准备●帮助IT工程师找到合适的工作。●帮助IT工程师创造更好的环境。我们通过两个方面面试IT工程师:●技术技能:包括理论和实践技能以及经验等。●非技术技能:

2012-08-05 20:57:20 973

原创 单例模式以及双检锁DCL

回想起曾经经历的一次面试,是关于设计模式的。当时自己讲了单例模式,但是并没有全面地把与单例模式相关的线程安全问题理解清楚,当时的场景,哎,往事不堪回首,不过技术终归于技术,是必须掌握滴~ 1、单例模式      关于单例模式,就不再详细叙述,想必大家都耳熟能详了,简单回顾下吧。以下是单例模式的一个例子:public class DoubleCheckedLock { pri

2012-08-04 22:44:34 13678 6

原创 无法打开服务配置数据库路径 '/LM/SMTPSVC/'的解决方法

关于此问题,看到一篇03年的帖子,貌似还没人给出解决方法,因此,在博文中和大家分享下。1 症状在IIS启动时,出现了“服务未启动”的错误。通过“控制面板”——“管理工具”——“事件查看器”查看到错误信息。错误信息如下:事件源: SMTPSVC事件类别: 无事件 ID: 116Computer Name的计算机:说明: 服务元数据库路径 / LM/SMTPSVC

2012-08-02 16:32:41 2802

原创 Eclipse断点调试

作为开发人员,掌握开发环境下的调试技巧十分有必要。去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文。关于java调试技术还有很多,如Java Debug Interface等,依据具体项目的需要,还有很多值得去研究和学习的。该博文仅就Eclipse断点调试技巧做下总结,不足够的地方还请大牛们指点。1  Debug视图1.1 线程堆栈

2012-07-31 21:38:39 122901 16

转载 A project with an Output Type of Class Library cannot be started directly的解决

按F5调试时发现这个错误:A project with an Output Type of Class Library cannot be started directly原因是:把类库项目作为起始项目了,起始项目只能是可执行程序或者web程序解决方法:在你要启动的项目上单击右键,选择Set as startup project 选择,这时会发现项目的字体已经变黑,表示现以该项

2012-07-28 22:07:53 5121

原创 Java Debug Interface(JDI)调试多线程应用程序

项目中遇到500多个线程并发执行,并将线程执行所生成的数据插入MySql数据库,按设想,500个线程,数据库中应有序号连续的500条记录。然而,郁闷的是数据库中的记录在第450条左右就开始不连续,部分记录缺失。500多个线程几乎是独立的,它们之间存在的资源竞争已经做好同步了,因此,由于资源而阻塞的情况排除。再者,500个线程间优先级均等同,我中间做了sleep操作,让线程sleep时间与序号成正比

2012-07-07 17:44:42 8010

原创 java中的clone技术

编程过程中常常遇到如下情况: 假设有一个对象obj1,在某处需要和obj1一样的实例obj2,强调obj1和obj2是两个独立的实例,只是在开始的时候,它们具有一样的属性。这种情况下,一般的一种解决方法是:重新new一个对象obj2,然后将obj1的属性字段值依次赋予obj2。该种方法可行,但是也比较土。java提供了clone方法,使用clone方法,我们可以高效地解决上述的问题。

2012-07-04 20:17:36 904

原创 Checkstyle的检查项配置详解

要想按照自己的需求,定义Checkstyle配置文件,需要先了解Checkstyle配置文件的构成。在《代码规范工具-Checkstyle使用手册》一文中,我提及到两个Checkstyle提供的配置文件sun_checks.xml和sun_checks_eclipse.xml,那么现在下看下这两个文件的构成吧。sun_checks.xml和sun_checks_eclipse.xml所在的路径为:

2012-06-16 15:46:19 22795 3

原创 代码规范工具-Checkstyle使用手册

前段时间中心需要对外包的项目进行代码质量管理,所以在此对前段时间的工作做下总结。      现在很多开源工具都可以对代码进行规范审核,比较流行的有以下几款,大致给个简单介绍。     PMD:是一款采用BSD协议发布的Java程序代码检查工具,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。     FindBugs:是一个静态分析工具,它检

2012-06-16 14:25:15 98233 4

原创 软件架构视图—4+1模式

前言本文参考IBM官方的软件架构模式,并参考UML视图建模,将软件架构视图—4+1模式进行了小结。关于每种视图的参考实例,会在随后继续补充进去。架构模型一、软件架构软件架构概念:将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。用来处理软件高层次结构的设计和实施。软件架构 ={元素,形式,关系/约束}软件架

2011-12-24 15:50:22 34211

原创 MyEclipse 8.0M中如何配置Tomcat

对MyEclipse 8.0M中如何配置Tomcat,作下小总结:1,从Tomcat的官网下载Tomcat服务器,http://www.apache.org/。Tomcat是一款开源服务器,官网中有很多文档和源代码,可以参考。2,MyEclipse 8.0M中其实已经自带了Tomcat,不过一般不太用MyEclipse自带的,下面对MyEclipse 中配置Tomcat作下总结:步骤如

2011-10-28 12:28:47 2677

原创 关于VC6.0 MSDEV.EXE-应用程序错误"0x5003eaed"指令引用的"0x0000000"内存错误的解决办法

错误现象:VC6.0中,点击add source file或是add header file,add file to project等菜单,将会出现MSDEV.EXE-应用程序错误,并引起VC6.0的自动关闭。错误原因:可能是office系列的visio软件和VC 6.0有冲

2011-08-23 15:38:06 6691

翻译 在IT界取得成功应该知道的10件事

导读:人人似乎都同意IT行业是一个艰难领域,但怎样才能克服逆境,成为一名成功的IT专业人士呢?下文这些特质应该是关键。此文作者Jack Wallen,他在前段时间写过不少文章讨论IT职场,比如退出IT行业的10个理由,和身心疲惫的IT人的8条出路。之后收到很多有类似感受和观点读者

2011-07-27 18:03:58 691

转载 浅谈facebook的服务器架构

浅谈facebook的服务器架构大体层次划分 Facebook的架构可以从不同角度来换分层次。 一种是:一边是PHP整的经典的LAMP stack;另外一个是非PHP整的各种service。 Facebook的页面从刚创立的时候扎克伯格写的,到现在,都用PHP开发。后端有用各种语言开发的service。它们之间用跨语言的thrift RPC通信(Scribe也是建立在Thr

2011-06-14 13:08:00 740

Oracle 9i PL/SQL程序设计

在oracle开发方面,《Oracle 9i PL/SQL程序设计》是绝对经典的书。内容主要涉及PL/SQL入门、使用SQL*Plus和JDeveloper、PL/SQL基础知识、PL/SQL与SQL、记录、集合、错误处理、过程、函数和包的创建等内容。不仅内容丰富,结构合理,而且提供了大量的代码和图例,以帮助读者在实践中提升自己的PL/SQL编程技能。

2015-09-05

MySQL中文手册

官方MySQL中文手册,这是关于5.1版至5.1.2-alpha版MySQL数据库系统的参考手册。该手册不适用于旧版本MySQL软件,这是因为在MySQL 5.1和以前的版本存在很多功能性差异和其他差异。如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。

2014-03-30

网易技术部的MySQL中文资料

十分全面的网易技术部的MySQL中文资料,包括:开发篇、优化篇、管理维护篇

2014-03-30

Java_SSH框架案例教程

本书共分6 个专题,14个案例,通过实现不同的功能来讲解以上技术: 专题一为 Struts 篇,通过四个案例讲解了Struts 的工作机制,以及Struts 当中各个组件的功能和协同工作方式,利用 Struts 提供的 Validator 框架编写实现国际化的程序,并对数据库连接池进行了深入讨论。 专题二为 Hibernate 篇,专题三为 Spring篇,专题四为 SSH 整合篇,专题五为 Ajax 篇,专题六为 Web Service 篇。

2013-04-22

基于RUP的软件开发过程.ppt

全面讲述了基于RUP的软件开发过程,思路清晰,对开发人员帮助极大。

2011-09-17

设计模式迷你手册

全面、清晰地阐述23种经典设计模式,采用JAVA语言。查询方便,讲述清晰~

2011-09-17

空空如也

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

TA关注的人

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