比较java和c#

    技术2025-01-20  47

    到目前为止,java和c#继续是争吵的,总有人说(java比c#好(反正两个都依赖虚拟机,没有它,两个都是废物))我觉得吧,这得看你的情况,目前市场上缺少c#的竞争力,所以c#还是有前途的,java称霸了这个市场(c#与java的市场)并且c#很少有人学它,所以 ----- 真的很缺

    这我来比较,你们认为啥就是啥

    程序比较

    **

    1.汇编程序

    ** 都是:预处理 c#: CLF -> 一个IL理解的二进制语言 java: jvm虚拟机(javac) -> 这个半编译,半解释的不用说了吧

    这看出来,两个都差不多

    2.执行

    c#: il文件 -> IL -> cup执行 java: 万能的jvm虚拟机

    java的执行效率(运行,非计算)比c#快一些

    3.占用内存

    c#: CUP需要执行环境内存分配(自动) java: jvm储存代码,执行环境(用户设置)

    这不好说,得看java设置的jvm分配参数,但总体,两个一样(都要储存代码到内存,c#分配看系统心情)

    4.计算

    这个得自己写程序比较,我认为如果除java的jvm代码汇编时的计算,两个差不多

    从安全性能 c#的安全性能还算较高,并与java一样,有自己的算法来节省内存,c#代码不太容易泄露

    跨平台

    c#目前可以跨平台(万能的mono)支持的有linux,windows,mac(微软专门给它开发了net框架),安卓(反正mono能运行的地方都可以跨平台)

    java本身跨平台

    实用性

    c#: 还有一些人认为c#适合小型企业?微软都哭晕在厕所了,现在c#到处可见(你访问的网页可能是c#,你玩的网页游戏可能是c#,Unity3D的开发语言是c#,甚至大型软件会用到c#,你信不信,制作的病毒也可以通过c#来免查杀(c#可以内部调用.net来执行汇编程序,悄无声息的执行,安全软件那它没办法)),c#在java之上结合c++和Vj++制作出来的所以有许多java没有的功能 java一个无意间创造的语言: java创造历史非常特别,java也有许多c#没有的功能,并且执行和功能还算比c#好,但是java—调用数据库(我的是SQL server)TM的还要下载JDBC的jar版本,c#net框架自带sql数据库调用,只要符合调用规则就可以嗲用(sql server mysql统统可以)(就是想说,java一些功能太缺少了,并且有些还不如c#快)

    代码逻辑/use

    c#; c#的代码非常像java,就是在java之上结合c++开发(微软开发它想要称霸编程界,只是差一点,就是推广和源码开放(所以说微软开发论坛上的c#,f#一搜一大堆)) c#并非完全取消了指针操控(可以加上unsafe玩),非托管调用(DLLimport)c/c++,汇编等只要符合调用条件的都可以 c#可以自定义运算符如何返回(如==&||±>= =<)new和override隐藏和重写(如果继承类与这个类下的成员有冲突必须指定方法,否则报错) c#映射反应射调用,可以实现通过位置调用dll(c#)通过反应射用string调用一个类的方法 c#GC大爷 有时候特别坑,如果你内存映射,如果长时间不用GC会把他clear掉 c#内存共享 自己看我以前出的文章 c#文档 特别方便,不许要看代码就可以知道这个是如何使用 特性 可以声明在任何时候(namespace在外需要前缀)用type获取 泛型 可以声明在类,接口,成员上任何时候 继承 直接:表示一切继承 有override(在继承类中的成员有virtual) 有new覆盖(任何时候) bash可以调用继承的类成员,也可以: bash同时执行 调用 DllImport可以调用符合条件的任何非托管语言(c,c++) 死循环保护(非while,for等操作语句) c#一旦检测到有死循环,会立刻跳出,引发错误(准确来说就是引发错误来终结它) 跨平台 通过mono,一个系统打工,全家mono共享,但效率有点… (我的世界电脑的PE版的编写语言是c#(java代码传c#通过工具非常方便))

    java: 在c++基础上用c开发的全新的语言,逻辑是自己开发(可能是他的推广力大,现在都是称霸状态) 接口,可以有public和private,c#8.0才允许 泛型,只能声明在类上 特性 用@表示,用于类或方法等 用Class<>获取 自定义 无法自定义运算符使用(所以用String.Equal()判断,c#直接==) 继承 用ex,mi继承 @Override重写(任何时候) 没有new方法 spur调用继承类成员 调用 只能通过c,在逐级调用 final你懂,c#有关键词代替final使用在class上 java完全托管,无指针操控 跨网络 java作为一个网络语言,他的值可以在网络服务器传递 死循环检测 java没有这个保护,死了就是死了 安全的跨平台语言 c#借助mono跨平台,但是有些功能还是在windows体现的好,mono垮了平台,emm(垮了平台,有些都不能用,但只是少部分,大多数这些用不到) 所以java跨平台非常安全,任何一个系统打工,全家共享 (安卓的语言是java语言)

    人数

    c#学的人少,有发展空间

    java市场不缺人,人数多

    <后续补充> { 2020-7-4 12:49 at 夸平台 to 语言 and 跨平台 to 方便 }

    Processed: 0.013, SQL: 9