《Java 7程序设计入门经典》一2.2 Java的基本数据类型

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.2节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.2 Java的基本数据类型

Java包括两大类内置的数据类型:面向对象的数据类型和非面向对象的数据类型。Java中面向对象的数据类型由类定义,在后面会有类的介绍。但是,Java的核心是8种基本数据类型(也称元素数据类型或简单数据类型),如表2-1所示。这里使用“基本”(primitive)这个词来表示,从面向对象的角度看,这些类型不是对象,而是普通的二进制值。出于有效性,这些基本数据类型不是对象。
image

Java为每个基本数据类型严格指定范围和行为。所有Java虚拟机都必须支持这些。因为Java的可移植性需求,Java在这方面的要求是强制的。例如,int类型在所有执行环境中必须都是一样的。这使得程序完全可移植。没有必要为特定的平台重新编写代码。尽管在某些环境下,严格指定基本数据类型的范围会引起一些性能损失,但为了获得可移植性,这么做是值得的。

2.2.1 整数

Java定义了4种整数类型:byte、short、int和long。现列举如下:
image

正如上表所示,所有的整数类型都是有符号的,它们可正可负。Java不支持无符号的整数(即非负的整数)。许多其他计算机语言同时支持有符号的和无符号的整数。但是,Java的设计者认为,无符号整数是不必要的。
注意:从技术上说,Java的运行时系统可以用任何大小来存储一个基本数据类型。但是,在任何情况下,该类型都应按规定运行。
最常见的整数类型是int类型。int类型的变量经常用于控制循环、标记数组索引、执行一般意义的整数数学运算。
在需要比int范围更大的整数时,可使用long类型。例如,下面是一个计算在1英里× 1英里×1英里大小的立方体里有多少立方英寸的程序:
image
image

注意,1英里相当于5?280英尺。于是,为了计算在一立方英里有多少立方英寸,首先给出一英里里有多少英寸,然后再将这个值取立方。程序的输出如下所示:
image

显然,这么大的数无法用int类型的变量来表示。
最小的整数类型是byte类型。byte类的变量在对原始的二进制数据进行操作时特别有用。原始的二进制数据也许不能由Java其他的内置类型直接支持。类型short创建一个短整形。short类型的变量在想要节约内存时比较合适,因为它不需要像int类型那样大的范围。
image

2.2.2 浮点类型

正如第1章介绍的那样,浮点类型可以表示含有小数部分的数。有两类浮点数:float和double,分别表示单精度和双精度数。float类型是32位宽,double类型是64位宽。它们大小的不同意味着,float类型的字面量最大约为3.4×1038,double类型的字面量最大约为1.8×10308。
在以上两种类型中,类型double是最常用的,因为Java类库中所有的数学函数都用double值。例如,定义在标准Math类中的sqrt()方法返回一个double值,它是double类型参数的平方根。这里,sqrt()方法在给定两条直角边的长度的情况下,用来计算直角三角形的斜边。
image

程序输出如下所示:
image

在上述示例中还有一个注意点:正如上面介绍的那样,sqrt()方法是标准类Math的一个成员。请注意sqrt()的调用方法:它之前有类名Math。这与println()之前有对象名System.out相似。尽管不是所有的标准方法在调用时都要指定类名,但是有许多是这样的。

2.2.3 字符

Java不像那些使用8位量来表示字符的计算机语言。与其不同,Java使用16位来表示字符。其不同的原因在于Java支持Unicode字符。Unicode定义了可以表示所有人类语言中字符的字符集。最初,Unicode设计为16位,所以Java将char类型设计为16位长。在Java中,char类型是一个无符号的16位数,其取值范围为0到65?535。标准8位的ASCII字符集是Unicode字符集的子集,其范围为0~127。于是,ASCII字符在Java中仍然是有效字符。(ASCII表示美国信息交换标准代码(American Standard Code for Information Interchange)。)
可以把一个由单引号包裹的字符赋予一个字符变量。例如,若把字符X赋予字符变量ch:
image

可以用println()语句输出char值。例如,下面这行代码输出ch的值:
image

由于char是一个无符号的16位类型,因此可以在char变量上执行算术运算。例如,考虑以下程序:
image
image

程序的输出如下所示:
image

在程序中,首先把值X赋予ch。然后递增ch的值。结果是,ch包含Y,它是在ASCII(和Unicode)字符集序列中的下一个值。接着,给ch赋值90。在ASCII(或Unicode)字符集中,90对应字符Z。因为ASCII字符集占据了Unicode字符集中的前127个值,所以在其他语言中用到的那些字符伎俩在Java中同样适用。
image

2.2.4 布尔类型

类型boolean表示真值或假值。Java用保留字true和false定义真值和假值。于是,一个boolean类型的变量或表达式一定是这两个值之一。
下面的程序演示了boolean类型的用法:
image
image

程序的输出如下所示:
image

这个程序有三个令人感兴趣的要点:首先,当用println()方法输出一个boolean值时,显示“true”或“false”。其次,boolean变量的值本身足够用来控制if语句。不需要写像这样的if语句:
image

最后,关系运算符(例如“<”)的结果是boolean值。这是表达式10>9显示为true的原因。另外,10>9的外面有一对圆括号。这对圆括号是必需的,因为运算符“+”比运算符“>”有更高的优先级(precedence)。当一个运算符比其他运算符具有更高的优先级时,它会比同一表达式中的其他部分先计算。
image

image
image

相关文章
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
302 13
|
8月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
375 2
|
8月前
|
Java Go 开发工具
【Java】(2)Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述
数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。例如:十进制例如:二进制计算机在任何情况下都只能识别二进制。
411 1
|
9月前
|
安全 Java
使用Java多态性进行数据类型转换
以上示范了如何通过多态性来执行安全有效地对于Java对象间相互之间进行正确方式与场合下正确格式与条件限定内对于各个层级关系内部成员及其功能调取与应有操作处理过程,并通过 `instanceof`关键字确保了程序运行期间遵循逻辑合理并符合预设规则条件限定内正常工作流程而无需担忧潜藏风险问题出现可能带来影响结果质量问题情况存在可能。
267 12
|
10月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
11月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
387 0
|
Java C语言 C++
课时9:Java数据类型划分(数据类型划分)
课时9介绍了Java的数据类型划分及其操作。Java数据类型分为基本数据类型和引用数据类型。基本数据类型包括八种:数值型(整形、浮点型)、字符型和布尔型;引用数据类型有数组、类和接口。重点讲解了每种数据类型的默认值、适用场景及选择原则,如整数用int,小数用double,日期时间用Long等。掌握这些内容对编程至关重要。
334 4
课时9:Java数据类型划分(数据类型划分)
课时12:Java数据类型划分(字符型)
课时12介绍了Java中的字符型数据(char),包括字符的定义、与int类型的转换及应用。通过范例展示了如何观察字符、编码转换、大小写字母互转、保存中文字符,以及Java中字符处理的灵活性。字符型使用单引号声明,可与int互相转换,支持Unicode编码,能表示任何文字,包括中文。虽然实际开发中直接操作字符型的情况不多,但理解其特性有助于更好地编程。
340 17
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
583 15
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
437 9