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

1. 基本数据类型

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

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

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

【.Net vs Java? 】 先来看一下Java和C#的数据类型区别。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),注意首字母大小写不同。


上一篇:数据仓库-大数据分析


下一篇:阿里云服务器系统盘和数据盘区别有哪些?