本文主要为C#开发人员了解Java提供一些基础。
Java中缺少C#的功能
C#包含更多原始类型和捕获算术异常的功能。
包括大量的Java注释便利,其中许多,例如运算符重载和用户定义的强制转换,已经为C ++程序员社区所熟悉。
事件处理是“一流的公民”,它是语言本身的一部分。
允许定义“结构”,这些结构类似于类,但可以在堆栈上分配(与C#和Java中类的实例不同)。
C#将属性作为语言语法的一部分来实现。
C#允许switch语句对进行操作string。
C#允许提供闭包功能的匿名方法。
C#允许迭代器通过功能样式yield关键字使用协程。
C#支持输出参数,帮助返回多个值,这是C ++和SQL共享的功能。
C#具有别名空间的能力。
C#具有“显式成员实现”,该类允许类从其自己的类方法中单独实现接口的方法。这也允许它实现两个不同的接口,碰巧具有相同名称的方法。接口的方法不必是public; 它们只能通过该界面进行访问。
C#提供了与COM的集成。
按照C和C ++的示例,C#允许按引用调用原始类型和引用类型。
C#中缺少Java的功能
Java的strictfp关键字保证浮点运算的结果在各个平台之间保持相同。
Java支持检查异常,以更好地实施错误捕获和处理。
语言之间的哲学差异
Java中没有无符号的原始数字类型。尽管普遍认为在代码中混合有符号和无符号变量是不好的,但是Java缺乏对无符号数字类型的支持,这使其在某种程度上不适合低级编程。
C#不包括检查的异常。有人会认为检查异常对于良好的编程习惯非常有帮助。其他人,包括首席C#语言架构师Anders Hejlsberg,认为它们在某种程度上是Java的实验,而且还没有证明它们是值得的。
C#的命名空间与C ++中的命名空间更为相似。与Java不同,名称空间不指定源文件的位置。(实际上,对于Java源文件位置来说,对应它的包目录结构并不是绝对必要的。)
C#包括委托,而Java不包括。有人认为委托使方法调用模型复杂化,因为委托是通过反射来处理的,这通常很慢。另一方面,它们可以通过消除声明新的(可能是匿名的)类以挂接到事件的需要,从而简化代码。
Java要求源文件名必须与其中的唯一public类匹配,而C#允许public同一文件中有多个类。
C#允许使用指针,某些语言设计者认为这是不安全的,但是某些语言功能试图确保不会意外滥用此功能。指针还极大地使诸如Java的RMI(远程方法调用)之类的技术复杂化,在该技术中,可以在一台完全独立的计算机上运行的程序中引用驻留在一台计算机上的程序对象。一些人推测,Java中缺少内存指针(被对象引用的更抽象的概念所取代)是网格计算时代的头号功臣,网格应用程序可以将单个应用程序分布在许多物理硬件上。
C#支持goto关键字。有时这可能很有用,但是通常建议使用结构化的控制流方法。
C#具有真正的多维数组,相对Java可用的数组(C#称为锯齿状数组)。多维数组始终是矩形的(在2D情况下,或对于更大的维数类似),而数组可以存储各种长度的行(同样在2D情况下)。如果内存是一个瓶颈(只有一个内存引用而不是两个内存引用,则矩形阵列可能会加快访问速度);如果内存不完整但成本高昂,则锯齿状数组可以节省内存(每行一个指针的代价) 。矩形数组还消除了为每行显式分配内存的需要。
Java不包括运算符重载,因为滥用运算符重载可能导致难以理解和调试的代码。C#允许操作符重载,如果谨慎使用,则可以使代码更简洁,更易读。Java缺乏重载使其在某种程度上不适合某些数学程序。相反,.NET的数字类型不与add / subtract / etc共享公共接口或超类方法,限制了数值库的灵活性。
默认情况下,C#中的方法是非虚拟的。但是,在Java中,默认情况下方法是虚拟的。虚方法保证将调用对象的最终重载方法,该方法由运行时确定。在调用或编写任何虚拟方法时,您始终必须牢记这一点!如果该方法声明为非虚拟方法,则调用的方法将由编译器确定。这是Java和.NET平台的设计者之间的主要哲学差异。
Java 1.5的泛型使用类型擦除。当Java源代码编译为字节码时,有关泛型类型的信息将会丢失。.NET 2.0的泛型在编译后得以保留,因为从.NET公共语言运行时2.0版(简称CLR)开始,对泛型的支持。Java的方法允许Java 1.5二进制文件在1.4 JRE中运行,但要付出额外的运行时类型检查的代价。
C#是由ECMA和ISO标准定义的,而Java是专有的,尽管在很大程度上是通过开放社区流程进行控制的。
C#API完全由Microsoft控制,而Java API通过开放的社区流程进行管理。
.NET运行时允许托管和非托管代码,从而实现Java的纯托管代码环境中不存在的某些类型的错误,但也可以与现有代码进行交互。
问题:java在默认中,所有方法都是虚方法,这意味着什么?
答:这意味着,java中的所有对象,基本上都有了动态代理的潜在可能
相关推荐
电动机反接制动控制与电动机正,反转运行控制的主要区别是什么?
发表于 03-22 10:44
PLC编程语言是工业控制领域内用于编写PLC程序的语言,旨在实现对工业设备和生产流程的自动化控制和监测。PLC编程语言包含多种语言类型,如图形化编程语言、文本化编程语言、结构化编程语言等,可根据不同应用场景和编程需求进行选择和组合。C语言
发表于 03-17 17:13
•240次阅读
大家好,有谁知道 esp-12N 和 12F 与 esp8266mod 之间的主要区别。除了只有 1MB 或闪存的评论外,我还没有在网上找到任何关于 12N 的信息,但我不知道这是不是真的。我想知道我是否可以互换这些模块...感谢您提供任何信息,我很感激。
发表于 02-22 07:37
电子发烧友网站提供《NTC与PTC的主要区别和应用.zip》资料免费下载
发表于 02-06 14:03
•1次下载
我想知道我们是否可以使用带有两个天线的 ST25R3916 或 3917。我们将一个连接到 RFO1/RFI1 的输出/输入,另一个连接到 RF02/RFI2。那有可能吗?我似乎无法在数据表中找到答案。另外,我想知道 3916 和 3917 之间的主要区别是什么,因为它们具有相同的数据表。谢谢 !
发表于 01-03 07:26
以毫无问题地与 OP-TEE 3.17.0 一起工作。我的主要问题是:基于5.10.61的linux-stm32mp与主线版本的主要区别是什么?基于3.12.0的optee-os-stm32mp与主线
发表于 12-08 08:28
C#:面向对象(跟java很像如果你对java了解估计你就会明白c&c#之间的区别了),是ms .net framework的主力之一,它的代码运行是安全的,里面没有指针,像java一样有垃圾回收机制。
发表于 11-11 11:07
•4393次阅读
unpacked数组和packed数组的主要区别是unpacked数组在物理存储时不能保证连续,而packed数组则能保证在物理上连续存储。
发表于 10-18 09:13
•603次阅读
单片机从诞生到现在,经过了将近70年的发展。众所周知,单片机是可以通过编写程序实现产品的功能,这么多年来,单片机的规格并没有多大变化,而单片机编程一般使用的都是汇编语言和c语言。那么,单片机汇编语言和c语言区别有哪些?
发表于 06-21 16:59
•3137次阅读
C语言中的指针与数组分别有哪些作用呢?
发表于 02-25 07:20
世界使用最广泛的系统编程语言。嵌入式C是C的扩展,在嵌入式系统中应用于编写嵌入式软件。针对嵌入式开发的C语言就是嵌入式C语言,嵌入式C与标准C没有特别大的差别,主要区别在于嵌入式程序员思考角度、使用习惯与普通C
发表于 12-14 06:15
一、前言C语言属于汇编型语言。是区别于解释型语言的(如JAVA)做个比较编译型语言VS解释型语言总结一下:编译型语言是将源代...
发表于 12-09 08:20
一、前言C语言属于汇编型语言。是区别于解释型语言的(如JAVA)做个比较 编译型语言 VS 解释型语言 总结一下:编译型
发表于 11-26 13:06
•2次下载
ISO/IEC14443标准包括哪几个部分?射频 IC卡的Type A型和type B型有哪些主要区别?
发表于 11-02 07:38
嵌入式linux和桌面linux的区别主要区别是:1. 硬件平台:嵌入式Linux一般是Mips, ARM平台,桌面Linux一般是x86平台。2. 根文件系统嵌入式Linux一般用UBIFS
发表于 10-27 10:06
为什么用UPS?UPS的作用是什么?EPS和在线式UPS的主要区别是什么?两者的主要用途是什么?
发表于 10-25 09:11
嵌入式C语言与C语言的区别:最常用的系统编程语言是C,它是在汇编语言中使用的一种简单的编程语言,源代码采用自由格式。Embeddedc是c语言用于编写嵌入式软件的扩展,这两者有什么区别?首先是
发表于 10-20 14:06
•4次下载
RS485总线的特点有哪些?RS485接口的定义是什么?RS232与RS485的主要区别是什么?
发表于 09-28 08:49
步进电机和伺服电机的主要区别在哪里?步进电机与伺服电机的不同之处主要表现在哪里呢?
发表于 09-28 08:42
unsigned是什么意思?signed是什么意思?HDL语言中的unsigned与signed的主要区别是什么?
发表于 09-24 07:02
51单片机与STM32单片机的主要区别在哪?如何对51单片机与STM32单片机进行proteus仿真?
发表于 09-23 09:29
ISP的原理是什么?ISP与IAP的区别有哪些?它们之间有啥联系?
发表于 09-23 08:36
存储器主要分为哪几种?同步电路与异步电路的主要区别在哪儿?
发表于 09-16 06:36
UART的主要区别在于,USART支持同步通信,该模式有一根时钟线提供时钟。串口在嵌入式中经常使用,一般使用UAR
发表于 08-16 09:08
什么是罗氏线圈?罗氏线圈与电流互感器的应用是什么?罗氏线圈与电流互感器的主要区别在哪?罗氏线圈与传统电流测量装置相比有哪些突出优点?
发表于 08-02 09:58
什么是微型计算机?什么是单片机?微型计算机与单片机的主要区别在什么地方?微型计算机与单片机的性能哪一个更好?
发表于 07-08 08:00
步进电机和伺服电机的主要区别在什么地方?
发表于 06-28 08:15
什么是蓝牙信标?什么又是蓝牙标签?蓝牙信标和蓝牙标签之间的主要区别在哪里?
发表于 06-26 06:51
功率放大集成电路的功能是什么?功率放大集成电路的主要参数有哪些?OTL、OCL和BTL的主要区别是什么?
发表于 06-01 06:17
USB 3.0和USB 2.0的主要区别在哪里?
发表于 05-21 06:36
CTS7-100与CTS7-200的主要区别说明。
发表于 05-09 10:21
•5次下载
塑壳断路器VL 160系列与160X系列的主要区别介绍。
发表于 04-30 14:12
•7次下载
电子发烧友网为你提供ARM与DSP的主要区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
发表于 04-24 08:53
•4次下载
1 UART 发展历史 2、两个 UART 是否直接通信 ? 3 、UART的不同模块有何作用? 4 、UART、RS232、RS485 在串口通信中,主要区别是什么 5、UART优缺点是什么?
发表于 03-11 07:36
开关电源与线性电源两者的主要区别
发表于 03-06 07:37
Java语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体现在以下几个方面: 语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来的
发表于 01-20 14:44
语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体现在以下几个方面: 语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来的,所以C程序
发表于 12-14 17:18
1 简单 Java语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体现在以下几个方面: 语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言
发表于 12-04 17:07
智能建筑与传统建筑的主要区别是什么?”智能化”,就是智能建筑与传统建筑最主要的区别了。它不仅具有传统建筑物的功能,且还具有智能(或智慧)。”智能化”可以理解为,具有某种”拟人智能”特性或功能。
发表于 10-15 16:39
•4154次阅读
在许多领域都需要各种电机,包括知名的步进电机和伺服电机。但是,对于许多用户而言,他们不了解这两种电机的主要区别,因此他们始终不知道如何选择。那么,步进电机和伺服电机之间的主要区别是什么? 基本结构
发表于 09-10 17:47
•2.5w次阅读
在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!
发表于 06-29 14:56
•4371次阅读
机器视觉优势:机器视觉系统具有高效率、高度自动化的特点,可以实现很高的分辨率精度与速度。机器视觉系统与被检测对象无接触,安全可靠。人工检测与机器视觉自动检测的主要区别有:
发表于 06-28 11:49
•4156次阅读
不同编程语言的区别到底在哪里?C语言、python、ruby、java...撇开前端开发语言不谈,但论这些后端语言。他们到底有什么区别呢?
发表于 06-02 06:44
许多初学者在编程入门之前,都会在编程语言的选择上犹豫不决。一般来讲,Java和C语言是编程小白最青睐的两种编程语言。
发表于 04-12 17:15
•3845次阅读
嗨,大家好!我只是想知道VC707的不同部件号之间的主要区别是什么,例如EK-V7-VC707-G和EK-V7-VC707-Gj。谢谢,Meysam
发表于 09-17 10:36
DSP的C语言同主机C语言的主要区别?
发表于 09-17 05:55
本文把JAVA SE、JAVA EE、JAVA ME拿来做下区别,同时也分享一下作者的一些成果。目前的Java平台根据软件开发人员、服务提供商和设备生产商可以针对特定的市场可以分为三个版本JAVA SE、JAVA EE、JAVA ME。
发表于 07-11 08:31
【JS】this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?
发表于 03-11 10:17
本文档详细介绍的是Java程序设计教程之Java语言的基础知识概述主要内容包括了:1.Java语言发展简史,2.Java的特点(为什么要学习java),3.Java与C++的比较,4.Java运行
发表于 02-22 10:28
•31次下载
提到C语言,我们知道c语言和其他高级语言的最大的区别就是C语言是要操作内存的!
发表于 02-17 09:53
•3775次阅读
本视频主要详细介绍了JAVA语言优缺点,首先介绍了JAVA语言优点,分别有简单、面向对象、分布式、健壮的、安全的等,其次介绍了JAVA语言的缺点。
发表于 12-26 16:10
•1.4w次阅读
请问TMS320F28332与TMS320F2812主要区别在哪?前者比后者优胜的地方是什么?
发表于 11-29 15:22
一:C51(单片机C语言)与标准C语言的区别1、 C51语言中定义的库函数与标准c语言中定义的库函数不同。2、 C51语言中的数据类型和标准c语言中的数据类型有一定
发表于 10-09 08:00
•129次下载
c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。 我在这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 JAVA语言让编程者无法找到指针
发表于 09-13 16:02
AD9162和AD9164的主要区别是什么,我看手册里两个DAC的描述和封装管脚是一样的,但两者的价格差别很大,请问两者的主要区别是什么,有没有二者的对比参数类的描述
发表于 08-06 06:58
如ZStack1.4、Zstack2.3.0、Zstack2.5.1a,以后的版本按不同的应用类别发行我知道的,但是这几种版本间有什么主要区别?
发表于 06-01 00:30
本帖最后由 一只耳朵怪 于 2018-5-22 14:43 编辑
问下TMS570与RM48X的主要区别有哪些?
发表于 05-22 01:45
软件开发编程语言多达600余种,每种都有各自的特点和应用领域。目前,在国内,最热的几门编程语言无外乎Java、C、C++了,Java和C同为面向对象语言,是最相近的,因此,许多人在选择这两种编程语言时,经常会困惑,学哪一种有优势呢?
发表于 02-05 17:23
•2.4w次阅读
++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一
发表于 01-07 15:07
最近作一个tiemsten数据库的项目,用到了jni技术。在这个项目中,我们用java来写界面和业务逻辑,用c语言写数据库odbc访问。单纯的odbc其实没有什么难的,但是在java和c之间进行
发表于 11-27 10:22
•1498次阅读
matlab和c语言目前已经得到广泛的运用,但是在生活当中人们容易把两者弄混淆,今天我们就来看看它们两者之间的区别。
发表于 11-20 16:05
•3.2w次阅读
相信对vhdl语言和c语言区别也有了一定的了解,并且它们两者之间的区别还是挺大的,下面我们详细细数一下它们的区别。
发表于 11-09 16:06
•1.9w次阅读
如果我们可以同时拥有 C# 和 Java 世界的最好特性,那会是什么样呢? 完美的编程语言并不存在,我希望我们可以在这一点上达成一致。开发新语言往往是为了克服另一种语言的弊端,又不可避免的在某些方面
发表于 09-28 16:07
•0次下载
Keil5 与 Keil4 主要区别
发表于 04-06 17:01
电子专业单片机相关知识学习教材资料——vAMOLED与OLED的主要区别
发表于 10-25 18:27
•16次下载
c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。 我在这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 JAVA语言让编程者无法找到指针
发表于 10-10 14:50
,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之
发表于 06-17 09:39
和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。 我在这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 JAVA语言让编程者无法找到
发表于 04-11 15:19
c与java的区别?
发表于 03-19 12:32
将Java和c进行一个比较,哪个好,哪个不好的话,我觉得这是没有可比性的。只能说目前无论是Java开发工程师还是C语言开发工程师的工资都在4K以上,无论学Java还是学c,前景都是不错的,主要看个人比较喜欢哪个。`
发表于 01-04 14:11
放大器与比较器的主要区别是闭环特性放大器(如4558和5532)大都工作在闭环状态,所以要求闭环后不能自激.而比较器大都工作在开环状态更追求速度.对于频率比较低的情况放大器完全可以代替比较器(要主意
发表于 10-13 15:10
`ISO9001_的2015版与2008版的主要区别`
发表于 08-25 15:50
本帖最后由 eehome 于 2013-1-5 10:04 编辑
AVR单片机与51单片机的主要区别有那些啊?(劳请高手将得能应用领域、编程控制及设计等方面详细点儿,谢谢啦!)
发表于 07-16 22:51
java较C++运行速度慢的原因,1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作
发表于 06-07 11:34
•2165次阅读
DSP C语言与主机C语言的主要区别1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上
发表于 11-03 15:14
一、三层交换机与路由器的主要区别 之所以有人搞不清三层交换机和路由器之间的区别,最根本就是三层交换机也具有“路由”功能,与传统路由器的路由功能
发表于 08-01 10:37
•2797次阅读
Java语言程序设计
1. 了解Java语言的特点、用途、语法与程序结构;
2. 了解Java中不同类型数据之间的转换方法;
3. 掌握利用Java实现文件输入/输出的方
发表于 04-28 16:35
•57次下载
;nbsp; Java的学习是比较复杂的,主要表现在相关的一系列平台、规范和协议上。有经验的Java程序员都知道,只掌握了Java语言本身很难开发应用程序。本文不讨论这些复杂的概念,而是
发表于 09-25 15:17
评论