3

【.Net vs Java? 】 先来看一下Java和C#的数据类型区别。

 2 years ago
source link: https://www.cnblogs.com/FlyLolo/p/DotNetVsJava_1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

新工作.Net和Java都要做,早期也做过一段Java的项目,但没有系统的深入学习过。一直觉得这两门语言估计是最相近的两门语言了,好多代码可以说直接拷过来都不带报错的,但仔细推敲还是有很多的不同。

1. 基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

C#提供的类型更细一些。

Java没有基本的decimal类型,有个BigDecimal类型,是一个继承于Number类的类。

C# Java 布尔型 bool boolean 字符型 char char 整形 byte byte

sbyte

int int

uint

nuint

long long

unlong

short short

unshort

浮点型 decimal BigDecimal*

double double

float float

2.结构类型

C#提供像C语言一样的结构体(struct )类型,Java没有此类型,一般通过类实现类似功能。

3.枚举类型

二者都有枚举类型enum。

C#的枚举类型时值类型,默认情况下,枚举成员的关联常数值为类型 int;它们从零开始,并按定义文本顺序递增 1。 可以显式指定任何其他整数数值类型作为枚举类型的基础类型。

enum HttpCode : ushort
{
    OK = 0,
    BadRequest= 400
}

Java的枚举类型是通过类实现的,所以可以为其添加属性和方法等。

public class Simple {
    enum HttpCode
    {
        OK("请求成功!", 200),
        BadRequest("请求失败!", 400);

        // 成员变量
        private String message;
        private int code;

        // 构造方法
        private HttpCode(String message, int code) {
            this.message = message;
            this.code = code;
        }

        // 覆盖方法
        @Override
        public String toString() {
            return this.message;
        }
    }

    public static void main(String[] args) {
        System.out.println(HttpCode.BadRequest.toString());
    }
}

Java的枚举成员都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的。

上面的枚举类代码可以理解为:

public final class HttpCode extends Enum{ 
    public static final HttpCode OK; 
    public static final HttpCode BadRequest; 
}

4.元组类型

C#7.0之后提供类元组类型。Java中JDK原生不支持元组,但有框架javatuples支持元祖。

5.可空值类型与包装类型

C#为值类型提供了对应的可空值类型,例如int->int?,本质是通过结构体实现的。

Java为值类型提供了对应的包装类型,例如int->Integer,包装类型为引用类型。

6.Object、String

二者都以Object类型作为所有类型的基类,都提供了String类(以及StringBuilder),注意首字母大小写不同。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK