C#学Java:东施效颦

由C#快速入门Java 从头学习Java: 我在研究生期间采用Visual C#完成过一些项目,算是对Visual C#有了一定了解。现在(2015年初)看到Android应用开发还是有一定的发展空间,就准备自学Android开发。虽然我有一定的C#基础,并且确实也有人采用C#语言进行Android开发,但是基于以下考虑,我还是决定从头学习Java: 一方面,Java作为Android主流开发语言,比C#语言有更多的 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> C#和Java都是不错的语言。它们用类似的方式达到了类似的目标,而且C#在Java的基础上增加了一些更“优美”的语法,比如foreach关键字以及用起来更加舒服的extends/implements结构。令人遗憾的是,这些改进对语言的总体影响却因某些方面的退化而大打折扣。本文要比较这两种语言,同时尽量避免掉到JVM和CLR的泥沼中而不能自拔。 Java:对C 进行彻底去芜存菁 比较Java和C#时,不可避免地会注意到两者的相似性,这部分是缘于两者共同的老祖宗:C和C 。但是,当James Gosling率领他的团队开发Java时,不仅从C 那里借鉴了大量功能,而且更重要的是,他们摒弃了C 中容易出错和难以学习的特性。C#的设计者也像Java那样添加了大量C 特性,只是忘了移除C 的一些不好的特性。结果就是一种试图为任何人做任何事的语言,造成内部容易产生冲突,而且极度复杂。 令人恼火的语法缺陷 在流程控制和语法中最容易挑出错误。C#提供了goto命令,用于更改程序的执行点。但早在1968年由Edsger W. Dijkstra发表的“Go To语句有害论”一文中,计算机科学家便已齐声反对goto。goto造成代码难以调试,而且难以通过测试覆盖(test coverage)工具。 而且和一般看法不同的是,运算符重载具有同样的缺陷,而且它造成的错误更难以发现。如果' '依据操作数的类型而具有不同的含义,那么代码的运行就不再是透明的,会出现大量不可预料的副作用。 C#安全性更差 C#提供了一个简单的机制,可将部分代码标记为unsafe(不安全)。在这些不安全区域中,由Java和C#所提供的防止程序员直接改变内存位置以及使用指针算术的安全机制会暂时失效,代码的安全性将受到质疑。但是,在采用了垃圾回收机制的高级语言中,如果下降到内存地址一级上进行操作,不可避免地会妨碍内部的对象/内存隔离。就像在C和C 中已经臭名昭著的那样,这很容易引入错误,调试会变成一场噩梦,缓冲区溢出会再次泛滥,造成许多安全漏洞。 C#还允许简单地访问主机系统上的原生库。“与非.NET对象绑定”类似于Java原生接口(JNI)所提供的功能,只是前者更危险。JNI通过良好定义的接口,小心限制了Java代码和原生代码之间的交互。相反,.NET虽然大幅简化了对原生对象文件的调用,但开发者如果滥用这一功能,很容易就会破坏平台间的移植性。 SOAP集成 C#和.NET中的大多数组件都同SOAP Web服务紧密集成。SOAP是使用XML来指定参数和结果值,并发出远程过程调用的一项出色标准。但它并不是你惟一的选择。使用为Web服务设计的扩展库,Java开发者可轻松改变其Web服务的形式,可将其变成SOAP、XML-PRC或者其他尚未发明的任何东西。当然,C#开发者也能选择为非SOAP Web服务提供的外部库,但SOAP标准的紧密集成更像是一种限制,而非改进。 最令人担忧的是微软 C#最容易引起恐慌的或许就是它的所有者,即微软公司。微软曾做过为非Windows平台开放C#和.NET的演示,但那仅仅是一个演示。它为非Windows平台提供的CLR存在大量问题,bug一大堆。C#已通过了ECMA标准化过程,这一步是Sun至今不敢为Java迈出的。人们的担心来源于微软对自己的产品施加的专利保护。微软已申请了一个专利,它会禁止第三方的CLR,比如Mono项目。如果微软下定决定对免费C#和.NET社区进行制裁,就会不可避免地挥舞起金钱和法律的大棒,将所有开发者都赶回Win32平台,这显然会令人感到非常不快。 另一方面,Java语言不是一项ECMA标准,这或许是Sun公司最应该感到羞愧的一个地方。不过,它的实现没有专利的麻烦,而且无论它的虚拟机还是核心类库,都由第三方提供了开放源码和封闭源码这两种实现方式。C#表面看似乎是免费的,但其实不然。Java看起来是受到限制的,但却能合法地以免费形式实现。 最后,Java提供了更好的工具支持,即便是在考虑到集成开发环境(IDE)的情况下。Visual Studio .NET是一个不错的IDE。它是多年来许多人工作的结晶,提供了丰富的特性。但是,无论在稳定性、易用性还是提供的特性方面,Eclipse IDE(包括Java支持)都已超越了Visual Studio。IBM在Eclipse上投入了许多。Visual Age可以说是IBM的第一次尝试,目前已经放弃,但新一代的Eclipse足可傲视群伦。而且即使你坚持使用C#,那么一个好消息是,.NET版本的Eclipse目前正在开发中。 不算太坏,只是比不上Java 老实说,C#并没有什么特别的坏处。它的缺点不像Visual Basic那么明显,而且也不像C那样一定要让开发者去自寻烦恼。但是,C#并不能做比Java更多的事情,而且在某些领域显得更糟。如果要对这两种很大程度上相似的语言做出选择,请选择Java,它是一种更好的、经过更多实际检验的语言。
GRCNN抓取网络学习2【自制Jacquard数据集训练】 请先完成【机械臂视觉抓取从理论到实战】,这样有利于下面操作的理解!然后第二步是GRCNN抓取网络1【Jacquard数据集等效抓取集制作】,有了自己的数据集输入到GRCNN中是三种文件,接下来就是准备训练GRCNN网络啦!grasps.txtRGB.png本文帮大家根据自制Jacquard数据集训练GRCNN抓取网络,其中包含数据格式的对齐,列举了常见的几种训练方法,相信能坚持到这里的都应该试试顺利了吧!接下来会针对GRCNN调优,期待一下下吧,那就别宁色你的三连。 阅读详情

相关推荐

基于phpstudy搭建pikachu靶场

一、phpstudy下载安装配置 phpstudy介绍 简单介绍一下phpstudy,详细请参考百度解读。pikachu是基于PHP环境搭建的,需要数据库支持,所以装pikachu之前需要先安装它需要的环境,就像你养鱼需要给它提供水环境一样。安装phpstudy能满足pikachu的需求,所以先安装phpstudy。 phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是

ptxybird的博客 1万+

C#与java,谁在没落?

<br />说实话,原标题想写成:“浅论编程语言”,但是感觉很不好写,为了吸引眼球,名字改了下,虽说标题写的是c#与java,文中也以此两种语言为主,但是并不限于此两种语言。<br /> <br />先说说写此文章的原因。最近有空,上优快云较多,发现从Linus批c++开始,一直到后边其他人批C#,批Java,而且还从各种各样的角度去分析,感觉真是热闹,所以一直也想凑一脚,两周前写了一些没写完,后来也一直没补,一直到现在,看这个话题还是如此的热闹与迷人,所以,我也来凑一下热闹。后边有空了,把前边写的东西补

天高地远的专栏 8530

Autoware.universe部署03:与Carla(二进制版)联调

本文介绍了 Autoware.universe 与 Carla 二进制版的联调过程。Autoware.universe 是一个开源的自动驾驶软件平台,而 Carla 则是一个用于自动驾驶仿真的开源工具。将这两者联调起来可以在仿真环境中测试和验证 Autoware.universe 的功能和性能,为自动驾驶系统的开发和测试提供有力支持。

zardforever123的博客 7371

c# 两个list比较_Java与C# 简单异同

Java和C#都是编程的语言,它们是两个不同方向的两种语言相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态)区别:1.c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。2.c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写,它有四种写法如下:...

weixin_39882271的博客 643

微波传感器 - 从原理到实战,解锁非接触感知新维度

本文深入解析微波传感器的工作原理,重点阐述了其基于多普勒效应的非接触感知机制,并对比了红外、超声波等技术的优劣。通过树莓派Pico与RCWL-0516模块的实战案例,展示了如何构建区域入侵检测器,并探讨了微波传感器在智能家居、工业自动化及汽车电子等领域的广阔应用前景。

weixin_29306571的博客 225

工程测量不用愁,120个视频动画帮你忙,简单易学直观明了!

工程测量不用愁,120个视频动画帮你忙,简单易学直观明了!文末提供下载地址。 下载地址: 链接:https://pan.baidu.com/s/11S6XDq9Eaa3DG3VKRMBIPg

智慧空间实验室 1019

C、C++和C#的关系,以“把大象放进冰箱里”举例

最近得用unity做虚拟仿真相关的东西,当然,它的知名还是在游戏界,像王者荣耀就是使用 unity 开发的。 使用unity就要学习C#语言,我一直以为C#是C++的升级版本,因为C++是C的改进版,但是C#与前两者的关系就相当于Java和JavaScript,没半毛钱关系。 C语言 C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。 C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 并且它

geekape 1466

【温室气体】GOSAT 数据产品

【温室气体】GOSAT 数据产品

WW、forever的博客 238

c#和java相似_与C#的XmlDocument相似的Java实现

提问是否存在类似于C#的System.Xml.XmlDocument的Java实现?我目前正在尝试在Java中复制此C#代码片段.XmlDocument doc = new XmlDocument();doc.Load(new XmlTextReader(new StringReader(message)));XmlNamespaceManager nsmgr = new XmlNamespace...

weixin_36150766的博客 346

超简单五步实现VOS3000客户端呼入配置

1.查看SIP代理  在注册管理中查看自己线路注册的SIP代理IP地址,记录下来。 2.创建普通账户  创建一个呼入使用的普通账号,选择“计费费率”,根据自己情况选择费率,这里做测试就配置了免费的费率,如果费率不是免费,需要给这个普通账户充值。 3.新建对接网关 新建一个对接网关,点击该网关的“补充设置”,选择“网关类型”为静态IP,然后在IP地址栏填上刚才在注册管理里面记录的SIP代...

非著名运维的博客 1万+

Qt代码-软件商店

ui->statusBar->showMessage(QString("%1 已卸载").arg(app["name"].toString()));ui->statusBar->showMessage(QString("开始下载 %1...").arg(app["name"].toString()));QString("%1 已下载完成,是否立即安装?ui->statusBar->showMessage(QString("%1 下载完成").arg(app["name"].toString()));

寒寒豆豆软件公司的博客 112

这样学设计模式

源自:http://blog.youkuaiyun.com/yqj2065/article/details/39103857    GoF的[设计模式]是经典著作,有人看了好多遍仍然说没有看懂,许多人看懂了一些模式但不知道如何应用……下面抛砖引玉,讨论一下如何学习设计模式。①学习技巧学习设计模式时,有一些技巧能够帮助你快速理解设计模式。a)        使用较简单的面向对象的语言如Java、C#。GoF的[

秀才的专栏 2541

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 227

C++和C++程序员面临淘汰?

C++和C++程序员面临淘汰?  C/C++是十分古老的语言,C语言现在仍然广泛应用于系统开发和很多计算机标准组织的协议实现。C++在程序设计的历史上也有着不可磨灭的地位,由于它的抽象能力,使其在发展初期就以极快的速度占据了半壁江山,在系统,图形,网络,等很多领域成为主角。可以说其辉煌的历史也正在起到减缓其消亡速度的作用。  从世界范围的统计数据来看,C语言和Java的应用广泛度长期处于绝

老李 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

个人对VHDL和C++以及C#.NET的一些体会(完全个人感受,不对的地方请高手指正)

  其实从学到用VHDL,C PROGRAMMING,C++以及C#都有好几年了,个人也有一些比较肤浅的体会. 首先声明,本人是搞电路板子的,也做e

toby's fanatic zone 1450

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JAVA设计模式总结之23种设计模式

《五灯会元》卷十七中,有一则唐朝禅师青原惟信禅师的语录:“老僧三十年前未参禅时,见山是山,见水是水。及至后来亲见知识,有个入处,见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。” a)    仔细研究GoF的[设计模式],逐个学习其意图和结构,是一个抱着字典学习英语的方式。见山是山,见水是水,导致你可能在实际工作中生搬硬套、东施效颦。 b)    建议从简单的场景出

T748588330的博客 264

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

如何学习设计模式

GoF的[设计模式]是经典著作,有人看了好多遍仍然说没有看懂,许多人看懂了一些模式但不知道如何应用……这里,yqj2065抛砖引玉,讨论一下如何学习设计模式。 ①学习技巧 学习设计模式时,有一些技巧能够帮助你快速理解设计模式。 a)使用较简单的面向对象的语言如Java、C#。GoF的[设计模式]实质上是面向对象的设计模式。[GoF·1.1]中提到“程序设计语言的选择非常重要,它将影响人们理解问题的出发点”。从学习设计模式的角度看,Java和C#较C++更容易一些。比...

用键盘与世界交流 155

python 游戏引擎 cocos2d_Andengine游戏引擎(对比Cocos2D引擎)

哎,这也不明白?我来告诉你为什么。1、技术团队无优势:Cocos2D-Android版本与iPhone版本完全无关,无论作者还是团队都不同,所以iPhone版的技术优势和原有的iPhone社区支持对于Cocos2D-Android根本不复存在,可以这么说,他除了山寨个名字外,就和Cocos2D-iPhone半分关系都没 有了。2、iPhone的语法优势在Android中不复存在:众所周知,Coco...

weixin_42302142的博客 358

面向对象(OOP)的七大设计原则

这六大设计原则在设计模式时老是被提到 1.单一职责 一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一...

qq_34823218的博客 601

Andengine游戏引擎(对比Cocos2D引擎)

游戏引擎还有蛮多的额嘛 Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现 推荐Andengine 这款引擎不错!官方的例子多。 我们做了一些demo,并且开源了http://code.google.com/p/androidgames/ 共计三款: 钻...

weixin_30570101的博客 208

C#对Java

华山论剑:C#对Java(仙人掌工作室 2001年06月29日 17:01)C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢?  本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Ja

wildcatbb的专栏 1467

C/C++、JAVA、C#之间的关系和区别?

C/C++、JAVA、C#之间的关系和区别?

xiao.yu的博客 2万+
上一篇: 怎样成为优秀的软件模型设计者
下一篇: 学习用于异常处理的terminate()函数
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值