Java与.Net大PK

来源:互联网 发布:在mac上安装win7 编辑:程序博客网 时间:2024/04/29 19:21
   作为一个编程人员,很多人都会有一个疑惑:是学习java还是.net?

   由于本人之前学过一段时间的.net,而最近又在学习java,于是对二者进行了一下比较:

 

首先,清楚两者的本质

  Java是绑定于一种语言的跨系统的平台,是一个有多家供应商提供竞争性产品的规范。

  .net是绑定于一种系统的多语言平台,是一个规范性较弱的垄断性产品。

 

然后,看两者对XML的支持能力

  .net集成了XML和Web Service,使用起来非常方便;

  java也不甘示弱,提出了XML规范,可有多种方式来解析XML文件,使用起来比较灵活。

  那它们的不同体现在哪里呢?

  我们先看一个小Demo,分别使用.net和java来读取配置文件。

  1..net读取xml文件

  由于.net对xml文件进行了封装,所以变成了config文件,下面我们来看一个App.config文件:

   

<?xml version="1.0" encoding="utf-8" ?><configuration>       <appSettings>            <add key="DB" value="Sqlserver"/>       </appSettings></configuration>

  c#文件读取:

   

private string db =ConfigurationManager.AppSettings["DB"];

  2.java读取xml文件

   xml文件sys-config.xml:

<?xml version="1.0" encoding="UTF-8"?><config><db-info><driver-name>oracle.jdbc.driver.OracleDriver</driver-name><url>jdbc:oracle:thin:@192.168.24.188:1521:test</url><username>drp</username><password>drp</password></db-info></config>

  java文件读取(采用dom4j的方式读取):

Document doc = new SAXReader().read(Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml"));Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");Element urlElt = (Element)doc.selectObject("/config/db-info/url");Element usernameElt = (Element)doc.selectObject("/config/db-info/username");Element passwordElt = (Element)doc.selectObject("/config/db-info/password");dbcInfo = new JdbcInfo();

  通过上面的Demo我们可以看出,.net读取配置文件以及配置文件的写法都很简单,一句话就能搞定,这就是它集成的好处;可反过来我们又会发现,它的配置文件的写法很死板,必须按照它指定的格式去写,不然它就不认识你了。

  而java则恰恰相反,它的配置文件的写法非常灵活,你爱怎么写就怎么写,因为它会一条一条的去读取,所以就增加了读取的代码量。

  其实说到底他们的区别就是集成与灵活。

  不过,我认为作为一个编程人员,在学习的过程中不能图方便,现在的方便就是在为以后堆大山,到时候遇到让你自己写xml文件时就向面对着一座大山了(其实没那么夸张啦)。

 

最后,还得看你的选择

  作为一个编程人员,面对以后的就业方向问题,我认为还是选择java好(相对来说),理由如下:

  1. java就业面很广,它对大中小型系统都适用,只要搭配不同的操作系统、应用服务器等等,大到银行综合信息系统、全国全省的统一应用系统,小到手机游戏,Java可以大小通吃,来者不拒。

  2.java比.net容易“学”

  为什么会这么说,因为对于java来说,入门比较难,但是只要你学到一定的程度,能够开发项目,那么你就可以在这个行业上有所发展。

  对于.net来说呢,它入门很容易,任何人一般都能上手,所以也就体现不出你的优势,只有学到足够的深度(比如做一些跟操作系统相关的开发),你才能在这个行业站得住脚。

  当然,上面的说法只是我个人意见,大家如果有什么异议,可以留言讨论。