Sun公司已经开放了对java技术的最后限制,并且鼓励在linux发行版中集成java平台和netbeans框架,在未来的时间内java很可能成为linux的内建功能。
对java技术的实现,目前有三种方式:java虚拟机、java操作系统、java硬件系统(java卡),目前应用最广泛的是java虚拟机,但无疑用操作系统来实现java功能可以获得更高的性能。苹果的Mac OS X就是操作系统级的java实现。
目前java技术的主要对手是微软公司的.net技术。微软公司一直宣称.net平台比java有更好的性能,并且将原因归功于即时编译技术(JIT)。但java从1.3开始就内置了JIT编译器和Hotspot虚拟机,有兴趣的可以去看看Java JIT编译器大战的资料。.net平台的性能,更多的来源于与windows系统的紧密集成,只是微软不敢这么说。
一直依赖人们对java都存在误解,即java是靠虚拟机解释执行java字节码运行的,java一定比编译执行的C++要慢,不适合做桌面程序。但实际上,java程序在运行的时候,字节码只被解释执行一次,而后都是以机器码运行的。java程序运行的速度相当快,别告诉我你还在用java 1.4.2。另外java的可执行文件是JAR格式而不是class。JAR是可以双击执行的。
现在java程序的运行速度跟.net平台相比,在性能上差的仅仅是与系统集成度那么一点。如果linux内建java虚拟机,这最后一点差距也可以弥补。同时以java开发linux桌面程序,也可以解决linux程序依赖性众多移植难度大的问题。
.net平台上最重要的应用是ASP.net,于此相对应的是java平台的JSF(JSP的升级版)JSF同样支持可视化网络编程。由于Sun公司的宣传力度的问题,JSF的知名度不及ASP.net,但JSF在功能上毫不逊色与ASP.net。JSF与ASP.net的差别,正如JSP与ASP的差别一样,JSF比ASP.net要难一点,但功能和可定制程度更强。