zoukankan      html  css  js  c++  java
  • 【.Net vs Java? 】 先来看一下Java和C#的数据类型区别。

    新工作.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),注意首字母大小写不同。

    ☆☆☆ 共同学习,欢迎拍砖;转载请注明出处,谢谢。欢迎关注我的公众号:闲聊编程。☆☆☆

     

  • 相关阅读:
    jmeter和ab的对比
    jmeter
    (原)InsightFace及其mxnet代码
    (原)CosFace/AM-Softmax及其mxnet代码
    (原)SphereFace及其pytorch代码
    (原)模型的参数初始化
    (原)python中不同文件之间使用所谓的全局变量
    (原+译)pytorch中保存和载入模型
    (原)torch模型转pytorch模型
    (原+译)使用numpy.savez保存字典后读取的问题
  • 原文地址:https://www.cnblogs.com/FlyLolo/p/DotNetVsJava_1.html
Copyright © 2011-2022 走看看