版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA技术及其应用——“个人理财助手”的设计与实现毕业论文(本科生)论文题目:JAVA技术及其应用——“个人理财助手”的设计与实现摘要Java语言是SunMicroSystem公司开发的新一代面向对象的程序设计语言,是网络程序设计的优秀工具,特别适合于建立分布式计算机应用程序。它使Internet的作用从通信工具扩展到能够运行应用程序的网络,这一突破使企业可以在Internet上进行全方位的业务服务和实时信息交换。Java语言还简化了软件代理(Softwareagent)的结构,在不远的将来,用户也许可以在本地计算机上向Internet发送软件代理,以便到世界各地搜寻所需的信息或进行有限服务。“个人理财助手”是一个功能简单的GUI应用程序,对用户的日常收入支出进行记录,有助于个人财务管理,并且操作:简便。本文共有两个部分,第一部分是Java的概述,从Java的起源、开发环境和开发软件(JDK)的获取安装三方面介绍了lava的基本概念,如:Java的历史,Java的结构、特性;Java开发的软硬件环境,JDK的安装以及JDK工具的内容等等。第二部分着重介绍在“个人理财助手”中我负责的模块涉及的文件输入输出、添加删除和系统线程这两方面。具体包括文件的输入输出、读取保存,添加和删除记录,使用线程和使类可线程化等内容。关键词:个人理财;JAVA;面向对象
ABSTRACTThenewgenerationJavalanguageisaSunMicroSystemcompanydevelopstofacetotheproceduredesignoftheobjectthelanguage,andisanoutstandingtoolthatdesignofnetworkprocedure,specialsuitableforestablishthedistributetypecomputerapplication.ItmaketheInternetfunctionexpandfromthecorrespondencetooltoapplythenetworkoftheprocedure,andthisisonbreakingtomakebusinessenterprisecanattileInternetgoforwardanall-directionsbusinessserviceandcanexchangeinformationinrealti.ne.TheJavalanguagestillsimplifiedtheconstructionofthesoftwareagent,atnotfarfuture,customercanperhapsillthenativecomputersendontthesoftwareagencytointernet,inordertoarrivetheworld-widelocationstosearchaninformationforneedingorproceedsthelimitedservice.The"individualadministerfinancialtheassistants"isaGUIofsimplefunctiontoapplytheprocedure,andexpendtheproceedingrecordtothecustomer'susualincome,andisbeneficialtothenlanagementofpersonalfinance,andoperateeasilythen.Thistexttotallycontainingpartoftwoparts,thefirstsarcJavasummary,fromtheJavaorigins,developmentenvironmentandinstallwithobtainingofdevelopmentsoftware(JDK)threeaspectsintroducedtheJavabasicconcept,suchas:Javahistory,Javaconstruction,characteristic;Softhardwareenvironment,thelearningoftheJDKandtheJDKtoolthatdevelopofJavaetc.Thesecondispartoftoputgreatemphasisonintroductioninthe"personaladministerfinancialtheassistant"insidemyresponsibleformodelsforinvolvingofdocumentpieceinput,output,add,deleteandsystemline.inaspecificwayimportationthatincludetiledocumentinput,output,addanddeleterecord,usethelineandmakeclasscanbelinearizedetcKeyWord:IndividualFinancialAdminister,Java,OO
目录TOC\o"1-3"\h\z1 Java概述 3 Java的起源 3 Java简史 3 Java的前身:Oak 3 Java的推出 4 Java与Web 5 Java结构 6 Java特性 8 Java开发环境 14 Java开发的硬件环境 14 Java开发的软件环境 15 获取和安装SUN公司的JDK 16 JDK工具的内容 172 软件结构设计 18 软件的设计流程 18 个人技术重点 19 输入输出 19 处理文件 20 添加和删除 22 线程 23 软件操作说明 25 软件的编译和运行(以Windows2000和Windows98为例) 25 简要说明 263 总结 27致谢 29参考文献 30JAVA技术及其应用——“个人理财助手”的设计与实现前言Java是一种使建立分部式应用程序(即网络上的多个计算机执行的程序)更简单、易行的技术。Java是网络编程的最优秀工具,使Internet的作用从通信工具扩展到能够运行成熟应用程序的网络。这种突破性技术使企业可以在Internet上部署全方位的业务服务利实时交互式信息内容。Java还简化了Softwareagent的结构,Softwareagent是在网络上交换信息并且运行在远程计算机上的程序。在不远的将来,用户也许就能从本地Pc机向Internet发送软件代理,到世界任何地力寻找特定的信息或进行限时方式传输。Java出现之前,Internet主要用于信息共享。尽管Internet建立于1960年,但其商业潜力是在1990年才被认识到,这归功于万维网(WWW)。Web是一种新技术,将Internet资源当作链接文档,改变了我们访问信息的方式。Web使Internet用户能在不学习复杂命令的情况下访问Internet服务,使企业更容易生成联机图形、提供产品,信息、甚至直接通过网络销售商品。Java技术将其往前推进了一步,使通过Web提供完全交互式的应用程序变成可能。人们对Java如此关注的原因可以归结为下列几个方面:·编写强大而可靠的程序·几乎可以在任何系统平台上建立应用程序,并不需要编译源程序代码即可在其它平台上运行该程序·以安全方式在Internet上发放应用程序特别地,Java程序可以嵌入Web文档,将静态页面变成运行在用户的计算机上的应用程序。联机文档不再限于印刷:书籍似的文章。使用Java,文档可以包括模拟、工作模型、甚至专业化工具。这就意味着Java有改变Internet功能的潜力,就象Web改变Internet的访问方式一样。换句话说,网络不仅能够提供信息,还能作为我们的操作系统。“个人理财系统”软件是本Java小组用纯Java语言编写的一个功能简单的GUI(图形用户界面)应用程序。它有助于管理个人财政上的收入支出等问题。由于时间和能力有限,我们难以做至尽善尽美,不当之处在所难免。恳请批评指正。
Java概述Java的起源Java简史1990年,SUN公司开始了一个Green项目,开发用于电器中的软件。SUN素以其Unix工作站著称,同时也推出了几个著名的软件,包括Solaris操作系统和NTFS(网络文件系统)。一个资深的网络软件设计专家.JamesGosling被分配到新项目中。Gosling开始用C++编写嵌入烤面包机、VCR和PDA(个人数字助手)等的软件。嵌入软件通常通过加入数字显示或用人工智能方法更好地控制其机制使电器更加智能化。然而,不久他就发现用C++做这件事是一个错误。c++控制嵌入系统足够灵活,但可能出现毁坏系统的错误。特别是c++使用对系统资源的直接引用,要求编程人员跟踪这些资源的管理方式,这对编程人员是一个很大的负担。这种资源管理的负担是编写可靠的,可移植的软件的障碍,是消费电器的严重问题。总之,计算机用户能允许软件有一些错误,但没人允许烤面包机出错。Java的前身:OakGosling用了一个新语言Oak来解决这个问题。Oak保留了熟悉的c++语法,但省略了明确的资源引用、指针算法与操作符重载等潜在的危险特性。Oak将内存管理直接加进语言中,编程人员可以专心于程序要完成的任务。为了成为嵌入系统编程语言,Oak需要能在几微秒内响应实际发生的事件。还需要具有可移植性,即应当能够运行在多种不同的微处理器芯片和环境中。这种硬件无关性使烤面包机制造者能改变用于烤面包机的芯片而不必改变软件。制造者也应能将烤面包机上的程序代码运行在微波炉或其它电器上。这就可以降低开发和硬件成本,同时提高可靠性。当Oak成熟时,万维网也正处于戏剧性增长的时期,Sun的开发小组认识到Oak非常适合internet编程。1994年,他们完成了一个用Oak编写的早期Web查看器,称为WebRunner.WebRunner后来改名为HotJava,展示了Oak作为Internet开发工具的能力。Hot.Java在该行业中非常著名,HotJava项目现在仍在活跃,新的版本正在开发。最后,1995年,Oak更名为Java(为了促销和法律原因)并在SunWorld95中发布。从此,Java的知名度如日中天。甚至在1996年1月Java编译器第一版发布之前,Java已经成为Internet发布的行业标准。Java的推出1996年的前六个月,许多一流的软件和硬件公司都从Sun取得了Java技术许可,如Adobe、Asymetrix、Borland、IBM、Macromedia、Metrowerks、Microsoft、Novell、Oracle、Spyglass和Symantec。这些公司和其他Java授权的公司一道把Java加入它们的桌面产品、操作系统和开发工具中。也是在1996年,Java语言有了实质性的补充。上述公司负责开发的新的API(应用程序接口,应用程序开发人员构造软件的函数库)给Java环境提供了高级图形、多媒体、网络和安全改进。新的JavaOS将把Java带到PDA和特殊网络计算机等特殊的低级市场。1998年夏末推出的Java2大大提高了Java的移植性、安全性和功能性。更多的改进指日可待,更多的公司纷纷加盟。Sun、Symantec、Metrowerks、Borland、和IBM等公司已经为Java开发者提供了几种集成开发环境。Lotus等许多大公司正在用Java建立桌面应用程序组件,使它们能在Internet上工作。就连Microsoft也在使其应用程序支持Internet和与Java兼容(当然,象Microsoft这样的公司有臼己的理念,想把Java锁定到他们的专用操作系统和应用程序结构中,从而使Sun与Microsoft引出了不少纠纷,也许要几年之后才能理出头绪)。显然,这个技术来势甚猛,很少人会怀疑Java会彻底改变我们所知道的计算机行业。Java与Web今天,最容易找到Java的地方是在WWW上。Web是Java程序方便的传输机制,Web的无所不在又使Java以Internet开发工具闻名于世。简单介绍万维网之后,我们将简单解释Java如何动态地扩展Web的能力。Java开始通过使用Java小程序解决协议问题。Java小程序就象图形一样嵌入Web文档中。Java小程序在NetscapeNavigator中用Java的Web浏览器将其装入运行。然后,运行的小程序根据编程人员的指令在用户的浏览器窗口重绘自己。假设我们一个用于Web页的股市自动收报小程序(股市自动收报就是股票价格及其变化水平的报告)。股票价格实时发送到用户的Web浏览器,用户可以取得最新的信息。由于需要一个连续的股票价格信息流,不是这种应用程序适用的协议(实际上是一种文件传输协议,而不是连续数据流协议)。因此,我们需要设计一个新协议。让我们需要设计一个新协议。让我们称它为简单股票报价协议(SSQP)。想象一下客户机与服务器之间的对话:Client:GETNASDAQServer:0KServer:1043/8-11/21CP801/4+1/4…(客户机在用户要求期限内连续显示数据)Client:STOP这个对话就是股票报价协议的草图。服务器响应(;ET命令,先响应请求,再发送回一个连续数据流。Stop命令终止对话。我们可以用最适合该项任务的语言来实现SSQP服务器。这可以足java或其它不可移植语言,只要能在我们的服务器上运行就行。在Java中,我们很容易编写实现客户对话并显示返回数据的股票自动报价Java小程序。浏览器执行时,小程序用SSQP联接到服务器并显示具有最新数据的股票自动报价。这样,不需要用户的任何人工干预,就可以使股票自动收报显示在浏览器窗口。Java结构Java的能力来自它独特的结构。Java设计者需要的是—个编程人员用起来简单的语言。但为了生成可靠的应用程序,Java还需要在网络上安全地运行并用于各种系统平台。Java完成了所有这些及其它目标。Java的工作方法与许多其它编程语言一样,Java用一个编译器将人们可读的源程序代码转换成可执行程序。传统编译器生成的是特定硬件的可执行码,例如Windows95C++编译器生成的是Intelx86处理器上可以执行的程序.而Java编译器生成的是独立于处理器结构的字节代码。字节代码只能用一个Java虚拟机(VH)水执行,VM是理想化的.Java处理器芯片,通常是在软件上实现而不是在硬件上实现。编译的过程如图1所示。Java字节代码文件称为类文刊:(classfile),因为其包含单个java类。现在,只要把类看作一组相关程序或一个扩展数据类型。JAVA的编译过程为了执行Java字节代码,虚拟机用类装入器从磁盘或网络上取字节码。每个类文件送进一个字节代码验证器(verifier),确保该类格式正确处理,这个类在执行时不会破坏内存。字节代码的验证阶段会增加装入类的时间,但实际上能使程序运行更快,因为类验证只进行一次,而不要在程序运行时重复验证。VM的执行单元完成字节代码中指定的指令。最简单的执行单元是一个翻译器(interpreter),读取字节代码,翻译其意义,再完成相关的功能。翻译器一般要比本地的代码编泽慢很多,因为执行期所需要连续查看每个字节代码的意义。现在有一个码翻译的精彩替换,称为JIT(实时)编译器。JIT编译器在执行前把字节代码转变为用户机上的本地代码指令。传统的本地代码编译器运行在开发者的机器上,供编程人员使用,生成不可移植的执行程序。JIT编译器运行在用户机器上,对用户是透明的,产生的本地代码已经在目的地上,所以不需要移植,图2显示了JIT编译器工作的方式。在图中的例子中,Macintosh和WindowsPC机收到的是相同的字:节代码,每个客户机进行本地的JIT编译。图1.2JIT编译器的工作方式Java特性(1)安全性安全性可能是Internet开发者面临的最重要的问题。用户最怕两件事:保密信息被窃取或计算机系统被黑客破坏。Java的内置/内置式安全性解决了这两个问题。Java的安全性模型有三个基本组成部分:类装入器、字节代码验证器和安全管理器。你已经知道了字节代码验证器确保Java程序的编译正确,遵循VM的访问限制,字节代码不会访问不可访问的保密数据。没有这些防卫,VM中的其它安全性限制就可以被跨越,对小称许在系统上所做操作便失去了限制。下一层安全性是由类装入器提供的。类装入器从网络上获取类时,它安全管理器实现VM的安全性策略。安全性策略确定VM可以进行什么活动,在什么条件下进行。一个重要的例子就是文件输入/输出(I/O),例如,存储和装入磁盘文件中的文档。Java有能力读取或写入文件,但首先要经过安全管理器I/0检查。这使安全管理器能确定Java程序是否可以坊问磁盘文件而不会对文件系统造成恶意伤害。安全管理器通常用于防止警告性错误。在最著名的Java允许:使用的浏览器NetscapeNavigator中,安全性策略甚至不允许文件访问。然而,安全管理器本身是用Java编写的(是一个Java类文件),所以必要时可以覆盖。当然,有措施来防止敌意的Java程序写入门己的安全性策略。这些措施防止Web浏览器运行时将其它安全管理器加入系统。在专用网络中,需要文件访问和任意网络访问来解决业务要求。例如,在一个专用网络上实现客户机/服务器数据库应用程序时,可能需要java小程序与多个服务器建立连接。标准的安全管理器禁止这种行为,因为这在公用网络上是一种安全性的威胁。因此应用程序开发者可以对网络上的每个Pc机改变安全管理器源代码并重新编译到Web浏览器中。这样可以定制专用网络的安全性策略。如果专用网络有向Internet之类的公用网络的管理类,则定制安全管理器的编码更加困难。覆盖安全管理器时必须十分小心,否则公用网上的敌对小程序可能会利用松散的内部安全性策略进行袭击。Java2用基于权限的安全性策略扩展安全机制。这样就不需要扩展安全管理器,是过程大大简化。Javal.1推出后,开发人员能够在小程序中加入另一层安全性。核心API中加进了扩展安全性API,使Java类可以签名(signed)。数字签名(digitalsignature)和支票上的签名作用相同,用于保证支票出自你的手,而不是别人假冒的。数字签名使开发人员刊以用牢不可破的公用密钥加密系统给所写的代码签名。然后用户可以用这个签名确定装入的是否为安全的程序。程序可以根据可信程度限制对本地磁盘、内存和网络资源的访问程度。加密本身相当复杂,但整个过程对用户和开发人员都是透明的,很容易在Web上传递加密内容。总之,Java的内部安全性措施保证Java程序在VM规则下操作,防止未授权的程序访问包含专有信息的系统资源或危及客户机的完整性。Java还使开发人员或单位可以给所生成的程序签名,使用户能确保访问可靠的小程序和应用程序。(2)核心APIAPI即应用程序编程接口。API是应用程序开发者为了更快地构造软件而使用的功能库。Java的核心API提供了一组系统平台上常用的功能。APi分成多个软件包,它们足分别完成相关功能的类。这些软件包之包含一些核心语言功能。如文本处理和错误处理,没有这个库,Java程序的编写几乎是刁;可能的。其它软件包中包含实用程序、联网、I/o、图形用户接口工具和与Web浏览器的接口。还有涉及安全性、数据库访问、可复用软件、集合、拖放、访问性和引用对象的软件包,新的软件包也在不断推出。(3)开放式标准今天,JavaVM已经出现在十几种不同的硬件与操作系统组合中。Java跨平台能力的最动人之处在于Java类文件不需要预先针对每个平台进行编译。同一个编译过的Java程序可以用于运行JavaVM的PC、Macintosh或各种系统平台。在你的系统中编写的Java应用程序可以运行在所有支持Java的系统平台上。另一个成为成功的跨平台开发工具的关键是每个平台上有专用的核心功能集。核心JavaAPI对Java的所有实施都是一样的,它足够复杂,无需对桌面应用程序编写本地码。当然实际情况会更复杂一些,Java是一种新语言,大多数VM和API实施中都有符合Java规范方面的小问题,特别对于用户接口。为了对伺这个问题,Sun有个彻底的测试组件,所有Java兼容系统都要通过这些测试才能称为与JavaAPI兼容。再加上Netscape和IBM经营的移植和调整中心,可以清除JavavU版本间的差别。除了作为事实上的标准之外,Java还将进入国际标准领域,因为ISO/lECITC-1(国际标准化组织/国际电子技术委员会第一联合技术分会)已经批准Sun公司作为Java的PAS(公用规范)提交者。除了公用桌面操作系统外,我们希望JavaVM实现在用于嵌入系统利智能卡的芯片上。Sun公司已经推出CFU芯片picoJava,提供个人家电能和网络计算机等设备中直接执行的Java字节代码,并宣布计划制造另以外两种Java处理器,称为microJava和UltraJava。Java正在和许多伙伴一起朝最初的Green项目的目标前进,已经在、电视和手提设备中一展英姿。(4)分布式和动态结构Windows操作系统中,部分程序可以换成动态链接库(DLL),以便动态共享或装入(即在程序运行时)。操作系统在执行时完成最后阶段的链接。使用共享DLL能节省内存并改进软件的模块程度。在unix中,这类动态链接是通过共享库完成的。Java进一步利用了动态库。VM类装入器在从盘上取类文件的同时还可以从网络上获取,使Java应用程序既是动态的又是分布式的。这种特性使可用Java的浏览器能够自动采用新Web地址上可用的协议。Java具有改变行业中使用的软件分布式模型的潜力。与其买磁盘或光盘上的软件,不如直接在Internet上“租借”需要的应用程序(Java类),就象租用联机时间一样。软件是直接来自厂家的,所以是最新版本。然而,目前还有两种障碍使这种美妙前景不易实现:下载应用程序所需的时间是大多数用户难于接受的,为了让下载软件能与今天的基于磁盘的应用程序竞争,用户所需的连接要比今天的标准28.8kbps的modem快100倍。还没有一个保证软件租用刊款的标准。没有这种标准,就象每个软件厂商有自己的币种一样,租借软件前要与每个厂商作出特殊的协议。尽管这些问题不是无法解决的,但支持这种分布式模型的网络基础设施还得过一段时间才能实现。走向这个目标的第一步积极动作是Java企业API,其支持电子商务和增加的安全性,并支持Netscape、Visa等提山的其它商业标准。随着Marimba的Castanet产品等分布式方法的出现,可以在不久的将来看到人们通过Internet发布商业化Java应用程序。(5)面向对象面向对刘象编程(OOP)是以可复用、可扩展和可维护的方式编写软件的方法。Java是面向对象的语言,即可以面向对象编程。Java核心API实际上就是一组预制的OOP构件,面向对象编程人员将它称为类库。类库使编程人员在进行新项目开发时有一个很好的开始。(6)多线程单线程应用程序任何时候只执行一个线程,这种程序一次只能做一件事。单线程程序要完成一个几分钟的工作(如下载)时,任务进行中用户接口通常不响应其它请求。多线程应用程序可以同时独立执行多个线程。这些线程可以交流或合作,用户显示状态为单个程序。(7)内存管理与无用内存的收集Java的内存管理强化了VM的安全性。在c和c++中,编程人员可以防问系统中应用程序的任何部分。这可以通过指针完成,指针是引用特定内存位置的变量。Java不用严格意义上的指针Java的指针实际上是VM资源的引用,这种变量不允许任何算法,防止编程人员访问VM以外的系统资源。尽管这样一来会消除一些最高级的C++编程“技巧”,但能大大简化开发人员和用户的工作。而且由于核心API提供了许多该语言内置的重要数据结构,使任意指针的作用大为减弱。历史上,与无用内存收集有关的问题是性能。无用内存收集器必须描述内存中可以消除的对象,然后删除内存中的可清除对象。取出内存碎片通常也是低效的,但检查太频繁则会使系统在积累大量内存碎片后暂停。为了提高性能,Java的无用内存收集器在自己的伊优先级线程中运行,提供了效率与实时响应很好的平衡。Java开发环境Java开发的硬件环境Java对硬件的要求非常低,可以在非常低档的CPU上顺利运行。只要机器能够支持安装Java虚拟机(JVM),那么就可以运行Java。Java开发的软件环境常用的Java运行平台Windows98,Windows2000(网络版或单机版),WindowsNT,UNIX,Macintosh。Java的开发软件Java开发工具(JDK)是一个由SUN公司开发的免费软件包。这个软件包包括了所有编写Java程序和运行Java程序所需要的工具。JDK可以使用在编写程序时所要做的工作尽可能地减少。它不是集成的开发环境,没有完全包括开发Java程序的所有工具。JDK的工具是在命令提示符下使用的。就像Win95和WinNT里的DOS窗口那样。包含源代码的文件就是用文本编辑器编辑的普通ASC码文本文件。这种文本编辑器可以是Notped(Win32提供)、"(UNIX系统提供)或者BBEdit(Macintosh提供)‘,如果用户决定用集成开发环境作为自己的JAVA开发工具,那么就应该找一个带有可以为Java代码加颜色的代码编辑器,带有工程文件管理器和速度较快的编译器的集成开发环境。Microsoft公司的VisualJ++、Borland公司的.JBuilder、Symantec公司的Cafe、IBM公司的VisualAgeofJava、Metroworks公司的Codewarrior、Aysmetrix公司的SuperCode就是几个可以得到的商用Java开发环境。每种开发环境都有其优点和缺点,如果用户扪算做重要的JAVA开发,那么应该考察一下它们,看哪一个更适合用户的编程需要,从中选一个最合适的。“个人理则”软件就是用SUN公司的JDK开发的。获取和安装SUN公司的JDK下载JDK除了从光盘中获得JDK以外,还可以从国际互连网上下载.IDK。从国际互连网上下载肯定可以得到最新版本的JDK。下载站点:://Javasoft/products,在“DownJDKSoftware”弹出式菜单中列有可从SUN公司得到的用于各种操作系统上的JDK,从这个弹出式菜单中选出要使用的操作系统。安装下载的JDK每一个平台都有它自己标准的安装过程,而且.JDK安装程序做得非常好,只要按照它的提示做下去,就可以顺利而轻松地将JDK安装成功(本小组使用的是Windows98和Windows2000操作系统,安装时非常方便)。用户一般是在Windows95或WindowsNT上运行Java,安装过程如下:(1)选择安装目录。这些指令假设安装的位置是c:\JDKl.2,如果选择了不同的主目录,可以直接把适当的路径(并且-可能需要改变驱动器符)追加上去。如果说希望安装在E:\TOOLXJAVAX目录下可以在所有的指令中用(2)如果计划安装在网络驱动器上应确保批有对相应目录的写入权限。(3)通过运行自展开程序将JDK展开。(4)验证下列子目录在C驱动器下已经被创建:C:\JDKl.2;C:\JDKl.2\BIN;C:\JDKl.2\CLASSES:C:\JDKl.2\DEMO~C:\JDK1.2\LIB。(5)在autoexec.bat文件里的PATH语句中增加C:\JDKI.2\BIN。SetPATH=C:\windows;C:\dos;……C:\jaava\bin。(6)在autoexec.bat文件里设置CLASSPATH环境变量:SetCLASSPATH=C:\windows;C:\dos;……C:\java\bin。(7)重新启动计算机使新的环境变量生效。JDK工具的内容(1)javac:Java语言的编译器。这是Java语言非常重要的JDK工具,将Java原始程序代码编译成字节码。编译方式如下:javac<选择功能>(2)java:Java语言的解释器。指令java用来执行javac编译成字节码。用法如下:java<选择功能>name(3)jdb:Java语言的除错器。jdb是一个除错器,用于对java解释的类进行除错。用法如下:jdb<选择功能><类名><参数>(4)Appletviewer:JavaApplet的浏览器。前面介绍javac编泽Java程序代码成为字节码,然后,使用java执行字节码类,这种程序称为JavaApplication程序。如果在javac编译Java程序代码成为字节码后,再建立一个HTML文档,使用appletviewer执行此HTML文档。(5)javadoc:JavaAPI文件管理器。javadoc会使用Java程序代码生成组HTML格式的相关文件。用法如下:javadocname.java(6)javah:C/C++头文件生成器。javah用来生成C/C++头文件。用法如下:javah(options)<classes>(7)javap:Java反汇编器。3avap用来反汇编Java文件。用法如下:javap(options)<classes>软件结构设计软件的设计流程图2.1软件的设计流程个人技术重点在“个人理财助手”设计过程中,我主要负责文件的输入输出、添加删除和系统线程这两部分。因而,以下我将以这两部分为主进行介绍。(其中实例均为“个人理财助手”中的实际代码)。输入输出所有的计算机程序必须接受输入和输出。每种计算机语言必须拥有处理输入和输出的方式,否则它就无法编写有用的程序。丰富的类集是Java的特征,Java的类可以描述一切输入和输出,从普通的输入流和输出流到复杂的随机访问文件。java.io包为数据读取和写入提供了不同的输入和输出流。有些流是用于各种资源的,包括对普通文件系统功能访问(比如文件和目录的创建、删除和重命名以及目录列表)。输入和输出可以被连接到文件、网络套接字或内部的内存缓冲区。java.io包还包括了许多流过滤器。流过滤器允许用户以各种不同格式访问数据流。用户也可以创建自己的过滤器以增加额外的功能。流就是数据流动。输入流指引来自外部世界的数据从键盘或文件流向计算机;输出流指引数据流向输出设备,比如屏幕和文件。因为流实际上是笼统的,基本的流并不特别地定义数据流入和流出地设备。就和传送驱动灯泡、电视机或洗碟机的电流的电线一样,基本输入和输出流可以被指向或来自许多不同的设备。处理文件大概除了从键盘上接收数据和在屏幕上显示数据之外最常用的输入和输出了。任何希望获得自身状态的程序(包括被编辑文件的状态)都必须能够加载和存储文件。Java提供了几个类,包括File,FileDescriptor,RandomAccessFile,FilelnputStream,FileOutputStream,FileReader,FilePermission和FileWriter,它们都是用于处理文件的。读取文件如果用户的文件读取需求比较简单,那么用户可以使用FilelnputStream类,该类是从inputStream种派生出来的简单输入流类。该类的所有方法都是从FilelnputStream类继承来的。例:Onerecord[]record;//one_record为自定少的一个类//以下是提取文件操作RandomAccessFile.in=newRandomAccessFile("records_i.dat","rw");Intn=(int)(in.length()/0nerecord.Kl:CORDSIZE);record=newOne_record[n];//逐条读取记录for(inti=n-1;i>=I;1--){record[i]=newOne_record();in.seek{i*One_rocord.RECORD_SIZE};//定位到当前记录最后一个字符record[i].readData(in);//读取第i条记录,readData()为自定义的方法运行后的情况入下图所示:运行后的情况文件的保存(输出)与FilelnputStream类相对应的类是FileOutputStream类,FileOututStream类提供了基本的文件写入能力。例://保存的记录DataOutputStreamout=newDataOutputStream(newFileOutputStream(“”));//逐条保存for(Inti=0;i<record.lengthdelrow-1;i++)record[i].wrlteData(out);//存取第i条记录,writeData()为自定义方法out.close();//结束保存添加和删除本节讲述如何载表中添加和删除一条记录。设定表格例:String[]field-{“日期”,“名称”,“数量(元)”,“备注”}://设定表格字段Object[][]data={};intdelrow;//显示所选行数Booleandel=true;=newDefaultTable.Model(data.field);//建立表格格式为DefaultTableModelJtable.tablel=newJtable(tmodel)://定义表格添加记录例://该方法用来增加一条记录publicvoidaddRecord(Strlngdata,Stringname,doubleamount,String.explanation){Objectnewdata[]={data,name,newDouble(amount),explanation):Tmodel.addRow(newdata):)删除记录例://该方法用来删除所选的一条记录publicvoiddelSelectedRecord(){delrow-tablel.getSelectedRow();tmodel.remoreRow(delrow);线程Java的一大特点就是内置的线程支持。多线程允许用同时做多件事情。如果——个人在同一个时间里只允许活动—·条胳膊或一条腿,那么这个人肯定觉得受限制了。多线程就是计算机解决这类问题的力‘案“在软件里,通常用户只有一个处理器,这一个处理器必须接受所有的任务。为了管理处理器,提出了“多任务”的概亡,实际上在同一时间里处理器还是只做一件事,但是通过任务之间的快速切换让人们感到处理器正在同晌做多种事情。用计算机术语讲,就叫做多线程。照这样考虑:每个程序都被交给一个专人去执行一组任务,这个程序就叫做线程。这个人再把它的时间进一步分成线程。为什么使用线程理解多线程是很重要的,因为Java比其他编程语言再大的优势是它的内置的、本地的对线程的支持。通过址川线程,用户可以避免再执行任务和查看结果之间的等待。借助这个优势,用户可以将打印工作置于后台,而在前台继续输入文档或执行某些其他任务。在Java中,线程通常用于是小应用程序进入后台做某些事情,而让浏览器继续做它自己的工作。任何需要同时做多件事情的应用程序都可以考虑使用Java来开发。如何使类可线程化使应用程序和类运行在两个线程内有两种途径:扩展Thread类:使用Runnable接口:通常,当用户希望某个类能够运行在自己的线程使,也希望扩展某些其他类的特征,因为Java不支持多继承性,所以必须通过Runnable接口来实现。Thread类本身就使用了Runnable接口。接口只有一个方法:run()。不论何时创建了一个使用了Runnable接口的类,都必须在类中编写run()力法来覆盖接口中的run()方法。实例为了使“个人理财助手”能够正常运行,在类中定义了时钟和除时钟以外的总线程,如下所示:privateclockclockPcdanel=newclock2("clock")://clock2是一个自定义的实现时钟的类publicvoidstart(){ThreadclockThread;//定义时钟线程clockThread=newThread(c[ockPanel);clockThread.start()://运行时钟线程ThreadthisThread=newThread(this);//定义程序总线程ThisThread.start();//运行程序总线程}如此定义,使得时钟和程序得以互不干扰地“同时”工作。软件操作说明软件的编译和运行(以Windows2000和Windows98为例)运行Java虚拟机:假定JDF的安装路径为c:\jdkl.3。进入命令提示符窗口,键入:pathc:\jdkl.3\bin(如果没有在auteexec.bat中设置好path变量),进入所在目录:cdd:\hong。编译:键入javac-运行:键入javaEconomicAssistant,进入软件主窗口,如图:图2.3软件主窗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《快速成型技术B》教学大纲
- 《新能源材料A》教学大纲
- 教科版六年级科学上册电子教案
- 健康教育五年级上册教案
- 玉溪师范学院《通信原理实验》2022-2023学年第一学期期末试卷
- 化学配平质量守恒燃烧教案
- 年度财务报表附注模板-财务管理
- 2024年粘胶纤维项目成效分析报告
- 2024届河北省新高三下学期第二次质量检测试题(数学试题)
- 二年级第十七课心理健康教育《学会观察》教学设计改
- GB/T 16491-1996电子式万能试验机
- 运输公司系统平台建设、维护及管理制度
- 第七章 欧拉方程
- 五大领域教学法(课堂PPT)
- 数控车床编程基本学习培训课件
- 如何说孩子才会听课件
- 《沏茶问题》课件
- 习作:我们眼中的缤纷世界2套(部编版三上)课件
- 贵州·贵阳·山水黔城
- 小学生血液知识讲座课件
- 小讲课-中心静脉压的测量及临床意义
评论
0/150
提交评论