整型

Java定义了4种整数类型:byte、short、int和long。所有这些类型都是有符号的、正或负的整数。Java不支持无符号的、只是正值的整数。许多其它计算机语言同时支持有符号和无符号整数。然而,Java的设计者觉得无符号整数不是必需的。特别是,它们觉得“无符号”的概念通常用于指定“高阶位”(high-order bit)的行为,高阶位用于定义整形值的符号。在本书后面的章节中将会看到,Java通过添加特殊的“无符号右移”运算符,以稍微不同的方式管理高阶位的含义。因此,Java消除了对无符号整数类型的需要。

不应该将整数类型的宽度看成整数所消耗的存储量,而应当理解成定义这种类型的变量和表达式的行为。Java运行时环境可以自由使用它们希望的、任何大小的空间。只要类型的行为符合声明它们时的约定即可。这些整数类型的宽度和范围相差很大,如表所示:

表 整数类型的宽度和范围

接下来看一看每种整数类型。

●  byte

最小的整数类型是byte。它是有符号的8位整数类型。范围为−128~127。当操作来自网络或文件的数据流时,byte类型的变量特别有用。当操纵与Java的其它内置类型不直接兼容的二进制数据时,byte类型的变量也很有用。

byte变量是通过关键字byte声明的。例如,下面声明了两个byte变量b和c:

byte b;

byte c;

●  short

short是有符号的16位整数类型,它的范围为−32768~32767。它可能是最不常用的变量类型。short类型变量通过关键字byte声明的。例如,下面声明了两个short变量s和t:

short s;

short t;

●  int

最常用的整数类型就是int类型。它是有符号的32位整数类型,范围为-2147473648~2147483647。除了其它用途外,int类型变量通常用于控制循环和索引数组。对于那些不需要更大范围的int类型数值的情况,您可能会认为使用范围更小的byte和short类型效率更高些,然而事实并非如此。原因是如果在表达式中使用byte和short值,当对表达式求值时会被提升为int类型。所以,当需要使用整数类型时,int通常时最好的选择。int类型变量通过关键字int声明的。例如,下面声明了两个int变量i和n:

int i;

int n;

●  long

long是有符号的64位整数类型,对于那些int类型不足以容纳的整数,long类型是最有用的。long类型的范围相当大,这使得当需要很大的整数时它非常有用。long类型变量通过关键字long声明的。例如,下面声明了两个long变量l和g:

long l;

long g;

浮点型

浮点数也称为实数(real number),当计算需要小数精度的表达式时使用。例如,求平方根这类计算以及正弦和余弦这类超越数,保存结果就需要使用浮点类型。Java实现了IEEE-754标准集的浮点类型和运算符。Java中有两种浮点类型:float和double,它们分别表示单精度浮点数和双精度浮点数。它们的宽度和精度如表3.3所示:

表浮点类型的宽度和范围

下面详细解释每种浮点类型

●  float

float类型表示使用32位存储的单精度(single-precision)数值。在某些处理器上,单精度运算速度更快,并且占用的空间是双精度的一半,但是当数值非常小时会变得不精确。如果需要小数部分,并且精度要求不是很高时,float类型的变量是很有用的。例如表示商品单价时可以使用float类型。float类型变量通过关键字float声明的。例如,下面声明了两个float变量f和o:

float f;

float o;

●  double

双精度使用double关键字表示,并使用64位储存数值,在针对高速数学运算进行了优化的某些现代处理器上,实际上双精度数值的运算速度更快。所有超越数学函数,如sin()、cos()和sqtr(),都返回双精度值。如果需要在很多次迭代运算中保持精度,或是操作非常大的数值,double类型是最佳选择。double类型变量通过关键字double声明的。例如,下面声明了两个double变量u和l:

double u;

double l;

IT兄弟连 Java语法教程 数据类型2的更多相关文章

  1. IT兄弟连 Java语法教程 数据类型3

    字符型 在Java中,用于存储字符串的数据类型是char.然而,C/C++程序员要当心:Java中的char与C或C++中的char是不同的.在C/C++中,char的宽度是8位.而在Java中不是这 ...

  2. IT兄弟连 Java语法教程 数据类型1

    Java是强类型化的语言 Java是一种强类型话的语言,在开始时指出这一点是很重要的.实际上,Java的安全性和健壮性正是部分来自这一事实.强类型意味着什么呢?首先,每个变量都具有一种类型,每个表达式 ...

  3. IT兄弟连 Java语法教程 数据类型 进制转换

    ●  正十进制转换为二进制 拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则写0.如: 34 = 32 + 2 128 64 32 16 8 4 2 1 0  0  1  0 ...

  4. IT兄弟连 Java语法教程 标识符和关键字

    Java语言也和其它编程语言一样,使用标识符作为变量.对象的名字.也提供了一系列的关键字用以实现特别的功能.本小节将详细介绍Java语言的标识符和关键字等内容. 1.分隔符 Java语言里的分号“;” ...

  5. IT兄弟连 Java语法教程 变量1

    什么是变量 在Java程序中,变量是基本的存储单元.是在程序运行中值可以改变的一块内存区域.变量是通过标识符(变量名).变量类型及可选的初始化器来定义的,此外,所有的变量都有作用域,作用域定义了变量的 ...

  6. IT兄弟连 Java语法教程 Java语言的其他特性

    Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ●  语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...

  7. IT兄弟连 Java语法教程 数组 数组的初始化

    Java语言中数组必须先初始化,然后才可以使用.所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值. 这时有人会问,能不能只分配内存空间,不赋初始值呢?答案是肯定不行的,一旦为数组 ...

  8. IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

    循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循 ...

  9. IT兄弟连 Java语法教程 注释与编码规范

    在程序代码中适当地添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面将介绍Java中的集中代码注释以及应该注意的编码规范. 代码注释 通过在程序代码中添加注释可提高程序 ...

随机推荐

  1. ORACLE 12.2RAC之问题 ora.chad OFFLINE

    问题描述: 早上巡检是发现一套RAC的ora.chad一个节点的状态是offline,其他的均正常. crsctl stat res -t ora.chad               ONLINE  ...

  2. phpMyAdmin开启IP地址登录

    根本没有其他文章说的那么麻烦,又是修改配置文件,又是修改首页文件.在根目录下有个libraries文件夹,进去有个config.default.php文件,修改里面的AllowArbitrarySer ...

  3. C++标准库之string类型

    stirng类型 简介: C++标准库提供的类型:string 长度可变的字符串 操作简单  仅为包含个人常用函数 头文件 string 类型与其它的标准库类型相同,都需要包含对应的头文件 #incl ...

  4. December 07th, Week 49th Saturday, 2019

    Snowflakes are pretty patterns etched in water's dreams. 雪花,是水在梦中镌刻的美丽图案. From Anthony T.Hincks. Tod ...

  5. Codeforces 547C/548E - Mike and Foam 题解

    目录 Codeforces 547C/548E - Mike and Foam 题解 前置芝士 - 容斥原理 题意 想法(口胡) 做法 程序 感谢 Codeforces 547C/548E - Mik ...

  6. 编辑器之神vim的一些常用快捷键整理

    yy:复制 光标所在的这一行 4yy:复制 光标所在行开始向下的4行 p:粘贴 dd:剪切(删除) 光标所在的这一行 4dd:剪切(删除) 光标所在行向下的4行 D:从当前的光标开始向后剪切,一直到行 ...

  7. 记一次排查jacoco的过程:java.lang.NoSuchMethodException:ApplyOrderdetail.get$jacocoData()

    一.事件: 公司BA今日在st2环境提测试单,添加产品时候一直过不去,找我帮忙看,因为关系比较熟,正好也不是非常忙,我就帮忙定位了下.首先,我在生产环境重现了下,没有问题,在dev环境重现,也没有问题 ...

  8. 你必须知道的Dockerfile

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Dockerfile 在Docker中创建镜像最常用的方式,就是使用D ...

  9. 一起学Android之音频视频

    概述 Android多媒体框架支持各种常见的媒体类型,可以很容易地将音频.视频和图像集成到App中.通过MediaPlayer Api,可以从应用程序资源(RAW).文件系统或网络上数据流资源来播放音 ...

  10. ASP.NET Core 2.2 WebApi 系列【五】MiniProfiler与Swagger集成

    MiniProfiler 是一款性能分析的轻量级程序,可以基于action(request)记录每个阶段的耗时时长,还是可以显示访问数据库时的SQL(支持EF.EF Code First)等 一.安装 ...