写完了前面两篇,接下来,写一下《研磨设计模式》里面独特的地方。 对于前面的单例设计模式的实现,可以分为两类:懒汉模式(代码中的,1,3,4),跟饿汉模式(代码中的2)。 懒汉:顾名思义,就是什么事都不提前做,等到紧要关头才做。 以 4为例: (4)且看如下代码: public
前面,我们介绍了两个实现单例模式的方法,但对于前一种,如何在多线程环境下,安全实现单例模式呢? 当说到多线程,我们不难想到java语言里提供的同步关键字:synchronized (3)且看代码如下: public class Singleton { public static Singleton single = null; //--
先声明,我只是做个笔记,通过看《研磨设计模式》一书中的“单例模式”,而自己再复述一遍: 单例:实际上就是使某类,在全局上,只有一个实例,只允许提供给外界一个全局的访问点。而本质上,单例模式,就是控制类的实例的数目。当遇到要使某类有固定数目的实例时,这便是多例模式,而实现原理,则跟单例差不多,不过是多了一个变量,来控制数目,多了一个集合
51CTO博客开发射手阿印
If you wish to have a professional shared hosting quality in a free hosting package, come and host with 000webhost.com and experience the best service you can get absolutely free. Found
好久没写博客,那就写吧。也借下“金山”的名人效应,为博客增加下人气。 先说广东珠海吧,一个沿海城市,风景宜人;再说珠海金山的大厦,真的是一个软件帝国,很宏伟。回主题,说下面试。我是去应聘:数据运营开发的。 金山的面试,比较新颖的是,在面试过程中,当你讲到什么
先标明博文出处: http://www.blogjava.net/kit-soft/archive/2009/08/28/292980.html 1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。 2. Jboss作为Java EE应用服务器,它不但是Servl
一,模块化 模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。 “通过增加聚集粒度,软件开发已经在很大程度上取得了进步。” 因为这种聚集的粒度是如此重要,从非模块化转移到模块化,同从过程化转移到面向对象化同样重要。20年来,我们一直局限于使用类作为提取单元,现在正是向模块转移的时候,OSGi时代即将来临。
有点无聊,写篇博文吧。也当是总结。 前两天,在搞数据库设计主要还是powerdesign工具的使用,之后,利用powerdesign的reports功能,将数据库设计以html格式导出,并把它布署到服务器下,方便其他组员阅读跟讨论。 (powerdesign工具的使用) 工欲善其事,必先利其器。powerdesign是一款功能非常强大的数据库设计工具。通过它,可以进行很方便的数据
这几天来被老大叫去完善数据库数据导入导出组件的导出部分,除了增加配置文件夹读取,还增加了pdf跟doc两种格式的导出。现在算是小完成了一点,趁上班,也趁现在还有点余热,记下些什么来,以便以后查看。 一开始,对这个任务,无从下手,搜了一下,感觉网上对iText好评如潮。于是,也便决定用这号东西了。 一,还没用,就出问题了。sourceforge竟然对iText进行改名,而其中对中文的
一直以来,在用MyEclipse系列进行jsp开发时,总有个共同的问题:就是在<%%>标签中,myeclipse的智能提示总是会卡死。 今天终于决定要改变这种状况,上网搜了一下,跟着一些提示,操作了,还果真解决问题了,现分享如下: 卡死的原因是,MyEclipse在智能提示的时候自动访问网络上sun公司的最新API文档。
无他,在网上看了一个 MyEclipse 注册码生成代码,运行该类后,只需在控制台输入用户名,便能生成相应的注册码,很强。(没仔细研究过它的代码,原理)现献上源码: import java.io.*; public class MyEclipseGen
写这篇博文,无他,就是在看java线程知识时,感觉一些知识点,必须背下,所以就自己复述一下,写了下来。 在同步中,需要对含有同步代码的对象进行锁定。 先介绍两个类的一些重要方法: (Object) wait 方法,作用:使执行该对象的线程进入该对象的等待队列中。 @throw InterrupedExce
鉴于之前自己的电脑在重装时,不小心把硬盘重新格式化了,所有宝贵资料都被格了,心痛不已,感慨数据之重要,数据备份之重要。 现在写博文,当是作笔记,让51cto来帮忙备份,只是担心,某一天,它们服务也把存储介质给“格”了,那就。。。 ant 内置任务delete 的使用: 当你要开发,布置一个项目, 首先要清理环境,而最常做的,就是删除。 删除有,删除文件,删
今天无聊,看了一下java语言基础知识,对 实例初始化块,静态初始化块 的执行顺便,有了一点了解,便记下来,方便以后查阅。 在一个类定义中,初始化块,就是一块用 { } 大括号括起来的代码段。但“实例初始化块”只是单单的 大括号,当每次创建一个类的实例时,在调用构造方法前,会先执行这段“实例初始化块”,看到这,应该大概明白“
终于可以步入正题了--范式: 第一范式:如果一个数据库模式,连第一范式都满足不了,那它就不是一个关系型数据库了。很容易理解:即数据库表里的每一个属性都必须不相同,且每个属性的值,是不可再分割的,即我所称的“原子性”,如:一张表里,不能有两列都是姓名,而对于姓名这个属性,不能同时包含“姓名”跟“年龄”这两个值。 第二范式:即
继前面的基本概念: (1)平凡函数依赖和非平凡函数依赖 设有关系模式R(U),X-》Y是R的一个函数依赖。若对于任何X,Y属于U,此函数依赖对R的任何一个值r都成立,且Y不包含于X,则称X-》Y是一个非平凡函数依赖。 显然,如果Y包含于X,则X-》Y就是一个平凡函数依赖。(类似于: 5 > X ,且 X > Y,则必有5 > Y) (平凡函数依赖是非平凡函数依赖的特例,这
一直以来,范式是关系数据库中,最难理解的一部分,至少对我来说是这样,再加上之前,去面试,在技术面中,也常被问到范式的相关内容。今天又拿起数据库书来看了一下,现做总结如下: (1)基本概念: 超键(Super Key):若关系中的某一属性组(记住,是组)的值能唯一地标识一个元组,则称该属性组为超键。 (比如:标识一个人,可以用 身份证号 或 身份证号 + 姓名 或 身份证号 + 姓名 + 性别
今天又搞了一下,jsp文件上传组件。感觉,实际上,文件上传,也就是一个客户端上传一个文件(有时,里面可能包含一些隐藏字段),服务器端(通过request.getInputStream())获得一个 InputStream 输入流,然后在里面截取自己想要的内容。 有几个要点: 一。客户端代码: <form id="u
最近在使用 51cto的网站时,总是感觉有一些毛病? 不知是自己浏览器问题,还是网站,网页兼容性问题,总是多多少少有一些情况? 希望以自己一点微薄之力,帮助51cto网站做到最好。 div层布局问题: 当你点更多时,显示出来的层总是与导航条广告层冲突。
java Class.forName(className) ClassNotFoundException 异常 当需要在运行时,加载一个类时,可用这种方法 Class.forName(className).( 与 className.class 加载类是加载有别 ),但这个方法会抛出异常:ClassNotFoundException,要对其进行捕获。 但
五,倒置依赖原则与里氏代换原则:待续
四 迪米特法则:当一个类与另一个类进行交互时,就使用第三个类来传递这两个类之间的消息。 为什么这样,为了降低软件耦合度的问题。
三,组合/聚合原则:即在开发一个软件过程中,应尽量多使用组合/聚合原则。组合,聚合的定义我也忘了,但它们的区别,你可以想像一下一只雁的翅膀与雁的关系便是组合关系,局部的生命周期一定不能长于整体的,或局部的生命周期由整体管理,这样便是组合;而一只雁与雁群便是聚合关系,个体的生命周期与集体无关。 为什么使用这个原则呢?相对于继承,组合、聚合是一种低侵入式的依赖关系,而继承,则子类拥有所有父类prot
二,开——闭原则:即对继承开放,对修改关闭。为什么呢?这主要是为了让你的类易维护,可重用,也就是软件开发中的要求之一:可维护,可重用。可以想一下,你写了一个类,时不时,就往这个类中增加代码,增加功能,有时不小心删除了一些其他的代码,当其它类对这个类进行了引用,那么,就存在错误。而频繁对一个类的更改,将会增大出错的概率。这也是开——闭原则的由来。 一
最近看了本《大话设计模式》,相信很多人都有看过。里面以形象,生动的例子向读者介绍软件开发过程中的六大原则跟23种设计模式,呵,听起来有点像广告推广的样子。 先说一下那六大原则吧: 一,类单一职责原则:不难理解,即一个类,应该尽量简单,功能单一,但注意,这里的单一并不是说只实现一个行为。相对于业务逻辑与界面显示(例如,简单的加减运算功能,及简单的按钮显示),这属于两个层次或两个类别,就不应该把这
一,在Web项目开发过程中,相信很多人都有应用到SSH这三个框架,那在整合过程中,会不会存在包冲突的情况呢?为什么我在整合过程中存在,得到布署目录下进行修改,才可以运行。 二,在哪里,有这三个框架的独立下载包,以插件的形式存在,能安装在Eclipse下;或是源包下载。
先简要说说Hibernate吧: 一个ORM的解决方案,纯Java开发的一个开源框架。有了它,把程序员频繁地对数据库的增删查改操作解脱出来,使程序员能以面向对象的思想操作数据库。其中有五个核心的接口(在这里引用百度知道的内容:http://baike.baidu.com/view/7291.htm) Configuration 接口,用于配置并启动Hibernate,并创建了SessionFa
搞了一两天MyEclipse8.5插件安装(而目前安装成功的主要是汉化插件),总算搞出点东西。鉴于网上给的帮助,感觉都是一个人写,然后转来转去,完全不考虑像我这种入门者的感受,所以,我便以一个入门者的角度来写这篇心得。
关于java 网络编程的疑惑:socket编程 当 ServerSocket,创建成功后,运行了accept()方法,等待客户端连接,当客户创建了个Socket后,accept()获得一个socket,这两个socket有什么区别跟联系
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号