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中的集中代码注释以及应该注意的编码规范. 代码注释 通过在程序代码中添加注释可提高程序 ...
随机推荐
- 本地库还原至阿里云RDS服务器
在此也感谢阿里云售后兄弟的支持.全文参考 https://help.aliyun.com/document_detail/95738.html? 1. 首先得要有个阿里云账号,已经购买RDS数据库(本 ...
- diango中的MTV——FBV/CBV以及装饰器的复用问题解决
MVC M: model 模型 与数据库交互 V: view 视图 HTML C:controller 控制器 流程 和 业务逻辑 MTV M:model ORM T:template 模板 HTML ...
- Java之String类
String类概述 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例.其实就是说:程序当中所有的双引 ...
- [译]Vulkan教程(01)入门
[译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“d ...
- java之instanceof操作符
a intanceof A:判断a是否是类A的的一个实例,返回值为boolean public class Person extends Object{} public class Student e ...
- [Spring cloud 一步步实现广告系统] 9. 主类和配置文件
搜索系统启动主类 /** * AdSearchApplication for 广告搜索服务启动类 * * @author <a href="mailto:magicianisaac@g ...
- springcloud Springboot vue.js Activiti6 前后分离 跨域 工作流 集成代码生成器 shiro权限
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- javaweb 复习随笔
js和jsp区分: js是一种脚本语言,常运行在前台和客户端交互,不会给服务器带来负担,可以更好的修饰静态页面 jsp可以说是servlet的一种,jsp会先翻译,翻译成Servlet执行,运行在服务 ...
- 父子间的通信,以及ref
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- QT防止程序多次启动
Question:最近在linux下作的一个项目,设置了crontab自启动,但是经常出现启动多个进程的原因,针对这种情况,我做了如下处理: QLockFile *lockFile = new QLo ...