Java 基础之数据类型
数据类型
为了能让计算机识别和有效的使用数据,需要将这些数据加以类别区分。在程序设计中,使用数据类型来标识一个数据是属于哪个类别的,且实现事物各种属性的数据都能找到与之匹配的类型。在 Java 中,数据类型可划分为简单类型和复合类型。
(1)简单类型:
- 整数类型: 没有小数部分的数为整数类型数据,如 255 ,1024 ,-101 等,根据占内存容量分为 byte、short、int、long 4 种。在数据后加 l 或 L 表示该数为 long 型,默认为 int 型;
- byte : 占一个字节,能表示范围为 -2^7 ~ 2^7 -1
- short: 占 2 个字节,能表示的范围为 -2^15 ~ 2^15 - 1
- int: 占 4 个字节,能表示的范围为 -2^31 ~ 2^31 - 1
- long : 占 8 个字节,能表示的范围为 -2^63 ~ 2^63 -1
2.浮点类型: 有小数部分的数为数为浮点类型数据,如255.0,1024.11,-10.00f 等,根据占用内存容量分为 float 和 double 两种。 在数据后加f 和 F 表示 float 型,加 d 或 D 表示该数据为 double 型,默认数据为 double 型。
- float : 占 4 个字节,能表示的范围大约为 ± 3.40282347E+38F (有效位数为 15 位)
- double: 占 8 个字节,能表示的范围大约为 ± 1.79769313486231570E+308(有效位数位数为 15 位)。
3.字符类型: char,用一对单引号括起来的单个字符,如 ’A‘ ’l‘ ’a‘
等,对于被系统所占用的一些字符,在程序中若要用到,必须使用转义字符 “\” 来完成。转义字符
如表 2-2 所示。
转义字符 | 名称 | 转义字符 | 名称 |
---|---|---|---|
\n | 换行 | \ | 反斜杠 |
\b | 退格 | " | 双引号 |
\r | 回车 | ’ | 单引号 |
\t | 制表 |
- 布尔类型: boolean,其中有两个值,即 true 和 false ;
- 数组类型: 一维数组、多维数组。
复合类型: 复合类型包括类(class)和接口(interface)。
变量与常量
在程序运行中,数据必须进入内存空间才能得到运算的机会,然而怎样去定义一个内存空间呢? 在内存管理上这是用地址来完成的,但在程序设计中,用内存地址来操作数据是很不方便的,因此可给该内存空间一个别名以方便记忆和使用。这一别名即可用做变量和常量。变量和常量的类型是与数据类型相对应的,即一个变量或常量仅是属于某一种数据类型的。
(1) 常量
常量是指在程序执行过程中其值不可发生变化的量。常量可分为整型常量,浮点数常量,字符常量,字符串常量和布尔常量。
- 整型常量:可分为 int 型和 long 型两种,缺省为 int 型, long 型数值后加 L 。 整型常量可用 10 、8 、16 进制表示,如:123
(十进制)、052(八进制)0x3c(十六进制); - 浮点数常量:有单精度和双精度之分,缺省为双精度,单精度在数值后加 f。另外,浮点数常量也可用普通计数法和科学计数法来表示,如
1.23f 、 1.1E-2。 - 字符常量: 用 ‘’ 括起来的一个字符,如 ’a‘、’H‘。
- 字符串常量用 “” 包括,如 “Hello World”。
- 布尔常量只有两个值,即 true 和 false。
声明常量的格式如下:
final 类型 常量名[,常量名] = 常量值,----------;
实例:
final String title1 = “尊敬的顾客,您这次的消费清单明细表如下:”;
final String title2 = " 名称 单价 数量 单项总计";
(2) 变量
- 变量的声明
变量是指在程序执行过程中其值可以发生变化的量,在使用时必须先声明。声明变量的格式如下:
类型 变量名 [, 变量名] [= 初值,…];
例如:
String name = “1. 小炒鱼”;
float price = 12.0f;
声明时也可不给初值,但应用前必须给初值,例如:
float numb;
int a,b; - 变量的作用范围:
声明变量后,该变量只能在特定的范围内使用。
在类中声明的变量为成员变量,在类的开始处声明,可在整个类中使用。
public class TestRange {
public static void main(String[] args) {
int x = 12; // 定义变量 x
int y; // 定义变量y
{
int q = 96; // x 和 q 都可用
int x = 3; // 错误对的定义,Java 中不允许有这种嵌套定义
System.out.println("x is" + x);
System.out.println("q is " + q);
System.out.println("y is " + y); // 未给初值
}
q = x; // q 不可用
int y = 0; // 重复定义 y,不正确
System.out.println("x is " + x); // x 可用
}
}
数据类型的转换
整型、实型和字符型数据可以混合运算。在运算过程中,不同的类型数据要先转换为同一类型的数据才能进行运算,其转换规则如下表:
原始类型 | 目标类型 | 原始类型 | 目标类型 |
---|---|---|---|
Byte | short,char,int,long,float,double | int | long,float,double |
Short | int,long,float,double | long | float,double |
char | int,long,float,double | float | double |
以上转换不会产生数据信息的丢失。
反向强制转换,但数据信息会因为存储位数的缩小而丢失,导致数据不正确。