.net和java到底该选哪个————.net和java对比

玩了一个学期的游戏,这学期终于开始学点东西了,快三个月来都没有一个明确的目标,把java,C#.NET,C++.NET都粗略的学了一下,下面说一下自己的感受.

    首先说说java,java的发展历史很短, 1995年,美国Sun Microsystems公司正式向IT业界推出了java语言,该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,当时以web为主要形式的互联网正在迅猛发展,java语言的出现迅速引起所有程序员和软件公司的极大关注,程序员们纷纷尝试用java语言编写网络应用程序,并利用网络把程序发布到世界各地进行运行。java语言是纯面向对象的语言,它最大的特点是跨平台,使用java编写的程序可以直接运行在linux,unix甚至是苹果机上.平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。除此之外java还具有强大的网络功能,而java最早也正是由于其网络功能而风靡全球的,它使网页从乏味的HTML网页变成了生动的动态网页.

    java编程在语言的格式上与C++没有多大区别,学过C++的人可以很快上手.java中不再使用C++的指针内存由操作系统分配,这样可以避免病毒通过指 针侵入系统;类不再可以多继承,同时引入接口的概念,也就是C++中的虚基类,一个类可以同时实现多个接口,从而满足多态性和程序功能的需要.正是由于这些,java代码极大的提高了程序的安全性.在java中进行GUI图形编程会显的很容易,事件的引发都很容易理解.除了这些,java在j2ee开发中有着无比巨大的前景,在手机,移动设备中的应用也十分广泛。

   再看看C++.NET,拿到一本C++.NET(2003)的书你会发现最大的特点使到处都是指针(*和->)的符号,而在VS2005里面则全都改成^符号(即托管指针),总之到处都是指针,为了弥补C++的安全性缺陷,C++.NET使用了大量的代码,让人眼花缭乱,同时使程序的编写也更复杂.在C++中建立一个String数组只要使用String[] str=new string[n]就可以了,而在VS2005中你要使用array<String^> str^=gcnew array<String^>(n)才能创建一个String数组,麻烦吧.我学java时写了一个简单的纪事本,功能和windows的基本上一样,用了300行代码,用C++.NET写了一下,功能基本一样,用了800多行.到处都是一些没有太多意义的代码.所以我十分的不看好C++.net.

  再说C#,看过java的人再看看C#,就会大呼微软真是个小偷,C#中完全套用了java的格式,从类的封装,继承,到内存的自动释放,所有的都是从java中照搬过来的,同java一样C#舍弃了C++中的指针,类也不再允许多继承,与java完全一样的在类中加入了一个static void main()函数作为程序的入口函数,所有的引用都和java一样使用(.)来获得子类或者成员,同时VS2005为C#提供了代码提示的功能,有效的帮助程序员加速代码的编写(这些在java的编译工具eclipse中也有),而没有为C++.NET提供.控件方面C#和C++.NET基本一样,其实C#就是微软使用JAVA的外壳包装了C++.NET.
  与java相比,.NET平台(包括C++.NET和C#.NET)在控件上面比java要多,同时C#使用微软的公共语言库(CLR),能够使用各种语言编写的控件,控件的功能做的也比java相对的要多,

同时由于是微软做出来的东西,可以很方便的调用windows API函数来管理系统,这些都使得.net在某种意义上比java的功能更强大,但是这些都是表面上的,java从一开始就是为了跨平台,它没有必要去过多的关注操作系统,使用java也完全可以实现.net平台的所有功能,只是表现形式可能不一样。而且java程序可以在任一个安装了java虚拟机系统上运行。当然在windows操作系统仍处于主流的今天,在做应用软件的时候,使用C#还是更方便的。
  另一方面,就是在WEB开发中的应用,使用依托C#语言的ASP.NET相对于使用JAVA语言的JSP表现的功能更强大,网页中的HTML代码更少了,使用各种控件也使得网页的设计更简单,这点JSP还没有跟上,但是再回到平台的问题上,就又显示了JAVA的优势了,使用ASP.NET开发的网页前提一定要运行在WINDOWS平台上,如果服务器是UNIX平台则不能执行下去。
   总的来说,.NET平台中只有C#值得去学,而且如果在WINDOWS平台下,C#可以说是当之无愧的最完善,功能最强大的语言,有了C++编程基础很快就能上手,java则一样容易学。而基于跨平台考虑,鉴于LINUX和UNIX系统的使用越来越广泛,java必将长期在程序设计中占据一席之地,所以java和C#到底该选哪个,还是自己看吧,我到现在还没有确定,哈哈,我的处女帖终于写完了,写的不好,请多包涵。

 

展开阅读全文

没有更多推荐了,返回首页