自从互联网出现以来,Java就成了许多开发者的首选.而许多C++开发者在较短的时间内转移到了Java开发者的队伍中来. Java成功的开发和实现了许多高质量的多线程动画, 游戏, 以及分布的应用程序. 更重要的是,Java 语言是完全平台无关的.

被称作Apllets(小应用程序)的Java程序在被下载到本地以前必须首先通过安全认证,这样就避免了任何病毒钻入用户的计算机的企图. 许多新的改进,诸如旋摆软件包(swing package), Java2D API, 连网软件包(java .net)在最初的Java开发包发布以后被加进了这种语言里. 从Sun公司发布Java以来,它的许多竞争对手开发了这种热门语言的替代品,一些公司甚至在两年以前就开始了.     
现在一家无需更多介绍的公司--微软已经发布了一种新的叫做微软.NET的技术. .NET家族的一种主要的语言是C#或者说C-sharp. 这种语言是从Java/C++继承而来的. 从我的对C#的六个月的技术上的经验来说,我觉得C#或多或少与Java是相似的.但是C++的许多功能,比方说操作符重载(它在Java中已经被移去了)还存在于C#中.     
Java程序能够在安装了Java虚拟机或者JVM的任何平台上运行.但是.NET程序的平台要求安装了通用语言运行库或者称做CLR. 它是所有.NET语言运行所需的运行库.所以一种.NET语言能够调用另一种.NET语言写成的模块和函数. 更进一步的说,如果你学习了种像C#之类的语言,那么你就很容易学习另一种.NET语言因为所有的.NET语言遵循微软所谓的.NET Framework(架构). 这种架构包括了编写和安装健壮的.NET应用程序所必需的类库.使用.NET你可以通过ASP.NET进行服务器端的编程,这点非常像JAVA中的servlets.     
就象Java中的Applets, C#引入了WinForms 和WebForms的概念.使用WinForms你可以设计基于Windows的应用程序而使用WebForms你能够开发Web应用程序. 这点可以要么通过C#编程或者是使用Visual Studio.NET这样的开发环境工具来实现. 它包含了Visual C#,使用Visual C#你可以非常容易的编写C#应用程序.     
在我们使用Visual C++编程的时候,WinForms几乎就是win32程序.用C++来开发这些程序是可能的.但是VC++给我们提供向导来简化我们的开发过程.现在Visual C#也在做同样的工作.因此如果你已经是一个VC++的程序员了,那么你最好试一试VC#.     
Java程序和C#程序的比较     
我们应该比较一下用Java写成的程序和C#的有什么不同. 我们将讨论两个程序间主要的不同点.     
Hello Java 程序     
class Hello { // 类声明     
public static void main(String args[]) { // main 方法,入口点     
System.out.println("Hello Java"); // 向控制台输出Hello Java     
}     
}     
Hello C# 程序     
using System; // 调用System命名空间     
class Hello { // 类声明     
public static void Main () { // main 方法, 入口点     
console.writeLine("Hello C#"); // 向控制台输出 Hello C#     
}     
}     
在Java中, lang软件包是自动引入的.在简单的程序里没有必要引入这个包.但是在C#中,我们不得不在所有的程序里调用System命名空间. 请记住控制台是System命名空间下的一个类. 试着运行一下上面的程序并查看它们的输出结果.     
Main方法     
Java:你有可能编写一个没有main方法的Java程序,只要这个类是用来作为父类.但是只有类中包含有正确的Main方法的时候程序才能运行.     
C#:没有正确的Main方法就不可能编译C#源程序.如果main方法缺失了,那么编译器就会显示一个错误消息:程序'filename.exe'没有定义入口点.     
继承     
Java 和C#都不支持多重继承而且都提供接口的概念作为多重继承的替代品.但是C#在接口中包括了更高级的内容.请在本文末找出题为新增加的特点的内容.     
操作符和控制流语句     
Java中出现的所有诸如算术,逻辑,自增和自减等操作符都可以在C#中找到. 而Java中的像if, else, if-else, for, do-while, while等控制流语句C#统统支持. 但是C# 增加了C++中流行的goto语句.     
异常处理     
在C#中你可以重用try, catch, finally, throws 语句处理运行时错误(通常也叫做异常).C# 中的异常处理过程除了一些小的不同以外几乎与Java完全相同. C#中System.Exception命名空间是所有异常类的基类.     
多线程     
C#中多线程的应用比起Java来要容易得多.我们可以使用Monitor 和 Mutex类同步线程.     
新增特点     
索引,属性和代理是C#中的新概念.索引几乎与Java中的向量相同. 对其新特点的完全的讨论已经超出了我们的范围.但是我将尽量在这个网站的其它地方解释它们. C#引入了Java所没有的操作符重载的概念.但是Java和C#都支持方法重载.     
让我们回到对接口的讨论,我们能够验证包括在接口中的方法是否是使用is 和 as 操作符实现的.当我们实现接口的时候能避免命名冲突.你甚至可以将两个接口结合到一个中来,并在类中实现这个复合的接口,如下面的代码所示:     
using System;     
public interface First {     
void A();     
void B();     
}     
public interface Second {     
void C();     
}     
public interface Combined: First, Second { }     
class Combineimple: Combined {     
// 这里是程序代码     
// main方法     
} }     
而且C#在显示编译错误的时候还显示它们的错误代码.你可以搜索与SDK有关的在线文档寻找和这个错误代码有关的内容并找出这个错误发生的原因的细节.

转载于:https://blog.51cto.com/bbsitsq/1182331

C#和Java的对比相关推荐

  1. Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结

    Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结 1. defer关键字1 2. try!形式存在的"不失败"机制3 3. Guard 4 4 ...

  2. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

    @Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...

  3. 微信公众开放平台开发02---微信公众平台PHP接口和java接口对比

    微信公众开放平台开发02---微信公众平台PHP接口和java接口对比 技术qq交流群:JavaDream:251572072 ----------------------------------- ...

  4. python 面向对象_Python 和 Java 基础对比 08 —— 面向对象

    一.面向对象编程(object oriented programming) 简称:OOP,是一种编程的思想. OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数. 面向对象的出现极 ...

  5. Go语言与Java语言对比

    Go与Java 零.GoApi文档和中文社区网址 Go的中文api文档:https://studygolang.com/pkgdoc Go中文社区网站:https://studygolang.com/ ...

  6. java文件对比7,一个线程读一个线程写、返回给前端进度条数据

    java文件对比 controller Service Serviceimpl 读取文件多线程工具类 对比文件多线程工具类 控制台结果 返回结果 进度条结果 个人总结 这个其实写的是有点问题的,想的是 ...

  7. php和Java哪个好?php和Java的对比

    php和Java哪个好?这个问题应该会有很多人问,但是每种编程语言都有各自的优缺点,所谓的哪个好,不过就是看你习惯于使用哪种或者说你更擅长于哪种,所以今天我们就来说一说php和Java之间的对比. 1 ...

  8. Kotlin与Java语法对比总结

    文章目录 前言 一.变量 二.函数 三.程序的逻辑控制 1.条件语句 2.循环语句 四.面向对象编程 1.类与对象 2.继承 3.构造函数 4.接口 5.数据类与单例类 五.Lambda编程 1.集合 ...

  9. C#的进化——C#发展史、C#1.0-10.0语法系统性梳理、C#与JAVA的对比

    C#的进化 C#发展史.C#1.0-10.0语法系统性梳理.C#与JAVA的对比 前言 C#也使用了十年有余了. 一路走来,见证了微软从封闭走向开放,从平台捆绑,到成为活跃于Github的重要贡献者. ...

  10. C 与 JAVA 的对比分析

    Sun 公司推出的Java 是面向对象程序设计语言,其适用于Internet 应用的开发,称为网络时代重要的语言之一.Java 可以用认为是C 的衍生语言,与C 在大量元以内成分保持相同,例如此法结构 ...

最新文章

  1. WebClient.UploadValues Post中文乱码的解决方法
  2. 非线性求解器Casadi使用简介
  3. 关于redo(二)插入更新数据时的效率比较
  4. 不要再把 pp 写出 % 了。
  5. 微软工程院院长:1万多应聘者挑不出100人
  6. 电脑如何设置不休眠_电脑休眠了却没法唤醒?设置一下就好!
  7. rabbitmq+topic+java_译:5.RabbitMQ Java Client 之 Topics (主题)
  8. PyQt学习--HelloWorld
  9. mybatis generator自动生成sqlmap代码的不完善之处以及解决方法
  10. JAVA导入gpx文件_如何将GPX文件导入到行者、佳明、百锐腾等设备
  11. 全球及中国企业级硬盘行业消费量调研及投资战略研究报告2022-2028年
  12. 渗透测试的种类(黑白盒)、脆弱性评估、OWASP Top 10、PTES-渗透测试执行标准
  13. C++17新属性详解
  14. 解决Windows10关闭UAC后,开机启动项不生效的问题
  15. 奥城大学计算机专业,2013年美国留学硕士双录取院校一览
  16. AndroidQ(10.0) 手机锁屏炫酷充电动画————html方案
  17. linux 为执行程序添加一个交互确认执行的信息
  18. 计算机系统构成及硬件基础知识(中级软件评测师备考笔记)
  19. 我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+
  20. html 画星星的坐标,如何使用画布HTML5绘制星星?

热门文章

  1. 工程设计+算法规模化真的是AI突破吗?DeepMind唇读系统ICLR遭拒
  2. cgroup 介绍 与使用
  3. Visual Studio 2010 Ultimate敏捷功能特性(上)
  4. 一个APP“感知”北京门头沟的城市智慧
  5. nginx 安装 虚拟主机
  6. xmlUtil 解析 创建
  7. 学习org-mode
  8. linux上利用crontab定时备份postgres数据库及文件到windows系统
  9. PHP——获取上传文件的后缀名
  10. 中国电信:回归根本的SOC发展之道