# i" ]6 E, D2 J/ ^; L 在多线程环境中的编程通常是困难的,因为许多东西可能同时出现。但是,Java提供了易于使用的同步特性,使编程更为方便。8 ?6 J4 |9 b& u1 ^
! n+ d( s6 P B0 L8 U8 p. ~+ i- L Java线程通常被映射为实际的操作系统线程,只要底层操作系统支持这种映射。因此,用Java写的应用程序可说是“MP热”。这就是说,如果它们在多处理器机器上运行,它们更将表现不凡。5 T. H" m1 l, J7 c 8、Java是可收集无用的存储单元的; i6 M" @5 x. j6 H# X9 U2 a
4 a3 j Z& F+ w2 K3 l5 ]) \8 o2 z+ W 用C及C++写软件的编程人员必须仔细跟踪所用的内存块。当一个块不再使用时,他们务必让程序释放它,从而方可再用。在大的项目中,这可能很困难,并往往成为出错和内存不足的根源。# o& A$ k4 i0 n
! ~ r- V! V; }( u! o S 在Java的情况下,编程人员不必为内存管理操心。Java系统有一个叫做“无用单元收集器”的内置程序,它扫描内存,并自动释放那些不再使用的内存块。 4 n+ s& j8 M- \# ], T# i; _ 9、Java是快速的/ L: l/ Y( t" t : c8 C8 V+ T' o+ l1 ^- Y! f
Java比典型的脚本语言大为有效,但它比C慢20倍。这对大多数应用是可接受的。 2 |1 u% N( z3 F& X& H% m# o; i8 i6 b- Y% Y! Y
不久的将来,代码生成器就可供利用了,这将使Java程序几近于用C或C++编写的程序那么快。 8 b, S4 }; |) N5 y* y* ~10、Java是安全的 2 p$ c. O) y; F& t; r l8 @ 8 S; _+ ], s9 {/ B Java程序没有指针,而且象这样的字节代码程序强在类型上,所以在执行之前它可能验证Java程序。被验证的Java程序得以保证不突破Java语言的任何**,而且可以安全地执行。Java字节代码验证被Web浏览器用来确保小程序不含病毒。 , G7 T. \" E4 X( X3 {3 s 11、Java是可扩展的 & a5 R& ?9 Q- T7 j5 y7 V5 `. u8 M* M# x. Y
Java程序可与用其它语言编写的现存程序库连接。由于Java数据结构与C的数据结构的类型极为相似,这是相当方便的。最大的问题在于,现有多线程程序库为数不多。 / i7 r, G8 [9 S, Z* g 6 L6 }! X7 F3 Y+ u Java程序可以声明某些方法是内部的,然后,把这些内部方法映射成软件库所定义的功能,从而动态地链接到虚拟机。