`
dsotbs936
  • 浏览: 38023 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
文章分类
社区版块
存档分类
最新评论

C++、Java/C#之比较

阅读更多

一、关于跨平台问题。
    这点我未深入研空,只谈谈我的感觉,我感觉Java/C#的跨平台实际上是个比较巧妙的骗局。因为它们的跨平台性还是要某个厂家或厂家联盟的支持,这种平台不过是通过在不同的“硬平台”基础之上设置一个接口统一的“软平台”,这梓表面上是跨越了“硬平台”,实际“软平台”的限制仍是无法跨越的;或若厂家未生产某一“硬平台”的“软平台”那这个“硬平台”你还上跨不上去的。真正的跨平台技术是互联上的“htm/xml”,这是目前任何厂家无法据为己有而又不得不遵守的标准。
    二、关于指针问题。
C#/Java 借鉴了C++,但去掉了C++的双刃剑——指针(当然不是完全去掉,在某种形式下还是可以用的,或者在使用时受到了比较大的限制)。于是关于C#/Java、C++的优劣问题往往围绕着指针展开,“用C#/Java,还是用C++”对于许多C/C++程序员来说,就象哈姆雷特的“是生存,还是死亡”让人踌躇徘徊。其实指针的使用与否,其本质就是内存的分配、访问与释放权由谁掌握的问题。
使用指针,由程序员根据需要分配、访问内存,程序运行时动作明确直接没有额外的处理步骤,程序的执行效率就高,但若程序员忘了释放内存或释放内存的策略不够周全,就会产生不可预知的问题,而且这种问题往往是比较严重。
不使用指针,并不意味着内存的分配、访问与释放不须处理,只不过是这些工作由编译器生成的通用“内存管理器”完成了,因此程序执行时,必须增加额外的内存管理动作,所以执行效率相对上种方式而言有所下降。由于“内存管理器”的运作是基于业内专业人士制定的比较完善内存管理机制,因而安全程度较高。但实际上,由于内存的分配、访问、使用、释放的情况比较复杂,这种安全性并不是100%的。也就是说安全的保证是由“另外的人”负责的,这种情况下,一旦出现问题,你无法查清问题所在,或即使你查清问题所在,也无法纠正。
好了,关于指针,一边是100%的效率、60%的安全性、100%的自由,一边是60%的效率、99%的安全性、100%枷锁,你选择吧。我想对于“高手”而言,自信也罢、固执也罢,选择指针是他们骨子里自由与冒险精神的决定。
“是生,是死——这是一个值得考虑的问题。”——但不要丧失了行动的能力。
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/c++/cppsl/2008520/117228.html

分享到:
评论

相关推荐

    C++/java/C#语言的AES加密解密

    标题中的"C++/java/C#语言的AES加密解密"涉及到的是三种常用编程语言——C++、Java和C#在实现AES(Advanced Encryption Standard,高级加密标准)算法上的应用。AES是一种广泛使用的对称加密算法,它在信息安全领域...

    c/c++/java/c#程序员必备手册 api

    c/c++/java/c#程序员必备手册 api

    JAVA调用C++/C#的DLL

    在IT行业中,跨语言通信是一项常见的需求,尤其是在Java与C++或C#之间。标题"JAVA调用C++/C#的DLL"涉及到的技术点主要集中在Java ...无论是为了利用现有C++/C#库,还是优化性能,熟悉JNI都是Java开发者必备的技能之一。

    C++/Java/C#/SQL 面试题 答案

    在IT领域,面试是检验求职者技能和知识的关键环节,特别是在编程语言如C++、Java、C#和数据库技术如SQL方面。这份压缩包文件包含了这些领域的面试题及答案,对于准备面试或自我提升有着极大的价值。以下是这些关键...

    c++ 转换 java c# 转换 java c++ 转换 c#

    C#是一种微软开发的面向对象的语言,它与Java有许多相似之处,但也有一些不同。例如,C#有属性(properties),而Java使用getter和setter方法;C#有接口(interfaces)和抽象类(abstract classes),Java只有接口。...

    Java to C# Converter

    Java to C# Converter 转换的效果很好,我实在是没有分了.收1分吧. Demo版的只能转换 试用演示版的Java文件夹转换到C#转换器2000行的代码片段转换到200行一次。 官方网站 ...有需要其他转换器的可以给我留言,我可以...

    Notepad++ 代码格式化插件(C/C++/C#/Java)

    找了很久; 使用方法: 将.dll(一般是unicode版本)放入(Notepad++安装位置)/plugins下面,重启就行;...后缀名要改为C/C++/C#/Java这几种语言格式的后缀才能实现自动格式化效果,如果是.txt就会有提示; Enjoy it!

    海康威视sdk_java/c#/mfc_demo实例

    海康威视SDK是针对其安防产品(如摄像头、NVR等)进行二次开发的工具包,它提供了Java、C#、MFC等多种编程语言的API接口,方便开发者集成到自己的应用程序中,实现对海康威视设备的远程控制、视频流处理、录像回放等...

    代码管家代码片段记录管理保存工具软件,支持vb/c++/c#/php/java/python等语法高亮

    熟话说,不动笔墨不读书,尤其是学习编程,写过的东西一定要...语法高亮:支持目前主流编程语言,如java、python、c#、php、vb、c、c++等等编程语言语法高亮,同时支持深色主题和浅色主题 分类管理:支持代码分类管理

    Java/c# 代码行统计器

    "Java/c# 代码行统计器"是这样一款工具,它能够帮助开发者统计C++、C#、Delphi以及Java等主流编程语言的源代码行数。这些统计结果对于项目管理、估算开发时间、分析代码复杂性以及对比不同开发者的生产力都有很大的...

    c,c++,python源代码生成流程图

    免费软件,可自动分析C/C++/Java/Python/C#/Objective-C等项目的源代码并生成流程图和函数调用关系图。生成的流程图可以和源代码互相定位,有助于分析源代码,是阅读其他人写的代码或者自己很久前写的代码的利器。

    AStyle C/C++/C#/Java源代码格式化 1.0

    基于最新版的AStyle(最好的源代码格式化)制作的源代码格式化工具,支持C、C++、C#、Java。使用方便,操作简单,界面还可以选择皮肤,单文件也能执行,支持源代码批量格式化和多级目录格式化,也可以忽略扩展名,...

    c++ AES 兼容 JAVA AES CBC PKCS5Padding C#

    公司有用C#写的AES代码 又有用JAVA AES CBC PKCS5Padding 加密的 但对于由JAVA AES CBC PKCS5Padding 加密的数据C++解密的资料极为稀缺 故本人找到了一些资源 同时改写了一些填充方式 使得与JAVA C#兼容 VS2010 测试...

    C++如何调用C# java

    C++调用C#、Java方法详解 在这篇文章中,我们将探讨如何使用C++调用C#和Java语言的方法。虽然C++是一种非常强大的语言,但是在调用其他语言方面的介绍却很少见。通过这篇文章,我们将展示如何使用C++调用C#和Java...

    Tangible Software Solutions 源代码转换可在 VB.NET、C#、Java、C++和Python之间

    Tangible Software Solutions 是功能齐全的源代码转换软件,可在 VB.NET、C#、Java、C++和Python之间,使用简单,功能丰富,灵活的进行选择和操作,界面友好。 C# to C++ 转换 C# to Java 转换 C# to VB 转换 C++ ...

    swig--在java、C#中调用c++写的DLL(以vs2012配置为例)

    标题中的“swig”是指Software Interface Generator,它是一个开源工具,用于将C和C++代码与多种编程语言(如Java和C#)互操作。在本案例中,我们将探讨如何利用SWIG在Java和C#中调用由C++编写的动态链接库(DLL)。VS...

    从C++、Java到C#

    通过对C++、Java和C#这三种主流编程语言的比较,我们可以看到每种语言都有其独特的优势和适用场景。C++因其高效的性能而在系统级编程和游戏开发中占据一席之地;Java凭借其跨平台特性和丰富的类库成为企业级应用的...

    C++,C#,Java,Python实现简单的图形用户界面的区别和方法

    ### C++、C#、Java、Python 实现简单图形用户界面(GUI)的区别与方法 #### C++ 在C++中创建图形用户界面(GUI),主要依赖于Microsoft Foundation Classes(MFC)。MFC作为一套用于Windows应用程序开发的类库,...

    C++/JAVA/C#子类调用父类函数情况总结

    C++、Java和C#都支持面向对象编程,允许子类调用父类的函数。以下是对这些语言中子类调用父类函数情况的详细总结: **C++** 在C++中,子类可以通过以下方式调用父类的函数和构造函数: 1. **构造函数调用**: - ...

Global site tag (gtag.js) - Google Analytics