Java随谈(六)我们真的理解 Java 里的整型吗?

整型是我们日常生活中最常用到的基础数据类型,看这篇文章之前,我想问:

我们真的像自己认为的那么理解 Java 内的整型吗?

也许看完本篇文章你就有自己的答案。

C 语言 提供了如下的整型

学习 Java 的整型之前,让我们看看它的前辈——C 语言的实现。

让我们更好地了解它的设计。

数据类型 占用字节 取值范围 signed char 1 byte(8 bit) -2^7, 2^7-1 signed short 2 byte(16 bit) -2^15, 2^15-1 signed int 4 byte(32 bit) -2^31, 2^31-1 signed long 4 byte(32 bit) -2^31, 2^31-1 signed long long 8 byte(64 bit) -2^63, 2^63-1 unsigned char 1 byte(8 bit) 0, 2^8-1 unsigned short 2 byte(16 bit) 0, 2^16-1 unsigned int 4 byte(32 bit) 0, 2^32-1 unsigned long 4 byte(32 bit) 0, 2^32-1 unsigned long long 8 byte(64 bit) 0, 2^64-1

Java 提供了如下整型

Java 则简单了很多。

数据类型 占用字节 取值范围 byte 1 byte(8 bit) -2^7, 2^7-1 short 2 byte(16 bit) -2^15, 2^15-1 int 4 byte(32 bit) -2^31, 2^31-1 long 8 byte(64 bit) -2^63, 2^63-1

Java 和 C 整型的区别

java 的装箱问题

原始数据类型 占用字节 包装类 占用字节 byte 1 byte(8 bit) Byte 16 byte(128 bit) short 2 byte(16 bit) Short 16 byte(128 bit) int 4 byte(32 bit) Integer 16 byte(128 bit) long 8 byte(64 bit) Long 16 byte(128 bit)

从现在往回追溯,Java 的 Integer 事实上源于一个妥协。由于 java 号称完全面向对象,而在最初的版本中却存在 byte, short, int, long, char, boolean, float, double 这八种原始数据类型(primitive data types)。

在 Java 中我们无法写出类似下面的代码

    3.toString();

而在一些更加纯粹的面向对象语言,则可以实现上述代码。 例如 Scala

    3.toString();

希望对你有所帮助!

Original: https://www.cnblogs.com/kwanwoo/p/16352760.html
Author: Kwanwooo
Title: Java随谈(六)我们真的理解 Java 里的整型吗?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589571/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球