章节
- Java 基础
- Java 简介
- Java 环境搭建
- Java 基本语法
- Java 注释
- Java 变量
- Java 数据类型
- Java 字符串
- Java 类型转换
- Java 运算符
- Java 字符串
- Java Math
- Java 布尔运算
- Java If … Else
- Java Switch
- Java While 循环
- Java For 循环
- Java Break 与 Continue
- Java 数组
- Java 异常
- Java 方法
- Java 类与对象
- Java 类、对象
- Java 类的属性
- Java 类方法
- Java 构造函数
- Java 修饰符
- Java 封装
- Java 包
- Java 继承
- Java 多态
- Java 内部类
- Java 抽象
- Java 接口
- Java 枚举
- Java 用户输入/Scanner
- Java 日期与时间
- Java ArrayList
- Java HashMap
- Java 包装类
- Java 文件
Java 数据类型
如前一章所述,Java中必须为变量指定数据类型:
示例
int myNum = 10; // 整型
float myFloatNum = 9.33f; // 浮点型
char myLetter = 'A'; // 字符型
boolean myBool = true; // 布尔型
String myText = "Hello"; // 字符串型
数据类型可分为两组:
- 基本数据类型 - 包括
byte
,short
,int
,long
,float
,double
,boolean
与char
- 非基本数据类型 - 例如字符串、数组和类(后面的章节中将详细介绍)
基本数据类型
基本类型指定了变量值的类型和占用内存空间大小,基本类型不包含方法。
Java中有8种基本数据类型:
数据类型 | 内存空间 | 描述 |
---|---|---|
byte | 1 byte | 存储从-128到127的整数 |
short | 2 bytes | 存储从-32,768到32,767的整数 |
int | 4 bytes | 存储从-2,147,483,648到2,147,483,647的整数 |
long | 8 bytes | 存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整数 |
float | 4 bytes | 存储3.4e-038到3.4e+038之间的小数。可以存储6到7位小数 |
double | 8 bytes | 存储从1.7e-308到1.7e+038的小数。可以存储15位小数 |
boolean | 1 bit | 存储真值或假值 |
char | 2 bytes | 存储单个字符/字母或ASCII值 |
数字
基本数字类型分为两组:
- 整数类型存储整数,正数或负数(如123或-456),没有小数。有效类型有
byte
,short
,int
与long
。应该使用哪种类型取决于数值。 - 浮点类型表示有小数的数字,包含一个或多个小数。有两种类型:
float
和double
。
尽管Java中有许多数字类型,但是最常用的是
int
(表示整数)和double
(表示双精度浮点数)。
整型
byte
字节/Byte类型可以存储-128到127之间的整数。当数值确定在-128和127之间时,可以使用它代替int或其他整数类型,可以节省内存:
示例
byte myNum = 100;
System.out.println(myNum);
short
短整型/Short可以存储-32768到32767之间的整数:
示例
short myNum = 5000;
System.out.println(myNum);
int
整型/int可以存储-2147483648到2147483647之间的整数。通常,要使用整数时,int类型是首选的。
示例
int myNum = 100000;
System.out.println(myNum);
long
长整型/long可以存储-9223372036854775808到9223372036854775807之间的整数。当int不够大无法存储值时,可以使用这种类型。注意,长整型数值应该以l
结尾:
示例
long myNum = 15000000000L;
System.out.println(myNum);
浮点型
需要表示小数(如9.99或3.14515)时,应该使用浮点类型。
float
浮点类型/float可以存储3.4e-038到3.4e+038之间的小数。注意,浮点型数值以f
结尾:
示例
float myNum = 5.75f;
System.out.println(myNum);
double
双精度型/double可以存储1.7e-308到1.7e+038之间的小数。注意,双精度型应该以d
结尾:
示例
double myNum = 19.99d;
System.out.println(myNum);
使用浮点数还是双精度型?
浮点数精度表示小数点后可以有多少位数字。浮点型的精度只有六七位数,而双精度型的精度约为15位数。因此,在大多数计算中使用double更安全。
科学计数
浮点型与双精度型也可以用科学计数法表示,用e
表示10的幂:
示例
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);
boolean
布尔/Boolean类型是用boolean
关键字声明的,只能取真或假值:
示例
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Outputs true
System.out.println(isFishTasty); // Outputs false
布尔值主要用于条件测试,后面章节中会有更多介绍。
char
字符/char类型用于存储单个字符。字符必须用单引号括起来,如'A'或'B':
示例
char myGrade = 'B';
System.out.println(myGrade);
也可以使用ASCII值来显示某些字符:
示例
char a = 65, b = 66, c = 67;
System.out.println(a);
System.out.println(b);
System.out.println(c);
提示: ASCII值的列表可参考资料。
String
字符串/String类型用于存储字符序列(文本)。字符串值必须用双引号括起来:
示例
String greeting = "Hello World";
System.out.println(greeting);
Java中,字符串类型被广泛使用,有些人称之为“特殊的第九种类型”。
Java中的字符串实际上是一种非基本类型,从技术上讲,字符串引用了一个对象。字符串对象具有操作字符串的方法。关于“对象”这个术语以及字符串,后续章节会有更多介绍。
非基本类型
非基本类型也称为引用类型,因为它们引用对象。
基本类型和非基本类型的主要区别是:
- 基本类型是在Java中预定义的(已经定义)。非基本类型由程序员创建,Java不定义(字符串除外)。
- 非基本类型可用于调用方法来执行某些操作,而基本类型不能。
- 基本类型总是有一个值,而非基本类型可以为null。
- 基本类型以小写字母开始,而非基本类型以大写字母开始。
- 基本类型的大小取决于数据类型,而非基本类型具有相同的大小。
非基本类型的例子有字符串、数组、类、接口等。在后面的章节中,将探讨更多相关内容。