Java与C#语法比较



基本数据类型 
Java有八种基本数据类型:boolean,byte,char,short,int,long,float,double 
C#的数据类型会多一些,Java中的数据类型都是有符号的,而C#中还定义了相应的无符号数据类型:bool,(byte,sbyte),char,(short, ushort) ,( int, uint) , (long, ulong),float,double,decimal 
 
结构 
在C#中的结构使用struct关键字定义;Java 不支持
 
可空值类型 
空值类型是在.NET 2.0发布的时候被引入的。使用泛型(Generics),任何值类型都可以被包装成空类型,从而可以有空值;Java 不支持

引用类型 
所有的类类型(除了String)都是引用类型 
在一个值类型转换为相应的类类型时,Java和C#都有自动装箱机制,感觉C#做的更进一步,比如,将一个int数值转为一个String: 
Java  :int num = 100;               C# :int num = 100; 
num.ToString(); //出错             num.ToString();  //自动装箱 


常量 
Java的常量用final来定义 
C#中有两个关键字:const和readonly, readonly可以在声明时赋值也可以在构造函数中赋值,const必须在声明的同时赋值


枚举 
赋初始值上有分别:
Java:enum Status {Start, Stop, Rewind, Forward}; 
      enum Status { Start (20), Stop (40), Rewind (60) , Forward (80)}; 
C#: enum Status {Start, Stop, Rewind, Forward}; 
     enum Status { Start = 20, Stop = 40, Rewind = 60, Forward = 80};


属性访问
在Java中需要暴露一个属性通常用set/get方法;
在C#提供了get 和set 访问器来做这个工作


文件和类 
在Java中一个类文件只能有一个公有类,且类名必须与文件名相同; 
但在C#中没有这种限制,一个文件可以有多个公有类,一个类还可以分散放在多个文件中(使用Partial 关键字)。 


命名规范
Java的类方法一般用小写字母开头,而C#的类方法一般用大写字母开头。 


运算符 
Java和C#基本相同,只是Java多了一个位运算符 
>>> 右移,左边空出的位以0填充 


流程控制 
Java和C#基本相同,唯一的一点区别是在做遍历时的写法: 
Java:   for (int i : numArray)                  C#:  foreach (int i in numArray) 


数组 
Java:  int[][] d;                             C#:   int[][] d;  还有一种写法:int[,] d; 


包(命名空间) 
Java:package harding.compsci.graphics;  
      import harding.compsci.graphics.*; 
C#:  namespace Harding.Compsci.Graphics {} 
      using Harding.Compsci.Graphics; 


继承和接口 

Java和C#的继承与接口实现机制是一样的,两者都只能单继承,可以实现多接口 
Java的继承用extends关键字,接口用implements 关键字, 
C#中都是用: 如 
public class MyClass : ParantClass, Interface1,Interface2 {} 
public class MyClass extends ParantClass implements Interface1,Interface2 {}


Java常用包
Java.lang:基础 
Java.util: 工具库 
Java.net: 网络通信用协议包 
Java.io:  输入输出管道 
Java.awt : 基本图型工具包 
Javax.swing : 高级图型工具包 
Java.math : 数学括展包 
Java.sql : 用来访问DB的包 


.NET常用命名空间: 
System:基础
System.Collections :集合相关,比如列表,队列,数组,哈希表等 
System.IO :  数据流 
System.Text : 包含了一些表示字符编码的类型及字符串的操作和格式化 
System.Reflection :反射相关 
System.Threading :多线程 
System.Drawing :绘图 
System.Data :数据访问 

System.Net :网络通信 


附:关键字区别

c#

Java

c#

Java

c#

Java

c#

Java

abstract

abstract

extern

native

operator

N/A

throw

throw

as

N/A

false

false

out

N/A

true

true

base

super

finally

finally

override

N/A

try

try

bool

boolean

fixed

N/A

params

...

typeof

N/A

break

break

float

float

partial

N/A

uint

N/A

byte

N/A

for

for

private

private

ulong

N/A

case

case

foreach

for

protected

N/A

unchecked

N/A

catch

catch

get

N/A

public

public

unsafe

N/A

char

char

goto

goto

readonly

N/A

ushort

N/A

checked

N/A

if

if

ref

N/A

using

import

class

class

implicit

N/A

return

return

value

N/A

const

const

in

N/A

sbyte

byte

virtual

N/A

continue

continue

int

int

sealed

final

void

void

decimal

N/A

interface

interface

set

N/A

volatile

volatile

default

default

internal

protected

short

short

where

extends

delegate

N/A

is

instanceof

sizeof

N/A

while

while

do

do

lock

synchronized

stackalloc

N/A

yield

N/A

double

double

long

long

static

static

:

extends

else

else

namespace

package

string

N/A

:

implements

enum

N/A

new

new

struct

N/A

N/A

strictfp

event

N/A

null

null

switch

switch

N/A

throws

explicit

N/A

object

N/A

this

this

N/A

transient


参考:

http://blog.renren.com/share/223803214/1026680561


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值