第二章 Java 中的数据类型 本章知识要点 标识符 Java 注释 Java 数据类型 2.1 使用规范的标识符为变量命名: 2.1.1标识符命名规则: 在 Java 中,标识符用来为程序中的常量、变量、方法、类、接口和包命名 . Java 中的标识符有以下四种命名规则 :
1. 标识符由字母、数字、下划线 (_或美元符号 ($组成 . 2. 标识符的首字母由字母、下划线 (_或美元符号 ($开头,不能以数字开头 . 3. 标识符的命名不能与关键字、布尔值(true,false 和 null 相同。 4. 标识符区分大小写,没有长度限制,坚持见名知义的原则 . 2.1.2 关键字 :
关键字是 Java 语言保留的,为其定义了固定含义的特殊标识符 . 注意 :关键字全部为小写字母,程序员不能将关键字定义为标识符,否则出现编译错误 . Java 中定义的 48个关键字如下表所示 :
提示 : 见名知义的原则 : 是指在使用标识符命名时,要使用能反映被定义者含义或作用的字符。这样,其他人在阅读代码 时通过名称就可以对程序有所理解。 驼峰命名法就是当使用标识符命名时,如果是由一个或多个单词连接在一起,第一个单词以小写 字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,这样的变量名看上 去就像骆驼峰一样此起彼伏,故取名。如 fileName,username.
2.2 使用注释对代码进行解释说明 注释是程序开发人员和程序阅读者之间交流的重要手段,是对代码的解释和说明。好的注释可以 提高软件的可读性,减少软件的维护成本 .
在 Java 中,提供了 3种类型的注释 : 2.2.1 单行注释 单行注释指的是只能书写一行的注释,是最简单的注释类型,用于对代码进行简单的说明 .
当只有一行内容需要注释的时候,一般使用单行注释。在 Eclipse 中默认使用” Ctrl ” + “ /” , 可以快捷实现单行注释 .
单行注释的语法 : //单行注释 在语法中 单行注释使用“ //” 开头 . “ //”后面的内容都被认为是注释 . 注意:1. 单行注释不会被编译 2.“ //”不能放到被注释代码的前面,否则这行代码会被注释。 2.2.2 多行注释 当需要多行代码注释时使用多行注释符。 在 Eclipse 中,选中一行代码默认使用“ ctrl + shift + /”快捷键可以注释多行代码,多行注 释的语法 .
/** *多行注释 */ 在语法中: 1:多行注释使用” /*”开头,以” */”结尾 . 2:” /*和 */”之间的内容都被认为是注释。 例如下代码 : /* *HelloWorld.java *2017.2.15 *我的第一个 Java 程序 */ public class HelloWorld{ public static void main(String[] args{ } } 提示: 1. 注释简单来说就是一种说明,不被当成语句执行,可以增加代码的可读性 . 2. 单行注释添加方便、随处可以添加,只能作用于一行代码 . 2.2.3 文档注释 如果想为程序生成像 JDK 帮助文档一行的文件,可以在编写代码时是使用文档注释,使用 JDK 提 供的 javadoc 命令,将代码中的文档注释提取出来,自动生成一份 Html 格式的 api 帮助文档,其 风格与 Java 帮助文档完全一样,省去了枯燥、繁琐的手动编写帮助文档的工作。
在 Eclipse 中,输入” /**”,然后按 Enter 键, Eclipse 会自动显示文档注释格式 . 文档注释的语法 : /** *文档注释 */ 在语法中: 1. 文档注释使用“ /**”开头,以” */”结尾。 2. 每个注释包含一些描述性的文本及若干个文档注释标签。 3. 文档注释标签一般以” @”为前缀,常用的文档注释标签如下图所示 :
2.3 Java数据类型 2.3.1 了解 java 中的数据类型 Java 是强类型语言, 在定义变量前需要声明数据类型。 在 Java 中主要分为两种数据类型:基本数 据类型和引用数据类型 .
1. 基本数据类型如下图所示 : 基本数据类型 : 数值型: 整数类型 (byte,short,int,long 浮点类型 (float,double 字符型 :(char 布尔类型 (boolean
注意 : 1.char 类型占 2字节,采用 Unicode 码 . 2.byte 类型占 1字节,是整数类型的一种。 3. 所有的数据类型长度固定,不会因为硬件、软件系统不同而发生变化。 4.String 类型不是基本数据类型,而是引用数据类型,它是 Java 提供的一个类 . 2. 引用数据类型 Java 中的引用数据类型如下图所示 : 引用数据类型:类 (class 接口 (interface 数组 提示 :数组是最简单的一种引用数据类型,类和接口是面向对象语言提供的类型 .
2.3.2 常量 常量是在程序运行中,值不能给改变的量 . 1. 整型常量 整型常量有以下 3种表示方式 : (1十进制方式表示 (2八进制方式表示 (3十六进制方式表示 例如: 789 //十进制 077 //八进制 0X12 //十六进制 . 2. 浮点型常量 (1float(32bit 例如 : 3.4f -45.9F 注意:java 的浮点型默认是 double ,float需要在数字后面加大写的” F ”或小写的” f ” .
(2double(64bit 例如: 3.4 3.4d 3. 布尔常量 例如: true false 4. 字符常量 1 普通字符常量 例如 : „ A ‟ „ 8‟ 2 转移字符常量 例如 : „ \n‟ ://表示换行 „ \t‟ ://表示按 tab 键 „ \b‟ ://表示按退格键 3 特殊字符常量 例如 : „ \\‟ //反斜杠 „ \‟‟ //单引号 „ \”‟ //双引号 4 字符串常量 例如 : “我的中国” “ A ” 要注意字符串和字符的区别,字符用单引号,字符串用双引号。 5null 常量 例如 : null null 常量只有 null 一个值 , 可以把 null 常量赋给人以类型的引用类型变量 . 6 符号常量 final double PI = 3.14; final 取义为 finally, 含义是最终的,代表了不在改变 . 2.3.3 变量 变量是在程序运行中,值可以改变的量 . 变量的语法 : [修饰符 ] 变量类型 变量名 [=初始值 ]; 例如 : char ch =97; int nh=‟ A ‟ ; 2.5 基本数据类型之间的转换形式 为了适应开发的需要, 经常会出现不同的基本数据类型的数据, 相互转换的情况。 这种 转 换有精度不同带来的精度损失问题, 也有浮点数到整数转换带来的小数位丢失问题, 我们 现 在就来讨论一下基本数据类型的转换行为和其转换原理。 注意: boolean 是一种比较特殊的类型,这种类型不允许和其他数据类型进行相互转 换。 2.5.1 自动转换 类型转换示意图: byte short int long float double char 图2-2 在上图2-2 中简单描述了各基本数据类型的自动转换方向。 所谓的自动转换是指从相应 的一种类型值转换另一种类型值时,不需要开发人员进行特殊的设置。例如代码2-3 1 2 3 4 5 6 7 8 9 10 11 12 13 } public class TestConvert { public static void main(String[] args { byte b=10; //定义一个byte 类型的变量b short s=b; //将一个byte 类型的变量b 赋于short 变量s,自动转换 //将 short 类型的s 自动转换赋于int 类型的i 变量 int i=s; long l=i; //将int 类型的i 自动转换赋于long 类型的l 变量 float f=l; //将long 类型的l 自动转换赋于float 类型的f 变量 double d=f; //将float 类型f 自动转换赋于double 类型的d 变量 char c='a'; int ic=c; //将char 类型的c 自动转换赋于int 类型的ic 变量 } 代码2-3 注意:将 int 类型和 long 类型转换成 float 类型时可能出现精度损失,如代 码 2-4
1 2 3 4 5 6 7 public class TestConvert2{ public static void main(String[] args { int i=123456789; //定义一个int 类型变量i float f=I; //自动转换int 类型i 到float 类型变量f System.out.println(i+”:”+f; } } 代码 2-4 代码2-4 的输出结果:123456789 : 1.23456792E8。 2.5.2 强制转换 1自动类型转换 将低级别的类型赋值给高级别类型时,将进行自动类型的转换。 例如: byte b = 7; int i = b; //b 自动转换成 int 类型。 byte 级别比 int 低,所以进行自动类型转换,其转换过程如下所示: 2强制类型转换 将高级别的类型赋值给低级别类型时,必须进行强制类型转换。 eg: int num = 786; byte by = num; //错误 byte by = (bytenum; //正确为强制类型转换 short st = num; //错误
short st =(shortnum; //正确为强制类型转换 byte 和 short 级别比 int 低,所以必须进行强制类型转换. byte by=(byte num;强制类型转换过程如下所示: 注意:强制类型转换时,可能会丢失数据。Byte 强制类型转换为 int 时,int 的低位第一个字 节中的数据 0000 0011 在强制类型转换过程中会丢失。 提示:不经基本数据类型可以进行类型转换,存在继承关系的引用数据类型也可以进行自动或 强制类型转换. 小结 本章内容旨在初步了解 Java 的数据类型, 并分析了基本数据类型和引用数据类型的区 别。 在最后一个小结中提到的概念和知识点, 作者会在后续的章节进行再次详细的讨论和使 用相 应实例进行论证。