IT兄弟连 Java语法教程 数据类型2
整型
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的更多相关文章
- IT兄弟连 Java语法教程 数据类型3
字符型 在Java中,用于存储字符串的数据类型是char.然而,C/C++程序员要当心:Java中的char与C或C++中的char是不同的.在C/C++中,char的宽度是8位.而在Java中不是这 ...
- IT兄弟连 Java语法教程 数据类型1
Java是强类型化的语言 Java是一种强类型话的语言,在开始时指出这一点是很重要的.实际上,Java的安全性和健壮性正是部分来自这一事实.强类型意味着什么呢?首先,每个变量都具有一种类型,每个表达式 ...
- IT兄弟连 Java语法教程 数据类型 进制转换
● 正十进制转换为二进制 拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则写0.如: 34 = 32 + 2 128 64 32 16 8 4 2 1 0 0 1 0 ...
- IT兄弟连 Java语法教程 标识符和关键字
Java语言也和其它编程语言一样,使用标识符作为变量.对象的名字.也提供了一系列的关键字用以实现特别的功能.本小节将详细介绍Java语言的标识符和关键字等内容. 1.分隔符 Java语言里的分号“;” ...
- IT兄弟连 Java语法教程 变量1
什么是变量 在Java程序中,变量是基本的存储单元.是在程序运行中值可以改变的一块内存区域.变量是通过标识符(变量名).变量类型及可选的初始化器来定义的,此外,所有的变量都有作用域,作用域定义了变量的 ...
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- IT兄弟连 Java语法教程 数组 数组的初始化
Java语言中数组必须先初始化,然后才可以使用.所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值. 这时有人会问,能不能只分配内存空间,不赋初始值呢?答案是肯定不行的,一旦为数组 ...
- IT兄弟连 Java语法教程 流程控制语句 循环结构语句1
循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循 ...
- IT兄弟连 Java语法教程 注释与编码规范
在程序代码中适当地添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面将介绍Java中的集中代码注释以及应该注意的编码规范. 代码注释 通过在程序代码中添加注释可提高程序 ...
随机推荐
- 12.2 中的Data Guard Standby 密码文件自动同步 (Doc ID 2307365.1)
Data Guard Standby Automatic Password file Synchronization in 12.2 (Doc ID 2307365.1) APPLIES TO: Or ...
- Linux禁用root用户
在创建各种云主机的时候,云服务商给的都是root用户,这很方便,但是有某些时候会造成一些困扰,日后在服务器上启动各种服务后,仅仅拥有root权限的用户才能访问更改这些服务,这样会造成一些不必要的困扰, ...
- 关于eclipse的maven项目Java Build Path中maven依赖报错问题
场景描述: respository仓库位置变动过,代码注解等报错 解决方法: 选中项目,点击maven ->update Project即可.
- RN调试坑点总结(不定期更新)
前言 我感觉,如果模拟器是个人的话,我已经想打死他了 大家不要催我学flutter啦,哈哈哈,学了后跟大家分享下 RN报错的终极解决办法 众所周知,RN经常遇到无可奈何的超级Bug, 那么对于这些问题 ...
- dotnet core 调用electron来开发UI的探索
先上仓库地址 https://github.com/lightszero/webwindow.netcore dotnet core 很喜欢,问题dotnet core 不包含GUI,经过一些尝试,觉 ...
- Linux中长时间运行程序的方法
一.场景: 如果临时有一个命令需要长时间运行,比如 python hello.py ,什么方法能最简便的保证它在后台稳定运行呢?解决方法: 当用户注销(logout)或者网络断开时,终端会收 ...
- 腾讯短信+SpringBoot+Redis实现注册逻辑
使用redis做缓存实现用户的注册功能: 异步请求发送短信,给 发送短信的按钮 绑定异步事件 调用发送短信逻辑发送短信 缓存 key1:验证码 缓存 key2:短信发送时刻的时间 用户提交表单 包含用 ...
- ASP.NET Core 2.2 WebApi 系列【九】使用SignalR
1.添加 SignalR 客户端库 右键点击项目->然后选择“添加” >“客户端库” 提供程序选择:unpkg ,库选择:@aspnet/signalr@1.1.4 选择“选择特定文件” ...
- 使用dom4j类操作xml文档
dom4j操作xml数据 1.Document对象相关 ①读取XML文件,获得document对象. SAXReader reader = new SAXReader(); Document docu ...
- 《跟我学shiro》
张开涛<跟我学shiro>博客系列: Shiro目录 第一章 Shiro简介 第二章 身份验证 第三章 授权 第四章 INI配置 第五章 编码/加密 第六章 Realm及相关对 ...