博文

Java笔记交流(二)(2006-09-03 11:46:00)

摘要:91、包命名:小写字母,使用顺序反过来的域名。92、包内的类需声明为public,否则不属于此包的方法无法使用它。93、采用JAR文件方便维护和安装,一个JAR文件往往包含多个包,Sun J2SE所提供的标准类放在rt.jar中 。94、J2SE提供工具软件jar来生成JAR文件: jar cvf  jar cmvf 用m来包含自定义的说明(manifest)文件 Manifest.mf。95、将创建的包输入进来:用import com.mycompany.shape.*;非import com.mycompany.shp;另外还需将 此JAR文件包含在类路径中,在Windows中需要设置:SET CLASSPATH=.;shapr.jar。或者可以使用:java -classpath 96、由于和对象相关的变量属于引用类型,使用obj1=obj2;obj1只是得到一份obj2应用的副本,而不是 obj2对象本身。97、使用clone()来复制一个对象,clone()从Object类继承。obj1=obj2.clone();obj2必须是可复制的 。98、为了使一个用户自定义的类对象可被复制,必须使用接口Cloneable,并声明一个public方法clone() 来执行复制工作。99、若要完成深度复制(deep copy)(包含所参考的对象和其相关的对象),则需根据对象间的阶层关系 一层层地复制下去。100、Reflection又称introspection,因为它允许执行中地Java程序来进行自我检查,可以得到一个对象 所属类定义的成员及相关的数据,这是Java特有的功能。101、Reflection提高像功能指针一样的功能,可在程序执行时才动态提高所以执行的类对象方法名称与 所要输入的参数。102、首先得到一个Class对象,有两种方法 由既存类对象,使用getClass()得到一个类对象,如obj.getClass();  使用Class.forName(String className)103、其次,使用Class提供的方法来得到该类的相关数据 String getName(); 用来得到该类的名称 Method[] getDeclaredMethods(); 得到所有在该......

阅读全文(1692) | 评论:0

Java笔记交流(一)(2006-09-03 11:46:00)

摘要:、一般地,一个文件只存放一个类。当然,也可以将多个类放在同一个文件内,但只能有一个类声明为public,此文件的名字需和声明为public的类同名。2、Java严格区分大小写。3、命名的习惯:类名中,各个英文名字的第一个字母使用大写,并且不要使用任何符号作为字与字之间的分隔。4、类似C++,main()是Java程序执行的起点。Java只能执行包含main()的文件,它必须为public(热合对象都可读取它)和,static(可被直接调用而无需有对象存在)以及void(无返回值),但这也不是绝对的。例如,Apple和Servlet,它们不是从main()开始执行的。5、分号(;)是用来表示一个程序语句的结束。6、/** …… */用来生成Java程序的说明文件。7、javap可以用来读取.class文件的内容。8、可利用Java反编译器来得到.class文件的Java源程序代码,如Jad或Decafe。9、为了避免他人利用反向工程的方法来解读Java程序,可使用模糊器进行保护。如JBuilder就提供了此功能,其他还有JCloak、JProof。10、Applet是包含在HTML网页内,在客户端浏览器执行的Java小程序,Servlet是在服务器执行的Java程序。11、Applet小程序需要有两个文件,一是Java小程序的源程序,二是包含此小程序的HTML文件。12、有两种执行Applet小程序的方法,一是直接使用浏览器打开该HTML文件;二是使用appletviewer来执行该HTML文件。13、标识符必须以字母、下划线(_)或美元符号($)开头,其余部分可由前面所说的字符以及数字(0~9)所组成。14、关键字(keyword)不能作为标识符。15、true、false、null并不是关键字,但也不能用作标识符。16、Java基本上有类变量、实例变量和区域(local)变量3种类型的变量。类变量和实例变量只能在方法之外声明,而区域变量只能在方法之内声明。17、由于类变量和实例变量并不会占据命名的空间,因此,类内的方法仍可声明同名的变量。18、数据类型分为引用数据类型和基本数据类型。19、整数类型:byte、short、int、long、char20、Java内置的运算符并不会处理溢出(overflow)或下溢(underflow)的问题。只有在使用运算符/或%时......

阅读全文(2026) | 评论:0

使用XML的五种场合(2006-09-03 11:45:00)

摘要:使用XML的五种场合 主  题:  使用XML的五种场合[精华] 作  者:  ChinaOk (蓝蝶[授人以鱼,不如授人以渔]) 在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何 在他们的应用中使用XML。一些来自诸如Gartner公司的报告建议说,商业公司不能再做 局外人了,不能对XML置之不理。如果你还不清楚XML到底有什么好处的话,你并不是唯 一的人。 我决定把与人们和媒体关于XML话题的交谈整理成文,列出XML在应用中的五个最令人喜 爱的用法。尽管这些并不能包含XML的所有潜在应用,至少是些最重要的领域。 1、数据交换 用XML在应用程序和公司之间作数据交换已不是什么秘密了,毫无疑问应被列为第一位。 那么为什么XML在这个领域里的地位这么重要呢?原因就是XML使用元素和属性来描述数 据。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序 可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程。 相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使 用XML做数据交换可以使应用程序更具有弹性,因为可以用位置(与普通文件一样)或用元 素名(从数据库)来存取XML数据。 2、Web服务 Web服务是最令人激动的革命之一,它让使用不同系统和不同编程语言的人们能够相互交 流和分享数据。其基础在于Web服务器用XML在系统之间交换数据。交换数据通常用XML标 记,能使协议取得规范一致,比如在简单对象处理协议(Simple Object Access Protoc ol, SOAP)平台上。 SOAP可以在用不同编程语言构造的对象之间传递消息。这意味着一个C#对象能够与一个 Java对象进行通讯。这种通讯甚至可以发生在运行于不同操作系统上的对象之间。DCOM , CORBA或Java RMI只能在紧密耦合的对象之间传递消息,SOAP......

阅读全文(3983) | 评论:0

J2ME程序开发新手入门九大要点 (2006-09-03 11:44:00)

摘要: 一、J2ME中需要的Java基础知识  现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明。  J2ME中使用到的Java基础知识:   1、Java语法基础:包括基本数据类型、关键字、运算符等等   2、面向对象的思想:类和对象的概念,继承和多态等等。   3、异常处理   4、多线程  J2ME中没有用到的Java基础知识:   1、JDK中javac和java命令的使用    2、Java基础中的很多类在J2ME中没有,或者类中的方法做了大量的精简。所以建议在J2ME中熟悉类库。   3、Applet、AWT、Swing这些知识在J2ME中根本使用不到。  简单说这么多,希望学J2ME的朋友们能少走一些弯路,不足之处希望大家积极指正和补充。   二、J2ME中暂时无法完成的功能  列一些J2ME中暂时无法完成的功能,希望大家能积极补充:   1、在手机中不更改代码实现移植,主要指游戏。   2、动态修改按钮文字。   3、在Canvas上接受中文输入。   4、操作本地资源、例如地址本、已收短信息等。   5、制作破坏性的手机病毒。   6、其他等待大家来补充。  三、J2ME的跨平台性  J2ME技术源于Java,所以也具有JVM的优势,可以在支持Java的平台上进行移植,但是现在的J2ME技术在跨平台上却做的很糟糕,我们来简单看一下原因:  1、手机的屏幕尺寸不一:  这个主要在界面制作上。如果你使用的是高级用户界面,比如你做的是应用开发或者用户登陆、用户注册这样的通用功能时,一般没有什么问题。  如果你使用的是低级用户界面,比如你做的是游戏,那么你就需要考虑这个问题了。  2、厂商的扩展API不统一:  例如Nokia的扩展API类库UI系列,在别的手机上或者没有实现,或者包名不同等等。  3、手机平台上实现的bug:  例如Nokia的7650在实现双缓冲上有bug,那么在这种机型上运行的软件就不能使用双缓冲。其他NOKIA上的一些bug,可以参看:http://blog.csdn.net/Mailbomb/archive/2005/03/24/329123.......

阅读全文(1504) | 评论:0

用java编写xml的读写程序(2006-09-03 11:43:00)

摘要:用java编写xml的读写程序   这是读取xml文件的java程序,我调试好的。采用的是dom方式读取xml文件到Vector中。 package src; import java.io.*; import java.util.Vector; import javax.xml.parsers.*; import org.w3c.dom.*; public class readxml { static Document document; private boolean validating; public readxml() { } public Vector toRead(String filename) { Vector title=new Vector(); Vector content=new Vector(); String myStr=new String(); try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(validating); DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse(new File(filename)); document.getDocumentElement().normalize(); Node node = document.getFirstChild(); NodeList list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { Node nodeitm = list.item(i); if (nodeitm.getNodeName().equals("Title")) { myStr=nodeitm.getFirstChild().getNodeValue(); title.addElement(myStr);//getFirstChild() } if (nodeitm.getNodeName().equals("Content")) { myStr=n......

阅读全文(1644) | 评论:0

Java学习从入门到精通(2006-09-03 11:41:00)

摘要:Java Learning Path (一)、工具篇一、 JDK (Java Development Kit)JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。1、 JDK的下载和安装JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html。下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。2、 JDK的命令工具JDK的最重要命令行工具:java: 启动JVM执行classjavac: Java编译器jar: Java打包工具javadoc: Java文档生成器这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。二、 JDK DocumentationDocumentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册......

阅读全文(1780) | 评论:0

电影网站(2006-09-03 11:37:00)

摘要:一个很新的http://www.77y8.com 我最近常去的,不要注册就可以看,广告也不多,速度没得说 99免费电影   http://www.nszp.com刚开不久的电影网站,不需要注册就可以观看,速度还可以。 江西免费电影 http://www.jx-xinhua.com/movie.asp一个不需要注册就可以观看的电影网站,速度一般般。 易找人才网电影网 http://www.ejob.cn/vod/index.asp不需要注册就可以观看,有些片要安装一下插件才行,速度还可以。 逸风免费电影 http://www.nszp.com/不需要注册就可以观看,他的电影都是在网上搜集的,速度还可以。 时空影院 http://dvd.yztele.net/movie/直接点击观看,不需要注册,电影蛮多的,速度不错。 新快免费电影 http://www.xk88.com/老网站了,不需要注册就可以观看,电影不是很多,速度还可以。 超级VOD免费电影 http://www.powervod.com/需要用邮箱注册就可以观看,好像有些邮箱收不到密码,速度不错的。娱乐前线 比较出名的一个http://www.vod51.net/movie/index.asp亿流网http://www1.xdjm.net/index.html我爱影视免费电影http://movie.52ys.com/M866 电影下载网http://www.m866.com/NEW新视听http://vod.nen.com.cn/nenvod/vod-index.jsp新界乐园http://dvd.myzone.cn/91890新视听http://www.91890.com/dsjc/index.asp中国影库网 无需注册http://f003.com/index.htm免费电影网http://www.qq500.com/index.asp环球影视网 将免费进行到底http://hqss.com/vod/list.asp?id=680PP免费电影 中国最具实力的电影免费网站http://www.kanpp.com/7sese免费电影网站http://www.a263.com/http//www.155dy.com/......

阅读全文(3283) | 评论:5

什么是.NET?(2006-09-03 11:16:00)

摘要:Web服务从由简单网页构成的静态服务网站,发展到可以交互执行一些复杂步骤的动态服务网站,这些服务可能需要一个Web服务调用其他的Web服务,并且像一个传统软件程序那样执行命令。这就需要和其他服务整合,需要多个服务能够一起无缝地协同工作,需要能够创建出与设备无关的应用程序,需要能够容易地协调网络上的各个服务的操作步骤,容易地创建新的用户化的服务。 微软公司推出的.NET系统技术正是为了满足这种需求(还有针对JAVA)。.NET将Internet本身作为构建新一代操作系统的基础,并对Internet和操作系统的设计思想进行了延伸,使开发人员能够创建出与设备无关的应用程序,容易地实现Internet连接。 根据微软的定义:    。NET is a "revolutionary new platform, built on open Internet protocols and standards, with tools and services that meld computing and communications in new ways".     即:。NET = 新平台 + 标准协议 + 统一开发工具       。NET作为新一代互联软件和服务战略,将使微软现有的软件在网络时代不仅适用于传统的个人计算机,而且能够满足呈现强劲增长的新设备的需要。到底什么是。NET呢?微软总裁兼首席执行官Steve Ballmer把它定义为:。NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。        。NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。用户不需要知道这些文件放在什么地方,只需要发出请求,然后只管接收就可以了。而所有后台的复杂性是完全屏蔽起来的。           在微软的WinXP的发布会上,我注意到主持人特别强调的一句话:在未来,我们可以在任何时间,任何地点,使用任何设备获取信息(any time, ......

阅读全文(1707) | 评论:0

MFC入门<1>:MFC导论(2006-09-03 11:12:00)

摘要:Visual C++ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。为了能充分利用这些特性,你必须理解 C++ 程序设计语言。掌握了C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很容易地以面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并彼此兼容。你用 MFC 所建立的代码是完全可移植的。  该教程将向你介绍MFC的基本概念和术语以及事件驱动程序设计方法。在本节中,你将会输入、编译和运行一个简单的MFC程序。下一节中将向你详细解释这些代码。第三部分讨论了MFC控制和如何定制它们。第四部分将介绍消息映射,你将会处理MFC的事件。  什么是MFC?  如果你要建立一个 Windows 应用程序,应该如何下手?  好的开端是从设计用户界面开始。首先,你要决定什么样的用户能使用该程序并根据需要来设置相应的用户界面对象。Windows 用户界面有一些标准的控制,如按钮、菜单、滚动条和列表等,这对那些 Windows 用户已经是很熟悉了。 要记住的是,作为程序员必须选择一组控制并决定如何把它们安排到屏幕上。传统上,你需要在纸上做一下用户界面的草图,直到对各元素感到满意为止。这对于一些比较小的项目,以及一些大项目的早期原型阶段是可以的。  下一步,是要实现代码。为任何 Windows 平台建立应用程序时,程序员都有两种选择:C 或 C++。 使用 C,程序员是在 Windows 应用程序界面 ( API ) 的水平上编写代码。该界面是由几百个 C 函数所组成,这些函数在Windows API 参考手册中都有介绍。对于Windows NT, API 被称为 “Win32 API”,以区别于其用于Windows 3.1的16位 API。  Microsoft 也提供了 C++ 库,它位于任何 Windows API 之上,能够使程序员的工作更容易。它就是Microsoft基本类库 (MFC),该库的主要优点是效率高。它减少了大量在建立 Windows 程序时必须编写的代码。同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 是可移植......

阅读全文(1545) | 评论:0

MFC入门<2>:一个简单的MFC程序(2006-09-03 11:11:00)

摘要:在本章中,我们将一段一段地来研究上一将中提到的 MFC 应用程序,以便能理解它的结构和概念框架。我们将先介绍 MFC,然后在介绍如何用 MFC 来建立应用程序。  MFC简介  MFC 是一个很大的、扩展了的 C++ 类层次结构,它能使开发 Windows 应用程序变得更加容易。MFC 是在整个 Windows 家族中都是兼容的,也就是说,无论是 Windows3.x、Windows95 还是 Windows NT,所使用的 MFC 是兼容的。每当新的 Windows 版本出现时,MFC 也会得到修改以便使旧的编译器和代码能在新的系统中工作。MFC 也回得到扩展,添加新的特性、变得更加容易建立应用程序。  与传统上使用 C 语言直接访问 Windows API相反,使用 MFC 和 C++ 的优点是 MFC 已经包含和压缩了所有标准的“样板文件”代码,这些代码是所有用 C 编写的 Windows 程序所必需的。因此用 MFC 编写的程序要比用C语言编写的程序小得多。另外,MFC 所编写的程序的性能也毫无损失。必要时,你也可以直接调用标准 C 函数,因为 MFC 不修改也不隐藏 Windows 程序的基本结构。  使用 MFC 的最大优点是它为你做了所有最难做的事。MFC 中包含了上成千上万行正确、优化和功能强大的 Windows 代码。你所调用的很多成员函数完成了你自己可能很难完成的工作。从这点上将,MFC 极大地加快了你的程序开发速度。  MFC 是很庞大的。例如,版本4.0中包含了大约200个不同的类。万幸的是,你在典型的程序中不需要使用所有的函数。事实上,你可能只需要使用其中的十多个 MFC 中的不同类就可以建立一个非常漂亮的程序。该层次结构大约可分为几种不同的类型的类:  应用程序框架   图形绘制的绘制对象   文件服务   异常处理   结构 - List、Array 和 Map   Internet 服务   OLE 2   数据库   通用类   在本教程中,我们将集中讨论可视对象。下面的列表给出了部分类:  CObject   CCmdTarget   CWinThread   CWinApp   CWnd   CFrameWnd   CDialog   CView   CStatic   CButton   CListBox   CComboBo......

阅读全文(1642) | 评论:0