《Java语言入门》

下载本书

添加书签

Java语言入门- 第2部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。Java还简化了使用一个升级的或全新的协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,没关系,Java能自动下载你所需要的功能程序。
1。3与C和C++语言的异同
  Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++还是被大家所接受,所以Java设计成C++形式,让大家很容易学习。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,Java去掉了以下几个C和C++功能和特征:指针运算结构typedefs#define需要释放内存全局变量的定义这个功能都是很容易引起错误的地方。
1。4Java的应用简介
1。4。1Web浏览
  Web浏览是现在国际网甚至局域网的主要使用方式。文档能很容易地显示文本和各种图片,他还能提供超文本链接。这些浏览器调用HTML语言写的文档,HTML/浏览器技术只限于文本和图象。如果你想播放一种声音或运行一个演示程序,你不得不下载那个文件并用你本机上的能理解和运行那个文件格式的程序来播放它。Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400baud线上传输视频图象时,HotJava将能显示这些视频。
1。4。2网络应用系统
  Java是一种与平台无关的语言,因此用Java开发的网络应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动。而且,Java集成的网络功能分有利于开发网络应用系统。
本章小结:
  1。Java的产生与流行是当今internet发展的客观要求。
  2。java是一门各方面性能都很好的编程语言,它的基本特点是简单、面象对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的。分适合在internet环境上开发应用系统。
  3。java可以制作大部分网络应用程序系统,而且与当今流行的浏览器结合得很好。
第二章Java程序开发与运行环境
2。1JDK环境
  Java不仅提供了一个丰富的语言和运行环境,而且还提供了一个免费的Java开发工具集(JavaDevelopersKits,简称JDK)。编程人员和最终用户可以利用这些工具来开发java程序或调用Java内容。JDK包括以下工具:javacJava语言编译器,输出结果为Java字节码javaJava字节码解释器javapDisassembeler:Java字节码分解程序,本程序返回Java程序的成员变量及方法等信息。javaprof资源分析工具,用于分析Java程序在运行过程中调用了哪些资源,包括类和方法的调用次数和时间,以及各数据类型的内存使用情况等。javahC代码处理工具,用于从Java类调用C++代码javaAppletViewer小应用程序浏览工具,用于测试并运行Java小应用程序javaDebuggerAPIJava调试工具APIPrototypeDebuggerJava调试工具原型Java开发环境还包括Java类库(包括I/O类库、用户界面类库、网络类库等)和HotJava浏览器。其中,HotJava浏览器提供了在环境下运行Java代码的一个运行系统,而且还为开发人员提供了一个Java开发框架。Java解释器是面向Java程序的一个独立运行系统,它可以一种稳定、高性能方式运行那些独立于平台的Java字节码,Java编译器则用于生成这些字节码。
2。1。1Java程序的编译
  Java程序的编译程序是javac。exe。javac命令将Java程序编译成字节码,然后你可用java解释器java命令来解释执行这些Java字节码。Java程序源码必须存放在后缀为。java的文件里。Java程序里的每一个类,javac都将生成与类相同名称但后缀为。class文件。编译器把。class文件放在。java文件的同一个目录里,除非你用了…d选项。当你引用到某些自己定义的类时,必须指明它们的存放目录,这就需要利用环境变量参数CLASSPATH。环境变量CLASSPATH是由一些被分号隔开的路径名组成。如果传递给javac编译器的源文件里引用到的类定义在本文件和传递的其它文件中找不到,则编译器会按CLASSPATH定义的路径来搜索。例如:CLASSPATH=。;C:javaclasses则编译器先搜索当前目录,如果没搜索到,则继续搜索C:javaclasses目录。注意,系统总是将系统类的目录缺省地加在CLASSPATH后面,除非你用-classpath选项来编译。javac_g是一个用于调试的未优化的编译器,功能与用法和javac一样。javac的用法如下:javac'…g''…O''…debug''…depend''…nowarn''…verbose''…classpathpath''…nowrite''…ddir'file。java。。。以下是每个选项的解释。
选项解释:
  …classpathpath定义javac搜索类的路径。它将覆盖缺省的CLASSPATH环境变量的设置。路径是由一些由逗号隔开的路径名组成,一般格式如下:。;例如:。;C:javadocclasses;C:toolsjavaclasses表示编译器遇到一个新类,它先在本文件中查找它的定义,如果没有,则在本文件所处目录下其它文件中查找它的定义,如果还没有,则继续搜索C:javadocclasses目录中的所有文件,以此类推。
  …ddirectory指明类层次的根目录,格式如下:javac…dMyProgram。java这样将MyProgram。java程序里的生产的。class文件存放在my_dir目录里。
  …g带调试信息编译,调试信息包括行号与使用java调试工具时用到的局部变量信息。如果编译没有加上…O优化选项,只包含行号信息。
  …nowarn关闭警告信息,编译器将不显示任何警告信息。
  …O优化编译static,final,private函数,注意你的类文件可能更大。
  …verbose让编译器与解释器显示被编译的源文件名和被加载的类名。
环境变量
  CLASSPATH用来提?copy;给系统搜索用户定义的类的缺省路径。各路径由分号隔开,例如:。;C:javadocclasses;C:toolsjavaclasses表示编译器遇到一个新类,它先在本文件中查找它的定义,如果没有,则在本文件所处目录下其它文件中查找它的定义,如果还没有,则继续搜索C:javadocclasses目录中的所有文件,以此类推。
2。1。2Java程序的调试使用java调试器
  jdb导游在早期前Betal版的Java调试器jdb是命令行形式的,如用Sun公司的dbx调试器。用jdb来调试Java应用程序,在调试前,要确证你的应用程序是带标志-g编译的。例如:javac…gHelloWorld。javahelp命令将显示jdb里的可用命令列表。
  》helpthreads'threadgroup'……列出线程thread--设置缺省线程Suspend'threadsid(s)'--将线程挂起resume'threadid(s)'--重新启动线程where'id'|a1|--打印线程的堆栈threadgroups……列出线程组号threadgroup--设置当前线程组print'id(s)'--打印对象或域dump'id(s)'--打印所有对象信息locals--打印当前堆栈所有局部变量classes--列出当前所知的类methods--列出一个类的成员函数stopin。--在一个成员函数里设置断点stopat:--在一行里设置断点up'nframes'--在线程堆栈里往上移down'nframes'--在线程堆栈里往下移clear:--清除一个断点step--执行当前行cont--从断点处继续执行catch--为指定的情况中断ignor--为指定的情况忽略list'linenumber'--打印源程序use'Sourcefilepath'--显示或改变源路径memeory--报告内存使用情况loadclassname--加载Java类以便调试run--开始执行加载的类!!--重复以上的命令help(?)--列出所有的命令exit(orquit)--离开调试器
2。1。3Java程序的执行
  java…java语言解释器java命令解释java字节码语法:java'options'classnamejava_g'options'classname
  描述:java命令由java编译器javac输出的Java字节码。classname参数是要执行的类名称。注意任意在类名称后的参数都将传递给要执行类的main函数。java执行完main函数后推出,除非main函数创建了一个或多个线程。如果main函数创建了其它线程,java总是等到最后一个线程推出才推出。
选项:
  …cs;…checksource当一个编译过的类调入时,这个选项将比较字节码更改时间与源文件更改时间,如果源文件更改时间靠后,则重新编译此类并调入此新类。
  …classpathpath定义javac搜索类的路径。它将覆盖缺省的CLASSPATH环境变量的设置。路径是由一?copy;由逗号隔开的路径名组成,一般格式如下:。;例如:。;C:javadocclasses;C:toolsjavaclasses表示解释器遇到一个新类,它先在本文件中查找它的定义,如果没有,则在本文件所处目录下其它文件中查找它的定义,如果还没有,则继续搜索C:javadocclasses目录中的所有文件,以此类推。
  …mxx设置最大内存分配池,大小为x,x必须大于1000bytes。缺省为16兆。
  …msx设置垃圾回收堆的大小为x,x必须大于1000bytes。缺省为1兆。
  …noasyncgc关闭异步垃圾回收功能。此选项打开后,除非显式调用或程序内存溢出,垃圾内存都不回收。本选项不打开时,垃圾回收线程与其它线程异步同时执行。
  …ssx每个Java线程有两个堆栈,一个是java代码堆栈

小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架