一、变量入门
1、变量概述
- 变量的三个基本要素:类型、名称、值
2、变量使用
- 先声明,声明并赋值
int a;
a = 1;
- 声明并赋值
int a = 1;
3、变量注意事项
-
变量表示内存中的一个存储区域,不同数据类型的变量,占用的空间大小不同
-
存储区域包含变量名和数据类型
-
变量必须先声明,后使用
-
存储区域的数据可以在同一数据类型范围不断变化
-
变量在同一作用域内不能重名
二、加号的使用
- 左右两边都是数值型时,做加法运算
1 + 1 = 2
- 左右两边只要有一边是字符型,做拼接运算
1 + "1" = "11"
1 + "" = "1"
三、数据类型
1、数据类型概述
- Java 数据类型分为基本数据类型和引用数据类型
2、基本数据类型
(1)基本介绍
数据类型 | 说明 | 最小值 | 最大值 | 默认值 |
---|---|---|---|---|
byte | 1 个字节,8 位,有符号的 | -2^7 | 2^7 - 1 | 0 |
short | 2 个字节,16 位,有符号的 | -2^15 | 2^15 - 1 | 0 |
int | 4 个子节,32 位,有符号的 | -2^31 | 2^31 - 1 | 0 |
long | 8 个子节,64 位,有符号的 | -2^63 | 2^63 - 1 | 0L |
float | 4 个子节,32 位 | ? | ? | 0.0F |
double | 8 个子节,64 位 | ? | ? | 0.0 |
char | 2 个字节,16 位,存放单个字符 | ‘u0000’ | ‘uffff’ | ‘u0000’ |
boolean | 1 位,存放 true 或 false | 无 | 无 | false |
(2)整数类型细节
-
Java 的整数类型常量默认为 int 类型
-
声明 long 类型常量须后加 l(小写)或 L(大写),推荐使用 L
long num1 = 10000l;
long num2 = 10000L;
(3)浮点类型细节
-
Java 的浮点类型常量默认为 double 类型
-
声明 float 类型常量须后加 f(小写)或 F(大写),推荐使用 F
float num1 = 10000.0f;
float num2 = 10000.0F;
- 浮点数使用陷阱
double num = 8.1 / 3; // 不等于 2.7,结果是一个接近于 2.7 的浮点数
(4)字符类型细节
- 字符必须用单引号(‘’)包裹,双引号(“”)包裹表示 String 字符串
char c = "a"; // 报错
-
char 本质是一个整数,是 Unicode 码对应的字符,可以直接给 char 赋一个整数
-
char 类型可以进行运算,相当于使用对应 Unicode 码进行整数运算
(5)自动类型转换
-
Java 程序在进行赋值或运算时,精度小的数据类型自动转换为精度大的数据类型
-
有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度为其中最大的数据类型,再进行运算
-
把精度大的数据类型直接赋值给精度小的数据类型会报错,需要使用强制类型转换
-
byte / short 和 char 类型之间不会相互自动转换
-
byte、short、char 类型三者进行运算时精度提升为 int 类型
-
boolean 类型不参与自动类型转换
-
自动提升原则:表达式结果的类型自动提升为操作数中精度最大的类型
(6)强制类型转换
- 自动类型转换的逆过程,将精度大的数据类型转换为精度小的数据类型,但可能造成精度降低或溢出,需要使用强制转换符(())
int i = (int)1.5;
-
强制转换符只针对最近的操作数有效
-
char 类型可以保存 int 的常量值,但不能保存 int 的变量值,需要使用强制类型转换
(7)9、基本数据类型和 String 类型转换
- 基本数据类型转 String 类型
String str = 100 + "";
- String 类型转基本数据类型
// String 类型转 boolean 类型
boolean b = Boolean.parseBoolean("true");
// String 类型转 byte 类型
byte num1 = Byte.parseByte("123");
// String 类型转 short 类型
short num2 = Short.parseShort("123");
// String 类型转 int 类型
int num3 = Integer.parseInt("123");
// String 类型转 float 类型
float num4 = Float.parseFloat("123");
// String 类型转 double 类型
double num5 = Double.parseDouble("123");
// String 类型转 char 类型
char c = "123".charAt(0);
(8)基本数据类型和 String 类型转换细节
- 在将 String 类型转换成基本数据类型时,要确保 String 类型能转换成有效的数据,格式不正确,会抛出异常
int num1 = Integer.parseInt("123"); // √
int num2 = Integer.parseInt("hello"); // ×
3、引用数据类型
-
类:class
-
接口:interface
-
数组:[]
-
枚举:enum
-
注解:Annotation