-
【.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),注意首字母大小写不同。
来源:https://www.cnblogs.com/FlyLolo/p/DotNetVsJava_1.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数