JAVA与C#的比较

      在面试的时候由于我在简历上写了熟悉C#和JAVA的开发,所以面试官就问我它们两者的比较,但是我说不出它们的相同与不同之处,因为都没比较过它们的异同,所以答得很差,(建议大家面试的时候最好把简历上自己写的专业知识弄懂,千万别写自己不懂的技术)今天上网查找了一下资料,整合一下如下:


      Java 语言运行在网络浏览器上。其主要特点是在JVM 上运行,语言简单,多线程,分布式,解释执行,可在不同的操作系统层面移植,能够在大型机上运行。自从互联网出现以来,Java就成了许多开发者的首选。Java成功的开发实现了许多高质量的多线程动画,游戏,以及分布的应用程序。更重要的是Java 语言是完全平台无关的。


      C#语言对于web 开发而言,与Java 类似,同时具有Delphi 的优点。C#与Windows的体系结构相似,很容易被开发人员所熟悉和掌握。C#本质上是C++的进化产物,具有包括声明、表达式及操作符在内的许多C++ 特征,还有类型安全、事件处理、碎片收集、代码安全性等新增功能。C#除了可以使用API、.NET 类外,还可以处理COM 组件和C 类型的函数,调用CLR 引擎控制之外的代码,允许操作原始指针来读写内存。它几乎集中了所有关于软件开发和软件工程研究的最新成果,包括了面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理等特性。C# 的Mono 已经成为国际标准,并有可能移植到Linux 和其他平台上。


 一、Java与C#的相同点 
   
   1、二者都编译成跨平台的、跨语言的代码,并且代码只能在一个受控制的环境中运行。 


   2、这两种语言都能自动回收垃圾内存,并且消除了指针(在C#中可以使用指针,不过必须注明
unsafe关键字)。 


   3、二者都不需要头文件,所有的代码都被“包(package)”限制在某个范围内,并且因为没有头文

件,所以消除了类定义的循环依赖。 
   4、所有的类都是从对象派生出来,并且必须使用New关键字分配内存。都用对象加锁的方式来支持

多线程。都具有接口(interface)的概念。 
   5、内部类方面:继承类的时候不会以某种特定的访问权限来继承;没有全局函数或者常量,一切必

须属于类。 
   6、数组或者字符串都自带长度计算和边界检查任何变量均在使用前进行初始化;不能使用整数来返回到if条件语句中,必须使用布尔值;“Try”模块后可以有“finally”。

二、Java与C#的程序语句的比较。


     1、Main方法。Java:可能编写一个没有main方法的Java程序,只要这个类是用来作为父类。但是只有类中包含有正确的Main方法的时候程序才能运行。C#:没有正确的Main方法就不可能编译C#源程序。如果main方法缺失了,那么编译器就会显示一个错误消息:程序’filename.exe’没有定义入口点。

 
    2、继承。Java 和C#都不支持多重继承而且都提供接口的概念作为多重继承的替代品。但是C#在

接口中包括了更高级的内容。 
  3、操作符和控制流语句。Java中出现的所有诸如算术,逻辑,自增和自减等操作符都可以在C#中找到。Java中的像if, else, if-else, for, do-while, while等控制流语句C#统统支持。但是C#增加了C++中流行的goto语句。

 
  4、异常处理。在C#中可以重用try, catch, finally, throws 语句处理运行时错误(通常也叫做异常)。C#中的异常处理过程除了一些小的不同以外几乎与Java完全相同。C#中System.Exception命名空间是所有异常类的基类。

 
  5、多线程。C#中多线程的应用比起Java来要容易得多。可以使用Monitor和Mutex类同步线程。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值