自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制。

几年前,我开始编写了一系列有关Java入门的文章,我觉得有必要将其中一些非常细节的内容单独拿出来写成文章。这样,那些入门内容就更容易理解了。首先,我来介绍一下有关Java 8中的基本类型。

int基本类型

首先,Java的整数是32位有符号(即包括正值和负值)整数,由int关键字表示:

int?someNumber?=?10;

当然,像所有基本类型一样,整型有自己的限制。由于它只有32位,所以其取值范围为-2147483648到2147483647。这数字很大嘛!当然,我们可以在DrJava的交互面板中用下述技巧来确认:

Integer.MAX_VALUE?// Prints 2,147,483,647

Integer.MIN_VALUE?// Prints -2,147,483,648

自然地,对于简单的计算而言,int是最常用的整数类型。如果你需要更大的数字范围,请参照下面的long。

double基本类型

与int不同,Java的双精度类型是64位浮点数,由double关键字表示:

double?someNumber?=?110.55;

Double.MAX_VALUE?// Prints 1.7976931348623157E308

Double.MIN_VALUE?// Prints 4.9E-324

需要注意的是,负的指数表示的是非常小的数字,而不是非常大的负数。所以这里的取值范围跟整数不是完全一样。一般而言,double是在Java中使用浮点数的默认选择。另一个选择是float。

char基本类型

我们已经看到,Java的字符类型表示16位字符,由char关键字表示:

char?someCharacter?=?‘f‘;

Java中所有的字符都用单引号表示。同时,双引号用来表示字符串。我们稍后会讨论字符串。与往常一样,我们可以通过下面的代码找出字符的范围:

Character.MAX_VALUE?// Prints ‘???‘

Character.MIN_VALUE?// Prints ‘‘

为了让这个范围有意义,我们可以将结果转换成整数(稍后会更多地介绍):

(int) Character.MAX_VALUE?// Prints 65535

(int) Character.MIN_VALUE?// Prints 0

可见,char类型是Java中唯一的无符号类型。换句话说,字符的取值范围为0到65535,每个值映射到特定的字符。如果需要创建该范围之外的字符,可以将一对字符组合起来。

byte基本类型

可以猜到,字节由byte关键字表示:

byte?someByte?=?20;

同样,可以利用下面的代码片段来确认byte类型的取值范围:

Byte.MAX_VALUE?// Prints 127

Byte.MIN_VALUE?// Prints -128

short基本类型

short是另一种整数类型,但它占用的空间要比int类型更小。实际上,它的占用空间正好是int类型的一半,为16位,由short关键字表示:

short?someNumber?=?11;

short类型的取值范围也只有整数的一半,我们可以用下述代码确认:

Short.MAX_VALUE?// Prints 32767

Short.MIN_VALUE?// Prints -32768

在实际应用中,short只有65546个可能的值。在内存空间和磁盘空间受限的情况下,我们会使用byte和short。但在其他情况下,在定义整数时默认使用int更为安全。

long基本类型

long?someBigNumber?=?1013401346173L;

下面的代码可以查看64位值究竟有多大:

Long.MAX_VALUE?// Prints 9,223,372,036,854,775,807

Long.MIN_VALUE?// Prints -9,223,372,036,854,775,808

也许,long可以用来计算光在一定时间内走过的距离。光在一秒内大约传播30万千米。如果编写一个程序来跟踪光走过的距离,那么7秒后int类型就超出范围类,而long类型能够计算大约975年。

不相信吗?可以看看这个gist

float基本类型

虽然我们通常使用64位浮点数类型double,但Java还支持另一种浮点数类型,叫做float。但与int类似,Java默认情况下使用double表示浮点数。不管怎样,我们可以用float来表示32位浮点数类型:

float?someNumber?=?11.4f;

float类型的范围如下:

Float.MAX_VALUE?// Prints 3.4028235E38

Float.MIN_VALUE?// Prints 1.4E-45

可见,32位浮点数的范围和精度都要小得多。如果不需要double的精度,同时节省一半的空间,那么可以选择float类型。

boolean基本类型

最后我们来讨论一下boolean类型。定义布尔类型可以使用boolean关键字:

boolean?isBool?=?true;

布尔类型有些特殊,不像其他基本类型那样,它们表示的不是数字值。实际上,之前使用的MAX_VALUE和MIN_VALUE技巧在这里不能使用。相反,它表示的是true或false,即真和假。

在此,我不打算详细介绍布尔类型,因为在Java中做任何事情都会涉及到布尔类型。尽管如此,我们通常不会明确地声明布尔类型。相反,许多代码逻辑中的比较操作的结果都是布尔类型。)

推荐去我的博客:

觉得不错,别忘了点赞+转发哦!

java int64 类型_详解 Java 的八大基本类型,写得非常好!相关推荐

  1. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  2. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  3. java 引用传递_详解java的值传递、地址传递、引用传递

    详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...

  4. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  5. Java implement意思_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...

  6. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法

    Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...

  7. java runnable 异常_详解Java中多线程异常捕获Runnable的实现

    详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口 ...

  8. java 代码块_详解java中的四种代码块

    在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. ...

  9. java static 函数_详解java中的static关键字

    Java中的static关键字可以用于修饰变量.方法.代码块和类,还可以与import关键字联合使用,使用的方式不同赋予了static关键字不同的作用,且在开发中使用广泛,这里做一下深入了解. 静态资 ...

  10. java排序接口_详解JAVA使用Comparator接口实现自定义排序

    1.原则 Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法: int compare(Object o1, Object o2) 返回一个基本类型的 ...

最新文章

  1. 如何解决MySQL order by limit语句的分页数据重复问题?
  2. qt怎么做滑动调节参数_冬天冰箱温度怎么调?0到7旋钮是做什么的?学会调节省电又保鲜...
  3. macos 此服务器的证书无效_跨平台本地SSL证书生成工具,本地也能优雅的调试https...
  4. java中注解的解析_【Java】中的注解与注解解析器
  5. python通过opencv使用图片制作简单视频(亲测)
  6. php在菜单栏里加子菜单,WordPress后台添加子菜单add_submenu_page()
  7. Hbulider代码注释,缩进问题 - 设置篇
  8. 2021-2025年中国再生聚酯行业市场供需与战略研究报告
  9. 基础篇:6.7)形位公差-基本规则 Basic Rules
  10. 什么是外贸网站?企业为什么要建设外贸网站?
  11. python Beautifulsoup4爬取凡人修仙传仙界篇连载中文章并生成txt
  12. 罗马音平假字复制_全部日文平假字翻译
  13. PCA主成分分析(降维)
  14. 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...
  15. 利用python将excle表格由xls转换为xlsx格式
  16. 求职应聘面试常见问题回答技巧
  17. 计算机考试一般什么内容是什么,计算机一级计算机考试内容是什么
  18. c8051f单片机c语言看门狗例程,stc单片机看门狗喂狗程序
  19. [C语言] 字符串的输出格式
  20. thinkpad T430的无法连接无线网络入的坑,显示“WLAN已关闭,重新打开WIFI”

热门文章

  1. Win系统 - Windows10 系统恢复语言栏位置的方法(二)
  2. Linux的du用法排除某个目录
  3. html td双击事件,tr td同时添加点击事件
  4. 莱昂哈德·欧拉生平及其成就简介
  5. summernote 富文本编辑器上传七牛云服务器
  6. excel工作簿合并怎么处理?
  7. HTML5页面结构标签
  8. pip install
  9. 前端实时可视化开发工具
  10. sata硬盘系统迁移到nvme协议固态硬盘后开机蓝屏 蓝屏代码inaccessible_boot_device无限重启问题解决