浅谈Java与C#的一些细微差别

由于工作和之前学习的原因,我需要同时使用Java和C#两门语言。这几年,我也一直在使用J2EE平台和.NET平台做开发。说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别,而且很多时候我常常会搞混一些小细节。

例如:

在Java中定义字符串,通常使用“String”(首字母大写)去定义,而在C#中,一般使用string(首字母小写)去定义。我经常同时使用Microsoft Visual Studio 和Eclipse同时开发时,经常把“字符串类型”的大小写搞混淆,呵呵。

再就是,Java中定义Integer类型,而C#中没有这个语法,但他们想要描述的其实都差不多,只是语法上的表现形式不同罢了。

常量声明:Java 为此而使用 final 关键字,而 C# 使用关键字 const 或 readonly。

C# 提供了在 Java 中可用的所有数据类型,并且增加了对无符号数和新的 128 位高精度浮点类型的支持。

在 Java 中,对于每个基本数据类型,核心类库都提供了一个包装类来将其表示为 Java 对象。例如,Integer 类包装 int数据类型,而 Double 类包装 double数据类型。

而在 C# 中,所有的基本数据类型都是 System 命名空间中的对象。对于每个C#数据类型,都提供一个简称或别名。例如,int 是 System.Int32 的简称,而 double 是 System.Double 的简写形式。因为 C# 将所有的基本数据类型都表示为对象,所以按照基本C#数据类型来调用对象方法是可能的。例如:


代码如下:

int i=10; 
    Console.WriteLine(i.ToString());

还有在Java中使用泛型集合List,通常这样去定义(使用C#的那种方式去定义,会编译不通过):


代码如下:

List<int> list = new ArrayList<int>();

而在C#中使用泛型集合List,必须这样去定义,如果使用Java中的那种方式,则编译不通过。


代码如下:

List<int> list = new List<int>();

上面描述的一些小例子,是比较典型的。而且大都是和语法,数据类型等相关的。由于本人水平有限,以及时间的关系,对于那些更细节及更深入的内容(比如:为什么必须这样去定义......),就暂时不细说了。后续我也会不断的整理,深入的研究,并更新。

本文只是抛砖引玉,希望读者能够用心去体会,热心的朋友也可以一起研究、总结,整理供大家一起学习并分享。

(0)

相关推荐

  • javaScript函数中执行C#代码中的函数方法总结

    方法一: 1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click(); 3.在前台或后台调用js函数,激发click事件,等于访问后台c#函数; 方法二:1.函数声明为public 后台代码(把public改成protected也可以)  以下是引用片段: 复制代码 代码如下: public string ss() { return("a&quo

  • javascript函数中执行c#函数的方法

    1如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click(); 3.在前台或后台调用js函数

  • C#匿名委托和Java匿名局部内部类使用方法示例

    测试代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace CSharpStudy{    class Program    {        static void Main(string[] args)        {            int i = 0; Action

  • C#执行Javascript代码的几种方法总结

    一.开源项目 Javascript .NET 地址:http://javascriptdotnet.codeplex.com/ 它是Google Chrome V8引擎在.NET上的封装,功能完善,性能相对较高,推荐使用! (缺点就是asp.net web应用上,好象会报错) 示例代码: 复制代码 代码如下: using Noesis.Javascript; using System; using System.Collections.Generic; namespace JsCSharp {

  • C# javascript 读写Cookie的方法

    第一:写Cookies 复制代码 代码如下: Response.Cookies["UserName"].Value="Guest"; Response.Cookies["UserName"].Expires=DateTime.Now.AddDays(1); 第二:添加Cookies 复制代码 代码如下: HttpCookie userName_zhengshu_Cookie = new HttpCookie("uname");

  • c#后台输出javascript语句示例程序

    复制代码 代码如下: using System;using System.Web;using System.IO;using System.Security.Cryptography;using System.Text.RegularExpressions; namespace MyOraComm{/// <summary>/// FuncTion 的摘要说明./// </summary>public class Function{  public Function()  {   

  • C#调用Java代码的方法介绍

    c#直接调用java代码,需要ikvmbin-0.44.0.5.zip.下载地址: http://pan.baidu.com/s/17moxX 1.下载并解压 2.配置环境变量: 在path中添加%IKVM_HOME%\bin,IKVM_HOME为解压后的IKVM的主目录.在dos界面,输入"ikvm"命令,测试是否配置成功 3.编写java代码(java代码,要放在指定的package下,不要放在默认包下): 复制代码 代码如下: package com.xyy.csharp; im

  • C#调用Java类的实现方法

    一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理:使用的命令:jar cvf test.jar -C com/ .其中test.jar为要生成的jar包:com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件: 二.到IKVM官方网站下载IKVM需要的组件  http://www.ikvm.net/ ikvm-0.42.0.3.zip ikvmbin-0.42.0.3.zip openjdk6-b16

  • C#/Java连接sqlite与使用技巧

    1)下载sqlite jdbc驱动http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/ 2)将下载的驱动加入eclipse项目的built path中 3)示例代码: 复制代码 代码如下: package com.hedalixin; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat

  • java和c#使用hessian通信的方法

    本文实例讲述了java和c#使用hessian通信的方法,是非常实用的技巧.分享给大家供大家参考.具体分析如下: 首先,hessian主页为:http://hessian.caucho.com/ 下面通过一个简单的例子学习hessian服务:服务端为Java,客户端为C#. 先要准备好C#和Java的第三方类库,下载地址:http://hessian.caucho.com/ 下载 Hssiancharp.dll及hessian-4.0.37.jar Hessian服务端(java): 打开ecl

  • java与c#的语法区别详细介绍

    由C#转入Java一段时间了,总结下个人认为的Java同C#语法之间的不同之处,有不同意见之处还望各位海涵 刚学Java时觉得语法同C#大致是相同的(应该说C#同Java大致相同,毕竟人家微软的C#是有意模仿Java的语法习惯的) 比尔.盖茨曾经说过:"Java是最卓越的程序设计语言" 言归正传,下面探讨Java同C#的语法不同之处... 1,命名空间与包 C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace) Java中与此对应的东西叫做包(package)

  • c#和javascript函数相互调用示例分享

    在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见.请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性.),可做如下设置: [System.Runtime.InteropServices.ComVisible(true)] 例如: 复制代码 代码如下: [ComVisible(true)]    public partial class

随机推荐