当前位置:编程学习 > C#/ASP.NET >>

Java和.Net的优势和弱势分别是什么?

大家好! 我是北大青鸟昌大培训中心的一名学生。
         以入学2个多月了,一直有个疑问想请专家指点。
         Java和.Net的优势和弱势分别是什么?
         我现在对这IT这行还是比较朦胧,专家们推荐下这两门课程应该学哪门好些?
         
--------------------编程问答-------------------- 不是很了解java。但是java现在是最流行的语言。
--------------------编程问答-------------------- 我觉得现在学习java比较好,因为C#相对java而言,简单很多,所以现在很多人选择了C#,这样竞争力也就更大了,从而工资平局水平也就比java低了很多,我有几个同学学java的,工资现在都很高了,当然如果两门都学好了,那样更好。不过学java的,刚开始出来也不好找工作,很多公司都希望招有经验的java程序员。

建议你学习C#或者java的时候同时了解一下C++、delphi,以后可以自己编写桌面程序,招聘C++公司也很多。

现在好像android很流行了 --------------------编程问答-------------------- 倚天屠龙,不分伯仲,看自己喜欢了 --------------------编程问答--------------------
引用 2 楼 slyzly 的回复:
我觉得现在学习java比较好,因为C#相对java而言,简单很多,所以现在很多人选择了C#,这样竞争力也就更大了,从而工资平局水平也就比java低了很多,我有几个同学学java的,工资现在都很高了,当然如果两门都学好了,那样更好。不过学java的,刚开始出来也不好找工作,很多公司都希望招有经验的java程序员。

建议你学习C#或者java的时候同时了解一下C++、delphi,以后可以自己……

两个都学?开神马鸡巴玩笑, --------------------编程问答-------------------- 我劝你还是读完这第一学期就走!
一边学.NET 一边学JAVA学不好 的!
先学完一门有时间再去学另一门!
我给他们忽悠进去读过第一学期!
和我一起进去的!
他们读完Y2的都还要问我技术!
所以他们教的也没什么技术在里面!
还是要靠自己学! --------------------编程问答-------------------- 我只看看,不做评论! --------------------编程问答-------------------- 编程的原理是相同的,建议先搞java. 如果想有更多的发展,就一起学 --------------------编程问答-------------------- 话说做一行钻一行,前提是钻。当然为了适应这个社会,你也要多了解点开发语言,比如java,c++,C 其次作为软件程序员,思想是最重要的,有时间看看数据结构,算法,设计模式之类的。公司需要的是一个听话能做事的人,所以不要怕累也不要怕苦,软件开发其实很有趣,不要以完成某些东西而去做开发,去研究如何高效,高重用,高性能的代码,比埋头写代码更有价值。.net相对于现阶段确实不如java红火,但是.net还有wp7,win8其实未来的前景不算太差。做软件不要太注重技术的深入,做事能力包括对突发事件的应急能力才是重要的,这也是为什么敏捷开发比较流行的原因。LZ若还在深究孰优孰劣有点骑驴看唱本的味道,先入行再升华!等接触多了,其实各有千秋,薪资水平代表的只是某阶段某项技术语言的使用率比较高,不能代表语言本身的优劣。我想以上一些话,LZ应该有所领悟了吧?其实我也是北大青鸟出来的,鄙人不才工作只有1年,且薪资水平很低。做软件最忌讳的就是盲目跟风,没有自己的思想和见解,这样一辈子都是码农。个人见解,望大虾们手下留情,欢迎指正,喷子绕道,谢谢! --------------------编程问答-------------------- --------------------编程问答--------------------
引用 3 楼 wedding123 的回复:
倚天屠龙,不分伯仲,看自己喜欢了

java成熟很多(其实老很多);不是巨头的东西;没威胁。
--------------------编程问答-------------------- 根据自己喜好选择啊!那样学精了都行 --------------------编程问答-------------------- 随便搞一个,只要肯下功夫都可以到罗马
你也不可能做一辈子开发是吧 --------------------编程问答-------------------- 建议学JAVA,我喜欢而已 --------------------编程问答-------------------- 建议学java 不管以后怎样 就目前来说JAVA是最好的 --------------------编程问答--------------------

--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
弱语言javascript 或者 美工的工资你又知道是多少么?这样的弱语言和设计类的工资你去打听打听动态语言开发的人汗颜。
问些问题让人没嘴说,不知道脑子想过没有。

第二个上面很多人说几个都学傻逼了。我还告诉你,在中国,你纯asp.Net开发谁敢要你,都凭良心说。
从我毕业那天开始J2EE搞过,后来被公司逼搞asp,妈的后来又Flex,再后来asp.Net。现在window phone。
我不承认我的技术很好,至少我觉得掌握多门语言的入门有助于更快的接触新的开发技术,和理解编程的思想。

看次看到这样的问题已经很无语了,看到很多回复更无语。
想工资高学什么还不简单,嵌入式,C ,你有能力么?
谁又说Net很简单的,是的,你拖控件是很简单。你他吗就拖一辈子啊。Net别以为自己会几个控件,几个数据绑定就牛逼了,再怎么说也是托管。牛逼就把FW给搞透了。

作为一个程序猿(自称自己是软件工程师的就别往自己贴金了, 搞清楚自己的能力和工程师的名词概念)。
不是你学好一门或者多门语言就完了,对于互联网的趋势发展和理解思想至少也要有自己的观点。同时,一个简简单单的Net程序员 又知道有多少Net相关技术吗?你能用不同的技术去输出“Hello world!”吗?

说的很简单就是,作为一个新人,不管是为人处事,还是生活习惯,办公室政治,业务,技术。别去想对自己的用处有多大,先学再说。总对自己是有用处的。多学不是坏事。当然,学什么是站在自己理性的角度去分析,例如你会asp.Net,然后再回过头去没事整天捣鼓个asp那我也只能无语。
--------------------编程问答--------------------
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
……

--------------------编程问答--------------------
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
……


显然被无良言论坑过。。。。。。深有感触。。。。。 --------------------编程问答-------------------- 各有个的好,MS的东西都收费,java使用的人比较多 --------------------编程问答-------------------- 一刀一剑,没有什么好比的,同样的问题,你是爱人爸多点,还是爱你妈多点?
只要学好了,学什么都行的。 --------------------编程问答-------------------- 想当初我刚学的时候也这么问过别人,现在想想,纯属多余,原理掌握了,其他的很容易上手的 --------------------编程问答-------------------- 还是java比较适合开发人员,开源的资源比较多。
--------------------编程问答--------------------
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
……


慷慨激昂,一语中的,

汝亦知射乎?吾射不亦精乎?
无他, 但手熟尔 --------------------编程问答-------------------- 不做多评论,只说下我自己的学习历程。
学懂C#后,学java一个星期左右就可以做简单的开发了(看着api弄)。
个人学到先努力学好一门,在那一门里掌握好一些基本的能力,如看api,面向对象的思想,各种方法论,数据结构等,这些才是关键,这些学好了,你什么语言拿过来都可以开发,最多是不是很熟练,刚开始慢点而已 --------------------编程问答-------------------- 学C,java.net神马的,工资比不上C --------------------编程问答--------------------
我只能说.NET的开发环境还是用起来方便点 --------------------编程问答--------------------
引用楼主 shy120507033 的回复:
大家好! 我是北大青鸟昌大培训中心的一名学生。
         以入学2个多月了,一直有个疑问想请专家指点。
         Java和.Net的优势和弱势分别是什么?
         我现在对这IT这行还是比较朦胧,专家们推荐下这两门课程应该学哪门好些?

怎么说呢 看看这篇文章吧  也许对你有帮助 !!!http://blog.csdn.net/woaicplusplus/article/details/6952444 --------------------编程问答-------------------- 每一门语言都有属于它自己的优势和劣势,具体的要说分析java和.net的话我觉得其实都一样,真的!现在很多言论都说java强于.net,但是为什么.net能成为java的一大强大对手,难道就不会有它的过人之处么,不可能的嘛,呵呵! --------------------编程问答-------------------- 1、目前JAVA跨平台做的表较好,因此非Win系统上JAVA很流行,C#只能在WIN上使用,实际上,JAVA在Windows编程份额很少;
2、JAVA本来的目的是用于家电编程的,因此,库体积比较小巧,相对于庞大的.net更是如此;
3、Android的兴起,带动了JAVA的进一步流行,因为Android编程是基于JAVA的,但是业界认为Android的优势正在慢慢丧失,未来发展可能很缓慢,毕竟手机和平板领域有苹果,微软也开始大规模进军了。。。 --------------------编程问答-------------------- java跨平台性比.net好
现在.net开发人员在中国比较多 --------------------编程问答-------------------- java高级点 --------------------编程问答-------------------- 我也是这个学校出来的
后来走的是。net
真他妈的后悔啊 
现在在这个公司 。net项目没几个
java的 他妈的做不完  公司都不敢接 人手不够  
我勒了个去 
过完年 转java 去
不过我们公司的目标是 人人都要全面
这边人不够 就贴过去 --------------------编程问答--------------------
引用 31 楼 t_j_c 的回复:
我也是这个学校出来的
后来走的是。net
真他妈的后悔啊 
现在在这个公司 。net项目没几个
java的 他妈的做不完  公司都不敢接 人手不够  
我勒了个去 
过完年 转java 去
不过我们公司的目标是 人人都要全面
这边人不够 就贴过去

你要是学java结果进个.net的公司你也会后悔的。。 --------------------编程问答-------------------- .net有微软的后盾,java跨平台,linux下可以方便的部署 --------------------编程问答-------------------- 几年没来,原来还有人在争JAVA和.NET 真有意思. --------------------编程问答-------------------- --------------------编程问答-------------------- 我也是北大青鸟毕业的学员,我个人认为学习java可能前景会好一点,但是java对于就业有难度,java的门槛比较高,刚毕业的学员不好找工作 --------------------编程问答-------------------- 看自己的興趣,比較重要,都有優勢,語音都是相通的。 --------------------编程问答-------------------- 每种语言都没什么绝对优势。将一门语言学的牛X那就成专家了。java能做的c#也能做可能就是烦一点,C#能做的javs不一定能做。大家都知道C语言是写低层的,很少有人知道它也可以写网站啊只是不像其他专门做网站语言那么方便而以。 --------------------编程问答-------------------- 大姨妈贴 --------------------编程问答-------------------- 有啥好讨论的呢??? --------------------编程问答-------------------- java是哪一你年正式发布的?.net是哪一年正式发布的?这个是基本的区别。

其次,许多开源软件采取先java,然后.net的开发方法。因为这些东西大多都是在java集市上综合了一大堆烂东西然后去粗取精把别人的东西弄来改一改,慢慢时髦起来的。等一个开源软件终于在业余开发人员心目中变得时髦起来,自然是所有的主流平台都要去适配。 --------------------编程问答-------------------- 其实反过来说,你开发时对随便一个小设计都要找几十个开源软件去“研究”么?其实开源软件中被公认使用的凤毛麟角,其它的要么是非常烂(以至于对项目的质量和进度有害)要么就是别人一般都看不明白有什么用。

那么其实还是要回到主流,也就是考虑一些区别包括:官方提供的类库的成熟度和程序员之间公认程度是否高,技术是否清晰和优雅,网上帮助文件是否翔实,以及技术社区是否活跃。 --------------------编程问答-------------------- 我身边搞java的经理比我工资还差很多。
工资高底和哪个语言关系不是很大。 --------------------编程问答-------------------- 作为一个程序猿(自称自己是软件工程师的就别往自己贴金了, 搞清楚自己的能力和工程师的名词概念)。
不是你学好一门或者多门语言就完了,对于互联网的趋势发展和理解思想至少也要有自己的观点。同时,一个简简单单的Net程序员 又知道有多少Net相关技术吗?你能用不同的技术去输出“Hello world!”吗?


还有一个提醒楼主。中国根本没有北大青鸟发的软件工程师这个职称。那个是绝忽悠人的。
楼主可以网上查查程序员的考试试题。 --------------------编程问答-------------------- Java:开源的比较多,但平台免费,
.Net:开源比较少,但是对於开源的框架来说,Java有的.NET都有(就算没有,也可也写的。我相信:java能做到的.NET绝对能做到.相反:.NET能做到的我估计Java要绕个大湾才做的到了哦),只是看你用不用了。.NET平台基本上都要收费
Java的语言没有C#的更新快。

.NET:不要局限於拖控件编程,做得好的系统都需要从底层自己架构了。

软件:不在於语言,关键是思想。如果你懂得设计思想,你可以做项目架构叫别人实现就是。
但是,不是谁一来就懂得的。 --------------------编程问答-------------------- 建议java,因为.net更新的太快,跟不上节奏就会落伍,就看你所在的单位能不能跟上潮流了,不过java需要做的配置工作,插件支持以及各种框架的使用都要自己来弄,不像.net都为你做好了,只需你打开visual studio,学会了java再看.net会简单一些,他们的语法以及类库基本上是相同的
--------------------编程问答-------------------- 当你出来工作的时候就会发现,java、C#都TMD只是编程生涯中的一个小角色,还有一大堆东西等着你学习,光学个java、C#还不行神马也干不了 --------------------编程问答--------------------
引用 28 楼 flyforfei 的回复:
1、目前JAVA跨平台做的表较好,因此非Win系统上JAVA很流行,C#只能在WIN上使用,实际上,JAVA在Windows编程份额很少;
2、JAVA本来的目的是用于家电编程的,因此,库体积比较小巧,相对于庞大的.net更是如此;
3、Android的兴起,带动了JAVA的进一步流行,因为Android编程是基于JAVA的,但是业界认为Android的优势正在慢慢丧失,未来发展可能很缓慢,……



尼玛 你是程序员么·?~· JAVA跨平台比.net好?   卧槽 我没笑你· --------------------编程问答--------------------
引用 36 楼 mlg1991 的回复:
我也是北大青鸟毕业的学员,我个人认为学习java可能前景会好一点,但是java对于就业有难度,java的门槛比较高,刚毕业的学员不好找工作


尼玛 你特码好好学习了么·?· 自己能力要是可以,哪不要你呢?  先从自己身上找问题,青鸟怎么了~?老师上课也教了, 你自己学不好,不要怪学校。 我认识的从青鸟出来的大神还是很多的。不要从开发语言上找问题。
LZ:建议.net 难度比JAVA大· --------------------编程问答--------------------
引用 26 楼 woaicplusplus 的回复:
怎么说呢 看看这篇文章吧  也许对你有帮助 !!!http://blog.csdn.net/woaicplusplus/arti……


这个妥妥儿的不用看……,看了你会误入歧途。 --------------------编程问答--------------------
引用 48 楼 gaonan_tecs 的回复:
卧槽 我没笑你·
卧槽 我没笑你· --------------------编程问答-------------------- 越是硬件亲和的语言越不容易移植,跨平台性也越操蛋。
Mono也没想象中的好。 --------------------编程问答--------------------
引用 51 楼 sunzongbao2007 的回复:
引用 48 楼 gaonan_tecs 的回复:
卧槽 我没笑你·
卧槽 我没笑你·


笑你妹么~?·  您还觉得您说的对麽?
--------------------编程问答-------------------- Java语法比C#简单一倍

不过说实话Java和C#会一个就等于都会了 --------------------编程问答-------------------- 我觉得吧开始先学习C++的比较好! 只说入门,好的基础才能走得更远。(不知道以前听那位老师说过。NET不开源所以你没法在这一块走太远)
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
……
--------------------编程问答--------------------
引用 54 楼 woncomp 的回复:
Java语法比C#简单一倍

不过说实话Java和C#会一个就等于都会了


比较语法没有任何意义,拿事实说话,C#的开发效率要高于java的,这才是重点 --------------------编程问答--------------------
引用 41 楼 sp1234 的回复:
java是哪一你年正式发布的?.net是哪一年正式发布的?这个是基本的区别。

其次,许多开源软件采取先java,然后.net的开发方法。因为这些东西大多都是在java集市上综合了一大堆烂东西然后去粗取精把别人的东西弄来改一改,慢慢时髦起来的。等一个开源软件终于在业余开发人员心目中变得时髦起来,自然是所有的主流平台都要去适配。

            是的,你说的很对。可惜的是中国的公司95%以上是用盗版软件的,所以用Java开发的大把大把,Java程序员也比.Net的多,妈的我一个.Net的老程序员都被逼时不时用Java,就是因为Java开发工具号称免费,其实公司用了很多破解版的Java开发工具。 说实在的Java开发工具比.Net的IDE差远了。还有Java可以部署在Linux系统上,而linux有很多免费的版本用。叫中国的公司花钱买操作系统真的是为难,给客户的Windows操作系统客户不肯买,说已经算在项目费用里了,报价的时候又没这一项,公司就给用户装盗版系统,只有很少一部分客户愿意接受操作系统的报价。
我们公司给电力系统的方案 经常是 java + mysql + linux系统。
          我个人认为最根本的原因是中国人不愿意花钱买软件,悲惨的我们是中国程序员,所以在中国肯定是java开发占上风。
          从我接触的Java程序员很多水平很一般,就知道会用某个框架,然后牛逼的不得了,而他们非常心虚他们其中的一些人没事就在网上骂.NET及.Net程序员 --------------------编程问答--------------------
引用 45 楼 anzhiqiang_touzi 的回复:
Java:开源的比较多,但平台免费,
.Net:开源比较少,但是对於开源的框架来说,Java有的.NET都有(就算没有,也可也写的。我相信:java能做到的.NET绝对能做到.相反:.NET能做到的我估计Java要绕个大湾才做的到了哦),只是看你用不用了。.NET平台基本上都要收费
Java的语言没有C#的更新快。

.NET:不要局限於拖控件编程,做得好的系统都需要从底层自己架构了。
……


   我相信:java能做到的.NET绝对能做到.相反:.NET能做到的我估计Java要绕个大湾才做的到了哦
我看Java的可能就是做不到。 --------------------编程问答-------------------- 没啥可比滴,他们根本就是同一个类型的东西,java比net早生了10年。也就如此而已。如果反过来net比java早生10年,效果也是一样。

也就是说从现在来看,net大概类似27岁的人,而java大概就35岁的样子。 --------------------编程问答-------------------- 有区别,就是语法上C#比JAVA复杂。
JAVA工资普遍偏高。
讨论这些,不如全部投入学习。

其他的都不重要。 --------------------编程问答-------------------- 我刚开始是做C#的,中间做过一段时间JAVA,后来又专注C#。个人觉得,JAVA开发的经历对我后来的C#开发是很有帮助的。以前做C#,只是知道用现成的方法,没有面向对象的概念,也不考滤设计模式或架构。JAVA有很多开源框架,有些是很优秀的,它的思想是值得你学习的。
至于工资,我现在的工资比做JAVA的同事高出一截。所以工资跟语言无关,关键还是要看自己的修为。 --------------------编程问答-------------------- 这东西看自己了,学什么都一样,都是语言 --------------------编程问答-------------------- 要想挣钱的话,.NET和JAVA都别学了,直接做销售吧。以你现在的心态和目的,学啥都学不好的。
不过从技术将,JAVA和.NET就像钢笔和签字笔,都能写字,玩的牛的也都能那它画画。 --------------------编程问答--------------------     学java吧,java跨平台,这样你可以接触linux这样的系统。为什么说接触linux这样的系统重要呢,因为很多大的企业应用或者高访问量的互联网网站一般在小型机或者更牛的,这类机子一般不装windows的。就算是部署在pc上,这类应用也很少部署在windows上。这里说的是客观事实,并不是说windows下.NET环境就写不出这样的系统,但是毕竟太少了,不利于技术的发展,容易出现技术瓶颈。
    java/.net一般用来做web应用,小的web应用可以说毫无技术含量,一年或者2年的工作积累你就到了瓶颈期,这时你需要接触大的系统,像淘宝,新浪微博,豆瓣,京东(.net,明显存在性能瓶颈)等,这就需要靠你的学历,soft skill还有技术实力去争取,到了这里你会发现,你关注的不是语言级别的,而是一个问题的解决方案。比如海量数据如何处理,库存的高可靠性跟访问速度关系的处理,高访问量怎么处理等等一些列问题。搞通了这些问题,相信你已经是大牛了,做个架构师或者技术咨询,优化师比写程序不强多了。
    说了这么多,实际上就说明了一个问题,java比.net更容易接触到大系统,有利于技术发展,语言上的谁好谁坏根本不用管他。
 
    对于转管理,转市场业务的不实用。 --------------------编程问答-------------------- 目前一些大的公司,招聘java的多,中小公司招聘.net的多,看lz想去什么样的公司了。 --------------------编程问答-------------------- 我也是新手。我觉得只掌握一门语言是不够的,但是要有一门是自己最精通的语言。取其中精华,和别的语言比较着学。寻找不同点和共同点,要触类旁通。java最大的优势,我现在觉得也就是跨平台。如果ms敢开源的话,那要比java好太多。 --------------------编程问答-------------------- 又湿了 --------------------编程问答-------------------- JAVA有前途和钱途。
.NET有前途不一定有钱途。

就功能来看都差不多了。没有啥区别。 --------------------编程问答-------------------- 自己没好好学吧,哈哈 现在怪人家教的不好,我也北大青鸟毕业的,怎么不觉得,我平时晚上回来还自己学习java以及安卓开发。
引用 5 楼 a82344626 的回复:
我劝你还是读完这第一学期就走!
一边学.NET 一边学JAVA学不好 的!
先学完一门有时间再去学另一门!
我给他们忽悠进去读过第一学期!
和我一起进去的!
他们读完Y2的都还要问我技术!
所以他们教的也没什么技术在里面!
还是要靠自己学!
--------------------编程问答-------------------- 使用.NET框架的时候,发现该平台存在的几个比较大的问题如下: 

    1、只支持一个平台。无论微软怎么把它夸的天花乱坠,对企业来说,只支持单平台都是一个很大的限制,已经不能满足与现在的实际情况。即使你的公司的所有应用程序目前都是运行在Windows的.NET平台上,并且运行的非常好,但是一旦出现合并或收购等情况,就有可能让你面临跨平台的需求。 

    2、这是一个很少需要思考的架构,即使业界经验已经显示.NET可以非常好的运行大内容的应用程序,通常情况下,.NET的体系架构思想似乎依然集中在为小型的电子商务应用服务上,例如购物车之类的应用。 

.NET平台的一些优势: 

    1、同样是单平台,在单平台上工作使得一切都变得那么简单; 

    2、专注于开发者,让开发者真正感到高兴的一件事就是开发者会感觉到所有的事情都是围绕他服务的。而其他J2EE的API,例如EJB、JMS、JMX等等,似乎都是为大型J2EE厂商设计的,例如IBM、HP和SUN等。在.NET中,微软给了开发者很大的自由空间让其做出自己的选择,.NET的架构思想就是以开发者为中心,实际上,微软想让开发者感觉使用.NET就是使用VB那样简单。(也许从某些方面来说,有的人会说这种“傻瓜型”编程方式是一种倒退)。 

    3、简化的部署方式,让你可以很轻松的把CS架构的应用迁移到企业开发模型。假如你的公司的大多数应用都是用VB或其他类似的CS架构技术开发的,你会发现迁移到.NET平台非常简单。

Java 是一种跨平台,适合于分布式计算环境的面向对象编程语言。 
具体来说,它具有如下特性: 简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高 性能、多线程、动态性等。 
 1.面向对象 面向对象其实是现实世界模型的自然延伸。 现实世界中任何实体都可以看作 是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某 类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过 程为中心以算法为驱动的话, 面向对象的编程语言则是以对象为中心以消息为驱 动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为: 程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java 也不 例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对 象的数据, 行为表示对象的方法 (其作用是处理数据或同外界交互) 所谓封装, 。 就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对 象是支持封装的手段,是封装的基本单位。Java 语言的封装性较强,因为 Java 无全程变量, 无主函数, Java 中绝大部分成员是对象, 在 只有简单的数字类型、 字符类型和布尔类型除外。而对于这些类型,Java 也提供了相应的对象类型以 便与其他对象交互操作。 多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实 现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整 型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同 的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。 运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由 于考虑到它会使程序变得难以理解,所以 Java 最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很 多实体都有继承的含义。 例如, 若把汽车看成一个实体, 它可以分成多个子实体, 如: 卡车、 公共汽车等。 这些子实体都具有汽车的特性, 因此, 汽车是它们的“父 亲”, 而这些子实体则是汽车的“孩子”。 Java 提供给用户一系列类 (class) , Java 的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象 编程语言不同,Java 只支持单一继承。 24平台无关性 Java 是平台无关的语言是指用 Java 写的应用程序不用修改就可在不同的软 硬件平台上运行。平台无关有两种:源代码级和目标代码级。C 和 C++具有一定 程度的源代码级平台无关,表明用 C 或 C++写的应用程序不用修改只需重新编译 就可以在不同平台上运行。 Java 主要靠 Java 虚拟机(JVM)在目标码级实现平台无关性。JVM 是一种抽 象机器, 它附着在具体操作系统之上, 本身具有一套虚机器指令, 并有自己的栈、 寄存器组等。但 JVM 通常是在软件上而不是在硬件上实现。(目前,SUN 系统公 司已经设计实现了 Java 芯片,主要使用在网络计算机 NC 上。 另外, Java 芯片的出现也会使 Java 更容易嵌入到家用电器中。 JVM 是 Java ) 平台无关的基础,在 JVM 上,有一个 Java 解释器用来解释 Java 编译器编译后的 程序。Java 编程人员在编写完软件后,通过 Java 编译器将 Java 源程序编译为 JVM 的字节代码。 任何一台机器只要配备了 Java 解释器, 就可以运行这个程序, 而不管这种字节码是在何种平台上生成的。另外,Java 采用的是基于 IEEE 标准 的数据类型。通过 JVM 保证数据类型的一致性,也确保了 Java 的平台无关性。 Java 的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事 情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品 的开发。其次 Java 的平台无关性正好迎合了“网络计算机”思想。如果大量常 用的应用软件(如字处理软件等)都用 Java 重新编写,并且放在某个 Internet 服务器上,那么具有 NC 的用户将不需要占用大量空间安装软件,他们只需要一 个 Java 解释器, 每当需要使用某种应用软件时, 下载该软件的字节代码即可, 运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式 构筑自己的企业信息系统。 34分布式 分布式包括数据分布和操作分布。 数据分布是指数据可以分散在网络的不同 主机上,操作分布是指把一个计算分散在不同主机上处理。 Java 支持 WWW 客户机/服务器计算模式,因此,它支持这两种分布性。对于 前者,Java 提供了一个叫作 URL 的对象,利用这个对象,你可以打开并访问具 有相同 URL 地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java 的 applet 小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高 系统执行效率。 Java 提供了一整套网络类库,开发人员可以利用类库进行网络程序设计, 方便得实现 Java 的分布式特性。 44可靠性和安全性 Java 最初设计目的是应用于电子类消费产品, 因此要求较高的可靠性。 Java 虽然源于 C++, 但它消除了许多 C++不可靠因素, 可以防止许多编程错误。 首先, Java 是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调 用错误,保证程序更加可靠;其次,Java 不支持指针,这杜绝了内存的非法访 问;第三,Java 的自动单元收集防止了内存丢失等动态内存分配导致的问题; 第四, Java 解释器运行时实施检查, 可以发现数组和字符串访问的越界, 最后, Java 提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可 以简化错误处理任务便于恢复。 由于 Java 主要用于网络应用程序开发,因此对安全性有较高的要求。如果 没有安全保证,用户从网络下载程序执行就非常危险。Java 通过自己的安全机 制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当 Java 字节码进 入解释器时,首先必须经过字节码校验器的检查,然后,Java 解释器将决定程 序中类的内存布局, 随后, 类装载器负责把来自网络的类装载到单独的内存区域, 避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的 类只能访问某些文件系统。 上述几种机制结合起来,使得 Java 成为安全的编程语言。 54多线程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的 可并发执行的单位。 C 和 C++采用单线程体系结构,而 Java 却提供了多线程支持。 Java 在两方面支持多线程。一方面,Java 环境本身就是多线程的。若干个 系统线程运行负责必要的无用单元回收, 系统维护等系统级操作; 另一方面, Java 语言内置多线程控制,可以大大简化多线程应用程序开发。Java 提供了一个类 Thread,由它负责启动运行,终止线程,并可检查线程状态。Java 的线程还包 括一组同步原语。这些原语负责对线程实行并发控制。利用 Java 的多线程编程 接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是, Java 的多线程支持在一定程度上受运行时支持平台的限制。 例如, 如果操作系统本身不支持多线程,Java 的多线程特性可能就表现不出来。 

 

--------------------编程问答--------------------
引用 48 楼 gaonan_tecs 的回复:
[Quote=引用 28 楼 flyforfei 的回复:]

1、目前JAVA跨平台做的表较好,因此非Win系统上JAVA很流行,C#只能在WIN上使用,实际上,JAVA在Windows编程份额很少;
2、JAVA本来的目的是用于家电编程的,因此,库体积比较小巧,相对于庞大的.net更是如此;
3、Android的兴起,带动了JAVA的进一步流行,因为Android编程是基于JAVA的,但是业界认为Android的优势正在慢慢丧失,未来发展可能很缓慢,……



尼玛 你是程序员么·?~· JAVA跨平台比.net好?   卧槽 我没笑你·

没有那个公司会去挖自己的墙角,所以微软的技术搞垮平台必定只是一个噱头,微软不可能有动力去把它做得更好。JAVA跨平台就是比.net好,你不要听微软的吹嘘 --------------------编程问答-------------------- 擦。。。千年大姨妈啊,流血不止,绝对逆天。。。 --------------------编程问答-------------------- 相比.NET,JAVA真正的优势就2个,
1JAVA所搭的Linux免费,但这却不是JAVA本身的优势,net framework也免费;
2开源上JAVA有点优势,主要就是JAVA的JVM开源,而.NET下却开源了精简版本的CLR,其他的框架JAVA开源的.NET基本都已经开源了,包含.NET framework library。

相比JAVA,.NET的优势,
1 语言特性方面,JAVA明显落后于C#。
2 更加好上手,VS很强很好用,但是功能跟性能却不比JAVA差。

最后,
跨平台不是JAVA的优势,运行在Windows上的JAVA程序占有率应该很底吧,当然.NET也有MONO。
当然框架方面JAVA应该略有优势,基本上JAVA有的框架,.NET都有。

还有,我就搞不懂你们,用啥语言,用啥平台你们都能用出优越感来???攻击来攻击去,闲得蛋疼???
JAVA,.NET你们发明的?

--------------------编程问答--------------------
引用 73 楼 SQL_Beginner 的回复:
相比.NET,JAVA真正的优势就2个,
1JAVA所搭的Linux免费,但这却不是JAVA本身的优势,net framework也免费;
2开源上JAVA有点优势,主要就是JAVA的JVM开源,而.NET下却开源了精简版本的CLR,其他的框架JAVA开源的.NET基本都已经开源了,包含.NET framework library。

相比JAVA,.NET的优势,
1 语言特性方面,JAVA明显落后于C#。
2 更加好上手,VS很强很好用,但是功能跟性能却不比JAVA差。

最后,
跨平台不是JAVA的优势,运行在Windows上的JAVA程序占有率应该很底吧,当然.NET也有MONO。
当然框架方面JAVA应该略有优势,基本上JAVA有的框架,.NET都有。

还有,我就搞不懂你们,用啥语言,用啥平台你们都能用出优越感来???攻击来攻击去,闲得蛋疼???
JAVA,.NET你们发明的?


火气好大。。。。 --------------------编程问答-------------------- 此類貼,類似先有蛋還是先有雞之說,永遠沒有盡頭,不過 sun 公司已經被 Oracle 收購了, microsoft 還是獨立的 --------------------编程问答-------------------- 我没在学校学习过C#,java都是在工作中发现需要,自学的。学校只教过VB,C++。工作少部分用java,大多时间用.net。收入嘛,比一般人高点儿。 --------------------编程问答-------------------- 平台,语言只是工具,关键是用技术解决问题的能力,能力足够收入就高,反之就低。 --------------------编程问答-------------------- 这个吧  程序本质上是一样的  不管什么语言  好用就行 
但是我还是吐槽下java  总是拿开源说事   谁能告诉我  开源的代码  你看懂了几行?  如果你到了弄开源的级别了  也不会纠结工资的问题了吧   所以  谁都没错  洗洗睡了 --------------------编程问答-------------------- 这不明摆着让C#和JAVA互喷吗? --------------------编程问答-------------------- 我建议你退学Over
培训机构很垃圾的 你什么学历 初中就赶紧退学 --------------------编程问答-------------------- 有区别?

笑死 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- JavaNet都一样看你那个能说 你能把那个说的很NB 你就学那个
另外如果你初中毕业或者高中毕业 尽早退学(我说这个没用) --------------------编程问答-------------------- 菜鸟要想成为真正的程序员,任何一门语言的门槛都很高。 --------------------编程问答-------------------- 菜鸟要想成为真正的程序员,任何一门语言的门槛都是一样高的。 --------------------编程问答--------------------
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
弱语言javascript 或者 美工的工资你又知道是多少么?这样的弱语言和设计类的工资你去打听打听动态语言开发的人汗颜。
问些问题让人没嘴说,不知道脑子想过没有。

第二个上面很多人说几个都学傻逼了。我还告诉你,在中国,你纯asp.Net开发谁敢要你,都凭良心说。
从我毕业那天开始J2EE搞过,后来被公司逼搞asp,妈的后来又Flex,再后来asp.Net。现在window phone。
我不承认我的技术很好,至少我觉得掌握多门语言的入门有助于更快的接触新的开发技术,和理解编程的思想。

看次看到这样的问题已经很无语了,看到很多回复更无语。
想工资高学什么还不简单,嵌入式,C ,你有能力么?
谁又说Net很简单的,是的,你拖控件是很简单。你他吗就拖一辈子啊。Net别以为自己会几个控件,几个数据绑定就牛逼了,再怎么说也是托管。牛逼就把FW给搞透了。

作为一个程序猿(自称自己是软件工程师的就别往自己贴金了, 搞清楚自己的能力和工程师的名词概念)。
不是你学好一门或者多门语言就完了,对于互联网的趋势发展和理解思想至少也要有自己的观点。同时,一个简简单单的Net程序员 又知道有多少Net相关技术吗?你能用不同的技术去输出“Hello world!”吗?

说的很简单就是,作为一个新人,不管是为人处事,还是生活习惯,办公室政治,业务,技术。别去想对自己的用处有多大,先学再说。总对自己是有用处的。多学不是坏事。当然,学什么是站在自己理性的角度去分析,例如你会asp.Net,然后再回过头去没事整天捣鼓个asp那我也只能无语。

所言甚是,感触良多! --------------------编程问答--------------------
引用 15 楼 fengyarongaa 的回复:
--------------------------------------------------分割线----------------------------------------

以上的百分之90%的言论让我无语

Net比Java的工资低是谁说的。至少在我的圈子里面绝大多数Net的工资高于Java。
任何一门编程语言都是人学的,是人做的,没有工资的高低贵贱,只有技术的深浅
弱语言javascript 或者 美工的工资你又知道是多少么?这样的弱语言和设计类的工资你去打听打听动态语言开发的人汗颜。
问些问题让人没嘴说,不知道脑子想过没有。

第二个上面很多人说几个都学傻逼了。我还告诉你,在中国,你纯asp.Net开发谁敢要你,都凭良心说。
从我毕业那天开始J2EE搞过,后来被公司逼搞asp,妈的后来又Flex,再后来asp.Net。现在window phone。
我不承认我的技术很好,至少我觉得掌握多门语言的入门有助于更快的接触新的开发技术,和理解编程的思想。

看次看到这样的问题已经很无语了,看到很多回复更无语。
想工资高学什么还不简单,嵌入式,C ,你有能力么?
谁又说Net很简单的,是的,你拖控件是很简单。你他吗就拖一辈子啊。Net别以为自己会几个控件,几个数据绑定就牛逼了,再怎么说也是托管。牛逼就把FW给搞透了。

作为一个程序猿(自称自己是软件工程师的就别往自己贴金了, 搞清楚自己的能力和工程师的名词概念)。
不是你学好一门或者多门语言就完了,对于互联网的趋势发展和理解思想至少也要有自己的观点。同时,一个简简单单的Net程序员 又知道有多少Net相关技术吗?你能用不同的技术去输出“Hello world!”吗?

说的很简单就是,作为一个新人,不管是为人处事,还是生活习惯,办公室政治,业务,技术。别去想对自己的用处有多大,先学再说。总对自己是有用处的。多学不是坏事。当然,学什么是站在自己理性的角度去分析,例如你会asp.Net,然后再回过头去没事整天捣鼓个asp那我也只能无语。

大牛的说法一定要顶。。
补充:.NET技术 ,  .NET技术前瞻
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,