整理的部分Java和C#不同点

简介:

C#有统一的类型系统,所有的类型包括原始类型(int,bool,short,long等类型)都继承于Object类。

Java略不同,它的原始类型不是继承于Object,每个原始类型都有对应的包裹类(继承于Object),比如int的包裹类Integer

 

C#有无符号整数,uint、ulong、ushort

Java没有

 

C#没有高精度的decimal。

Java中有BigDecimal

 

C#支持复数。Complex 结构

Java中没有

 

C#中有值类型。通过使用strutct关键字,可以定义结构体,这种类型在传递的时候,是按值传递,而不是按引用传递。

Java中只有原始类型。

 

C#中有可空类型,Nullable。

Java中只有包裹类。

 

C#中允许有指针。

Java中无指针。

 

C#中,枚举类型继承于Enum类型,是值类型的一个派生物。

Java中,枚举类型是一个class,它的值类的一个实例。

 

C#中有委托

Java中没有

 

C#中有延迟绑定的类型,dynamic

Java中没有

 

C#和Java中都有强引用和弱引用。

但是Java中还有一种软引用和虚引用Phantom reference。

软引用和弱引用类似,对象都是可达的,但仍然被GC回收。不同点在于,弱引用只要GC开始,就会被回收,而软引用只用当JVM内存空间不足的时候才会被回收。

虚引用的get方法永远返回null,可以用虚引用来引用我们感兴趣的对象,在GC回收的时候,会把该对象加到referenceQueue中。通过观察referenceQueue,可以知道对象是否被回收了。(此时我们可以在gc回收之前做一些其他事情,比如记录些日志什么的)

 

C#中支持二维矩形数组,单数组 int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };或者 int[,] a = { { 0, 0 }, { 1, 2 }, { 2, 4 }, { 3, 6 }, { 4, 8 } };

Java中不支持,只支持数组的数组。

 

C#中装箱操作时候隐式的,拆箱操作时显式的。

Java中装箱拆箱都是隐式的。

 

C#中 成员变量修饰符 public, internal, protected, private, protected internal

Java中 public, package, protected, private

 

C#类中,继承的方法,默认为new,必须显示override才表示覆盖。

Java中默认表示覆盖。

 

C#中的内部类都是类级别的,可以随时在外部实例化。

Java中内部类必须是static的才是类级别的,才能在外部被实例化。

 

C#支持分部类

Java不支持

 

C#中,枚举类型不能实现接口。

Java支持枚举类型实现接口。

 

C#支持运算符重载

Java不支持。

 

C#方法支持out,ref引用参数

Java不支持。

 

C#不支持常量参数

Java支持,final。标记final的参数,在方法中不能被修改。

    public short getValue(final short index) {

        if (index < values.length) {

            index++;    //出错,index的值无法修改.

            return values[index];

        }

        else return -1;

    }

 

C#支持命名参数,可选参数,分部方法,条件方法

Java不支持。

 

C#的泛型在运行时都是一个新的类型。

Java的泛型为伪泛型,在运行时被擦除。















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/1652133 ,如需转载请自行联系原作者



相关文章
|
4月前
|
Java C# C++
【从Java转C#】第八章:委托、lambda、事件
【从Java转C#】第八章:委托、lambda、事件
|
4月前
|
存储 Java C#
【从Java转C#】第七章:运算符和类型强制转换
【从Java转C#】第七章:运算符和类型强制转换
|
4月前
|
Java C# 索引
【从Java转C#】第六章:数组
【从Java转C#】第六章:数组
|
4月前
|
存储 Java 编译器
【从Java转C#】第五章:泛型
【从Java转C#】第五章:泛型
|
10月前
|
Java C# C++
【从Java到C#系列 四】从java到.net 核心
【从Java到C#系列 四】从java到.net 核心
71 0
|
10月前
|
存储 Java 编译器
【从Java到C#系列 三】从java到.net 高级
【从Java到C#系列 三】从java到.net 高级
59 0
|
10月前
|
开发框架 IDE Java
【从Java到C#系列 二】从java到.net 基础
【从Java到C#系列 二】从java到.net 基础
78 0
|
Java C# Maven
Java调用C# WebService接口方式【多篇文章经验,亲测可用】
Java调用C# WebService接口方式【多篇文章经验,亲测可用】
514 0
|
Java 数据挖掘 数据库连接
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
python,Java,C++,C#,Go,Ruby 语言的优势和前景
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
java面试题:什么是织入。什么是织入应用的不同点?
java面试题:什么是织入。什么是织入应用的不同点?
java面试题:什么是织入。什么是织入应用的不同点?