[转载]戏说Singleton模式
GOF著作中对Singleton模式的描述为:保证一个class只有一个实体(Instance),并为它提供一个全局访问点(global access point)。 从其描述来看,是非常简单的,但实现该模式却是复杂的。Singleton设计模式不存在一种所谓的“最佳”方案。需要根据当时的具体问题进行具体解决,下面将讲述在不同环境下的解决方案。 Singleton的详细解释,请大家看GOF的著作《设计模式》一书。[@more@]在GOF著作中对Singleton模式的实现方式如下:/*解一*/class Singleton{public:static Singleton *Instance(){ //1if( !m_pI
Java面试笔试题大全
JAVA相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。[@more@]2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派
[转载]现代青年应有的人生观
一.从退让中体验乐趣 二.从宁静中安顿身心三.从自制中克制物欲 四.从空无中认识人生[@more@]各位老师、各位同学: 今天,我所要讲的是“现代青年应有的人生观”。 一个人的生活,首先要注重的是物质生活。当物质生活具足了以后,我们还需要精神的生活;精神生活有了以后,还要追求艺术的生活;因为生活中要求真、求善、求美。当一个人确实有了艺术生活之后,他还想要超越而向往宗教的生活。各种宗教对人间的某些看法总不会完全一样的,就拿佛教释迦牟尼来讲:他在二千五百年前,菩提树下金刚座上觉悟了。他觉悟后的第一个念
[转载]常用CASE工具介绍
一 概述今天, 代码变得日益简单, 在Model的指导下, 思想, 设计, 分析都变得异常重要。企业业务建模工具, 产品非常多, 特别是在MDA日益流行的今天. WorkFlow是典型的业务及流程建模。[@more@]二,软件开发CASE工具简介(一)图稿绘制:1,visio:这是目前国内用得最多的case工具。它提供了日常使用中的绝大多数框图的绘画功能(包括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。visio的精华在于其使用方便,安装后的visio2000既可以单独运行,也可以在word中作为对象插入,与word集成良好,其图生成后在没有安装visio的wo
[转载]SOA关键问题详解
【导读】Web 服务以及越来越多的面向服务架构(Service Oriented Architecture,SOA)已经在市场上投放了大量广告。两者都可以给企业带来广泛的短期和长期利益。但对于SOA,尤其是像开发人员和CIO等仍有若干关键问题需要回答。 对于SOA,尤其是像开发人员和CIO等仍有若干关键问题需要回答。Web 服务以及越来越多的面向服务架构(Service Oriented Architecture,SOA)已经在市场上投放了大量广告。两者都可以给企业带来广泛的短期和长期利益。但对于SOA,尤其是像开发人员和CIO等仍有若干关键问题需要回答。[@more@]问:SOA的前提是能够使应用程
[转载]史上最简单的Hibernate入门简介
一、前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。[@more@]JAXP接口包含了三个包: (1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型的接口。 (2)org.xml.sax 用于对XML进行语法分析的事件驱动的XML简单API(SAX) (3)javax.xml.parsers解析器工
[转载]点评主流中间件技术平台
引言:软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的"基于中间件的软件开发"(CBSD,Component Based Sortware Development)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。为此国风外对于这一技术的研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构(
[转载]Eclipse插件的安装
1、在eclipse的主目录(ECLIPSE_HOME,比如在我的机器上安装的目录是:D:JavaDev3.1)有一个plugins的目录,这种方法的插件安装非常简单,只要将插件copy到这个目录下就可以了。[@more@]比如我有一个weblogic的插件(bea站点上可以下载),解压缩之后得到得到一个目录:【com.bea.eclipse.weblogic_1.1.1】,我就将这个目录直接放到%ECLIPSE_HOME%plugins目录下,重新启动eclipse之后就看到Run->“Start Weblogic”的菜单。安装之后,weblogic插件的全路径为:D:JavaDev3.1pluginscom.bea.eclipse.weblogic_1.1.1] 2、在eclipse
[转载]Internet安全编程----客户端
客户端 Java 安全套接扩展 (Java Secure Socket Extension, JSSE) 使 Internet 安全通信成为现实。它是 SSL 3.0 (Secure Socket Layer) 及 TLS 1.0 (Transport Layer Security,由 SSL 3.0 改善而来) 的框架和实现。这个包让 Java 开发人员能够开发安全的网络应用;为基于 TCP/IP 的何应用协议,如 HTTP、FTP、Telnet、或者 NTTP,在客户端和服务器端之间建立安全的数据通道。 [@more@]在这篇文章的第一部分 (服务器端),作者已经详细说明了 SSL 和 JSSE,并且说明了如何开发服务器端支持 SSL 应用程序。那一部分中我们开发了一个
[转载]一篇不错的讲解Java异常的文章
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?[@more@]1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statement stat = conn.createStatement(); 5 ResultSet rs = stat.executeQuery( 6 "select uid, name from user"); 7 while (rs.next()) 8 { 9 out.println("ID:" + rs.getString("uid") // ⑹ 10 ",姓名:" + rs.getString("name
[转载]關於javac命令
可能有些人不在乎這些,但是,如果你想使JAVA水平提高,那麼這些命令還是要知道的,不說其它的,你可以寫個類似JAVAC命令的程序來嗎?在之前,我們都可以自己編寫代碼實現需要的JAVAC來編譯源文件,從而實現JAVA代碼的動態性,對於Java 6, compiler API提供编程访问javac,可以实现进程内编译,动态产生Java代码。那麼JAVAC命令你就要有所了解。[@more@]结构javac [ options ] [ sourcefiles ] [ @files ]参数可按任意次序排列。options 命令行选项。 sourcefiles 一个或多个要编译的源文件(例如 MyClass.java)。 @files 一个或
[转载]探討類加載機制
每個JAVA程序至少有三個類加載器,它們是:1.引導類加載器(bootstrap class loader)2.擴展類加載器(Ext class loader)3.系統類加載器(System class loader/Application class loader)[@more@]引導類加載器負責加載系統類,通常從rt.jar那裡加載。擴展類加載器用於從jre/lib/ext目錄加載一個標準的擴展名,比如:自己擴張了JAVA的一些類可以放到那個目錄下使用。系統類加載器負責加載應用程序類,我們可以用-classpath命令實現加載應用程序類我們可以根據需要實現自己的類加載器或者使用父類加載器,使我們的JAVA程序動態化。現在,
[转载]java线程
在论坛上面常常看到初学者对线程的无可奈何,所以总结出了下面一篇文章,希望对一些正在学习使用java线程的初学者有所帮助。[@more@]首先要理解线程首先需要了解一些基本的东西,我们现在所使用的大多数操作系统都属于多任务,分时操作系统。正是由于这种操作系统的出现才有了多线程这个概念。我们使用的windows,linux就属于此列。什么是分时操作系统呢,通俗一点与就是可以同一时间执行多个程序的操作系统,在自己的电脑上面,你是不是一边听歌,一边聊天还一边看网页呢?但实际上,并不上cpu在同时执行这些程序,cpu只是将时间切割为时间
[转载]Java对象池技术的原理及其实现
作者:汪永好 出处:计算机与信息技术 责任编辑: 方舟 [ 2006-11-25 07:00 ]摘 要 :本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式。还指出了使用对象池技术时所应注意的问题。关键词: 对象池;对象池技术;Java 对象;性能[@more@]Java对象的生命周期分析 Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用,对象的清除。因此,对象的生命周期长度可用如下的表达式表示:T = T1 + T2 +T3。其中T1表示对象的创建时间,T2表示对象的使用时间,而T3则表示其清除
[转载]java问题集锦
问: 如何获得某一个目录下的文件列表? 答:以“c:/Windows/.”目录为例,获得该目录下文件列表的代码为: File MyDir = new File(“C:/Windows/.”); String[] FileNames=MyDir.list();问:利用如下代码拷贝中文文件,为什么出错? int c; while ((c = MyFileReader.read()) != -1) MyFileOutputStream.write(c);答:利用如下代码片断拷贝中文文件不会出错: int c; while ((c = MyFileReader.read()) != -1) MyFileWriter.write(c);原代码造成出错的原因是:FileReader.read()返回一个int型数值,其取值范围是0 到65535,通常来说是两个
[转载]Java虚拟机的深入研究
Java虚拟机的深入研究作者:刘学超 1 Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。[@more@]它们的关系如下图所示:图1 Java四个方面的关系运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Ja
[转载]Java堆的管理--垃圾回收
Java堆的管理--垃圾回收1 引言Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。[@more@]一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的有限性,JVM在实现的时候都有一个由垃圾回收所管理的堆。垃圾回收是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃
[转载]JVM的垃圾回收机制详解和调优
1.JVM的gc概述gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。[@more@]在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注重整体效率。理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。垃圾收集的目的在于清除不再使用的对象。g
[转载]通过实例学习Java对象的构造过程
本文提供一个项目中的错误实例,提供对其观察和分析,揭示出Java语言实例化一个对象具体过程,最后总结出设计Java类的一个重要规则。通过阅读本文,可以使Java程序员理解Java对象的构造过程,从而设计出更加健壮的代码。本文适合Java初学者和需要提高的Java程序员阅读。[@more@]作者曾经在一个项目里面向项目组成员提供了一个抽象的对话框基类,使用者只需在子类中实现基类的一个抽象方法来画出显示数据的界面,就可使项目内的对话框具有相同的风格。具体的代码实现片断如下(为了简洁起见,省略了其他无关的代码):public abstract clas
[转载]Java程序员的存储过程
本文阐述了怎么使用DBMS存储过程。我阐述了使用存储过程的基本的和高级特性,比如返回ResultSet。本文假设你对DBMS和JDBC已经非常熟悉,也假设你能够毫无障碍地阅读其它语言写成的代码(即不是Java的语言),但是,并不要求你有任何存储过程的编程经历。[@more@]存储过程是指保存在数据库并在数据库端执行的程序。你可以使用特殊的语法在Java类中调用存储过程。在调用时,存储过程的名称及指定的参数通过JDBC连接发送给DBMS,执行存储过程并通过连接(如果有)返回结果。 使用存储过程拥有和使用基于EJB或CORBA这样的应用服务器一样的好处