整型

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. 本地库还原至阿里云RDS服务器

    在此也感谢阿里云售后兄弟的支持.全文参考 https://help.aliyun.com/document_detail/95738.html? 1. 首先得要有个阿里云账号,已经购买RDS数据库(本 ...

  2. diango中的MTV——FBV/CBV以及装饰器的复用问题解决

    MVC M: model 模型 与数据库交互 V: view 视图 HTML C:controller 控制器 流程 和 业务逻辑 MTV M:model ORM T:template 模板 HTML ...

  3. Java之String类

    String类概述 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例.其实就是说:程序当中所有的双引 ...

  4. [译]Vulkan教程(01)入门

    [译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“d ...

  5. java之instanceof操作符

    a intanceof A:判断a是否是类A的的一个实例,返回值为boolean public class Person extends Object{} public class Student e ...

  6. [Spring cloud 一步步实现广告系统] 9. 主类和配置文件

    搜索系统启动主类 /** * AdSearchApplication for 广告搜索服务启动类 * * @author <a href="mailto:magicianisaac@g ...

  7. springcloud Springboot vue.js Activiti6 前后分离 跨域 工作流 集成代码生成器 shiro权限

    1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...

  8. javaweb 复习随笔

    js和jsp区分: js是一种脚本语言,常运行在前台和客户端交互,不会给服务器带来负担,可以更好的修饰静态页面 jsp可以说是servlet的一种,jsp会先翻译,翻译成Servlet执行,运行在服务 ...

  9. 父子间的通信,以及ref

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. QT防止程序多次启动

    Question:最近在linux下作的一个项目,设置了crontab自启动,但是经常出现启动多个进程的原因,针对这种情况,我做了如下处理: QLockFile *lockFile = new QLo ...