前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【.Net vs Java? 】 先来看一下Java和C#的数据类型区别。

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

作者头像
FlyLolo
发布2021-10-18 11:29:09
4910
发布2021-10-18 11:29:09
举报
文章被收录于专栏:Core Net

新工作.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。 可以显式指定任何其他整数数值类型作为枚举类型的基础类型。

代码语言:javascript
复制
enum HttpCode : ushort
{
    OK = 0,
    BadRequest= 400
}

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

代码语言:javascript
复制
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 的。

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

代码语言:javascript
复制
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),注意首字母大小写不同。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本数据类型
  • 2.结构类型
  • 3.枚举类型
  • 4.元组类型
  • 5.可空值类型与包装类型
  • 6.Object、String
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档