00000000.htm

来自「水木清华BBS」· HTM 代码 · 共 365 行 · 第 1/2 页

HTM
365
字号
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java是面向网络的语言。通过它提供的类库可以处理&nbsp;TCP/IP协议&nbsp;,用户&nbsp;<BR>可以通过&nbsp;URL地址在网络上很方便地访问其它对象。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.鲁棒性&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java在编译和运行程序时&nbsp;,都要对可能出现的问题进行检查&nbsp;,以消除错误&nbsp;<BR>的产生。它提供自动垃圾收集来进行内存管理&nbsp;,防止程序员在管理内存时容易&nbsp;<BR>产生的错误。通过集成的面向对象的例外处理机制&nbsp;,在编译时,Java提示出可能&nbsp;<BR>出现但未被处理的例外&nbsp;,帮助程序员正确地进行选择以防止系统的崩溃。另外,&nbsp;<BR>Java在编译时还可捕获类型声明中的许多常见错误&nbsp;,防止动态运行时不匹配问题&nbsp;<BR>的出现。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.安全性&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于网络、分布环境下的&nbsp;Java必须要防止病毒的入侵。&nbsp;Java不支持指针,&nbsp;<BR>一切对内存的访问都必须通过对象的实例变量来实现&nbsp;,这样就防止程序员使用&nbsp;&nbsp;<BR>&quot;特洛伊&nbsp;&quot;木马等欺骗手段访问对象的私有成员&nbsp;,同时也避免了指针操作中容易&nbsp;<BR>产生的错误。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.体系结构中立&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java解释器生成与体系结构无关的字节码指令&nbsp;,只要安装了&nbsp;Java运行时&nbsp;<BR>系统&nbsp;,Java程序就可在任意的处理器上运行。这些字节码指令对应于&nbsp;Java虚拟&nbsp;<BR>机中的表示&nbsp;,Java解释器得到字节码后&nbsp;,对它进行转换&nbsp;,使之能够在不同的平&nbsp;<BR>台运行。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.可移植性&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与平台无关的特性使&nbsp;Java程序可以方便地被移植到网络上的不同机器。&nbsp;<BR>同时&nbsp;,Java的类库中也实现了与不同平台的接口&nbsp;,使这些类库可以移植。另外,&nbsp;<BR>Java编译器是由&nbsp;Java语言实现的&nbsp;,Java运行时系统由标准&nbsp;C实现&nbsp;,这使得Java&nbsp;<BR>系统本身也具有可移植性。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.解释执行&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java解释器直接对&nbsp;Java字节码进行解释执行。字节码本身携带了许多&nbsp;<BR>编译时信息&nbsp;,使得连接过程更加简单。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.高性能&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;和其它解释执行的语言如&nbsp;BASIC、&nbsp;TCL不同&nbsp;,Java字节码的设计使之能&nbsp;<BR>很容易地直接转换成对应于特定CPU的机器码&nbsp;,从而得到较高的性能。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.多线程&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线程机制使应用程序能够并行执行&nbsp;,而且同步机制保证了对共享数据&nbsp;<BR>的正确操作。通过使用&nbsp;多线程&nbsp;,程序设计者可以分别用不同的线程完成特定&nbsp;<BR>的行为&nbsp;,而不需要采用全局的事件循环机制&nbsp;,这样就很容易地实现网络上的实&nbsp;<BR>时交互行为。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11.动态性&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入&nbsp;<BR>新的方法和实例变量而不会影响用户程序的执行。并且&nbsp;Java通过接口来支持&nbsp;<BR>多重继承&nbsp;,使之比严格的类继承具有更灵活的方式和扩展性。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二、&nbsp;Java&nbsp;Applet&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java语言的特性使它可以最大限度地利用网络。&nbsp;Ap-plet是&nbsp;Jav&nbsp;a的小应&nbsp;<BR>用程序&nbsp;,它是动态、安全、跨平台的网络应用程序。&nbsp;Java&nbsp;Applet嵌入&nbsp;HTML语&nbsp;<BR>言&nbsp;,通过主页发布到&nbsp;Internet。网络用户访问服务器的&nbsp;Applet时&nbsp;,这些Applet&nbsp;<BR>从网络上进行传输&nbsp;,然后在支持&nbsp;Java的浏览器中运行。由于&nbsp;Java语言的安全机&nbsp;<BR>制&nbsp;,用户一旦载入&nbsp;Applet,就可以放心地来生成多媒体的用户界面或完成复杂的&nbsp;<BR>计算而不必担心病毒的入侵。虽然&nbsp;Applet可以和图像、声音、动画等一样从网&nbsp;<BR>络上下载&nbsp;,但它并不同于这些多媒体的文件格式&nbsp;,它可以接收用户的输入&nbsp;,动态&nbsp;<BR>地进行改变,而不仅仅是动画的显示和声音的播放。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三、丰富的类库&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函&nbsp;<BR>数处理等&nbsp;,可以用它简单地实现Java程序的运行平台。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.输入输出包用统一的&nbsp;&quot;流&nbsp;&quot;模型来实现所有格式的&nbsp;I/O,包括文件系统、&nbsp;<BR>网络、输入&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.低级网络包用于实现&nbsp;Socket编程。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件&nbsp;,&nbsp;<BR>包括窗口、菜单、滚动条、对话框等&nbsp;,使得&nbsp;Java可以移植到不同平台的机器。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.网络包支持&nbsp;Internet的&nbsp;TCP/IP协议&nbsp;,提供了与&nbsp;In-ternet的接口。&nbsp;<BR>它支持&nbsp;URL连接&nbsp;,WWW的即时访问&nbsp;,并且简化了用户&nbsp;/服务器模型的程序设计。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;四、&nbsp;Java和&nbsp;C、&nbsp;C++&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于变量声明、参数传递、操作符、流控制等&nbsp;,Java使用了和&nbsp;C、&nbsp;C++&nbsp;<BR>相同的传统&nbsp;,使得熟悉&nbsp;C、&nbsp;C++的程序员能很方便地进行编程。同时&nbsp;,Java为&nbsp;<BR>了实现其简单、鲁棒、安全等特性&nbsp;,也摒弃了&nbsp;C和&nbsp;C++中许多不合理的内容。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.全局变量&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java程序中&nbsp;,不能在所有类之外定义全局变量&nbsp;,只能通过在一个类中定&nbsp;<BR>义公用、静态的变量来实现一个全局变量。例如&nbsp;:&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;GlobalVar{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;global_var;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在类&nbsp;GlobalVar中定义变量&nbsp;global_var为&nbsp;public&nbsp;stat-ic,使得其它类&nbsp;<BR>可以访问和修改该变量。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java对全局变量进行了更好的封装。而在&nbsp;C和&nbsp;C++中&nbsp;,依赖于不加封装&nbsp;<BR>的全局变量常常造成系统的崩溃。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.Goto&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java不支持&nbsp;C、&nbsp;C++中的&nbsp;goto语句&nbsp;,而是通过例外处理语句&nbsp;try,&nbsp;Catch,&nbsp;<BR>final等来代替&nbsp;C、&nbsp;C++中用&nbsp;goto来处理遇到错误时跳转的情况&nbsp;,使程序更可读&nbsp;<BR>且更结构化。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.指针&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指针是&nbsp;C、&nbsp;C++中最灵活&nbsp;,也是最容易产生错误的数据类型。由指针所进行&nbsp;<BR>的内存地址操作常会造成不可预知的错误&nbsp;,同时通过指针对某个内存地址进行显&nbsp;<BR>式类型转换后&nbsp;,可以访问一个&nbsp;C++中的私有成员&nbsp;,从而破坏安全性&nbsp;,造成系统的&nbsp;<BR>崩溃。而&nbsp;Java对指针进行完全的控制&nbsp;,程序员不能直接进行任何指针操作&nbsp;,例如&nbsp;<BR>把整数转化为指针&nbsp;,或者通过指针释放某一内存地址等。同时&nbsp;,数组作为类在Java&nbsp;<BR>中实现&nbsp;,良好地解决了数组访问越界这一C、&nbsp;C++中不作检查的错误。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.内存管理&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;C中&nbsp;,程序员通过库函数&nbsp;malloc()和&nbsp;free()来分配和释放内存&nbsp;,&nbsp;C++&nbsp;<BR>中则通过运算符&nbsp;new和&nbsp;delete来分配和释放内存。再次释放已释放的内存块或&nbsp;<BR>未被分配的内存块&nbsp;,会造成系统的崩溃&nbsp;;同样&nbsp;,忘记释放不再使用的内存块也&nbsp;<BR>会逐渐耗尽系统资源。而在&nbsp;Java中&nbsp;,所有的数据结构都是对象&nbsp;,通过运算符new&nbsp;<BR>为它们分配内存堆。通过new得到对象的处理权&nbsp;,而实际分配给对象的内存可能&nbsp;<BR>随程序运行而改变&nbsp;,Java对此自动地进行管理并且进行垃圾收集&nbsp;,有效防止了由&nbsp;<BR>于程序员的误操作而导致的错误&nbsp;,并且更好地利用了系统资源。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.数据类型的支持&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;C、&nbsp;C++中&nbsp;,对于不同的平台&nbsp;,编译器对于简单数据类型如&nbsp;in&nbsp;t,float&nbsp;<BR>等分别分配不同长度的字节数&nbsp;,例如:int在&nbsp;IBM&nbsp;PC中为&nbsp;16位&nbsp;,在&nbsp;VAX-11中为&nbsp;<BR>&nbsp;32位&nbsp;,这导致了代码的不可移植性&nbsp;,但在&nbsp;Java中&nbsp;,对于这些数据类型总是分&nbsp;<BR>配固定长度的位数&nbsp;,如对&nbsp;int型&nbsp;,它总占&nbsp;32位&nbsp;,这就保证了&nbsp;Java的平台无关性。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.类型转换&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;C、&nbsp;C++中&nbsp;,可以通过指针进行任意的类型转换&nbsp;,常常带来不安全性&nbsp;,&nbsp;<BR>而&nbsp;Java中&nbsp;,运行时系统对对象的处理要进行类型相容性检查&nbsp;,以防止不安全的&nbsp;<BR>转换。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.头文件&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C、&nbsp;C++中用头文件来声明类的原型以及全局变量、库函数等&nbsp;,在大的系&nbsp;<BR>统中&nbsp;,维护这些头文件是很困难的。而&nbsp;Java不支持头文件&nbsp;,类成员的类型和访&nbsp;<BR>问权限都封装在一个类中&nbsp;,运行时系统对访问进行控制&nbsp;,防止对私有成员的操&nbsp;<BR>作。同时&nbsp;,Java中用&nbsp;import语句来与其它类进行通讯&nbsp;,以便使用它们的方法。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.结构和联合&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C、&nbsp;C++中的结构和联合中所有成员均为公有&nbsp;,这就带来了安全性问题。&nbsp;&nbsp;<BR>Java中不包含结构和联合&nbsp;,所有的内容都封装在类中。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.预处理&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C、&nbsp;C++中用宏定义来实现的代码给程序的可读性带来了困难。在&nbsp;Java&nbsp;<BR>中&nbsp;,不支持宏&nbsp;,它通过关键字&nbsp;final来声明一个常量&nbsp;,以实现宏定义中广泛使&nbsp;<BR>用的常量定义。&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(未完待续)&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;<BR>^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;^_^&nbsp;[s[4;65HO[3;66HO[3;67HO[3;68HO[4;69HO[5;69HO[6;68HO[7;67HO[8;65HO[7;63HO[6;62HO[5;61HO[4;61HO[3;62HO[3;63HO[3;64HO[u&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Welcome&nbsp;EveryOne!&nbsp;<BR>&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;166.111.74.158]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?