Java 学习笔记(三)数据类型
数据类型
程序中的数据分为不同的类型,如:整数,小数,字符,布尔,字符串等。不同类型的数据在内存中的存储方式不同,数据的取值方式不同,允许的操作也不同。
数据类型的分类
Java 的数据类型可以分为两大类,分别是基本类型和引用类型
基本类型包括:整数,小数,字符,布尔
引用类型包括:类,接口,数组,枚举,注解
基本类型
基本数据类型,总共有四类,八种
整数类型,包括:
byte
,short
,int
,long
4 种
| 类型 | 占用存储空间 | 存储范围 |
| ------- | ------------ | ---------------------- |
| byte
| 1 字节 | -128~127 |
| short
| 2 字节 | -32768~32767 |
| int
| 4 字节 | -2147483648~2147483647 |
| long
| 8 字节 | -263 ~ 263 -1 |
- 所有的整数值,默认为 int
类型
- 在对 byte
和 short
类型赋值时,会先判断该值是否超出 int
类型的取值范围,如果超了,会报错,如果没有超出,会再判断该值是否超出了 byte
或者 short
的取值范围,如果超了,会报错,如果没超,则赋值成功
- 在对 long
类型赋值时,会先判断该值是否超出 int 类型的取值范围,如果没超,会赋值成功;如果超了,会报错,需要在该值后面加上 L
浮点类型
| 类型 | 占用存储空间 | 精度 |
| -------- | ------------ | ------------- |
| float
| 4 字节 | 7 位有效数字 |
| double
| 8 字节 | 15 位有效数字 |
- 浮点类型的值默认为 double
类型
- 在对 float
类型赋值的时候,需要在该值后面加上 f
或者 F
字符类型
| 类型 | 占用存储空间 | 存储范围 |
| ------ | ------------ | -------- |
| char
| 2 字节 | 0~65535 |
- 字符类型只能存放一个字符,并且使用英文的单引号引起来
- 整数类型和字符类型可以相互赋值
```java
class Example01 {
public static void main(String[] args) {
// char 类型可以存放字母,中文,数字类型的字符
char cr = 'a';
cr = '汉';
cr = '5';
/*
整数类型和字符类型可以相互赋值
ASCII:
'a':97, 'b':98...
'A':65, 'B':66...
'0':48, '1':49...
*/
cr = 100;
// 输出结果:d
System.out.println(cr);
cr = 65;
// 输出结果:A
System.out.println(cr);
int i = 1;
i = 'A';
// 输出结果:65
System.out.println(i);
}
}
```
布尔类型
- 布尔类型 boolean
占一个字节
- 有且只有两个取值:true
和 false
###### 基本类型转换
除了 boolean
类型之外,其他 7 中数据类型之间是可以相互转换的
当取值范围小的类型给取值范围大的类型赋值,则构成自动类型转换
当取值范围大的类型给取值范围小的类型赋值,则需要进行强制类型转换
short
和char
之前需要强转当对
byte
short
char
类型赋值时,没有超出当前数据类型取值范围,可以直接赋值当对
byte
short
char
类型进行混合运算时,会先转为int
类型,再进行计算当多种类型进行混合运算时,结果为当前计算中取值范围大的类型
运算符
算术运算符
加 +
减 -
乘 *
除 /
求余 %
自加 1 ++
自减 1 --
++
和 --
都分为前置和后置,前置是先自身加/减,再进行运算;后置是先进行运算,再进行自身加/减
赋值运算符
=
+=
-=
*=
/=
%=
关系运算符
>
<
>=
<=
==
!=
关系运算符,如果满足条件,则返回结果为 true
逻辑运算符
逻辑与
&
表示并且,同时
- 当两个条件都为真,则结果为真
逻辑或
|
表示或者
- 当有一个条件为真,则结果为真
逻辑异或
^
- 当两个条件的结果不相同,则结果为真
逻辑非
!
- 对结果取反
短路与
&&
表示并且,同时
- 当第一个条件为假,则结果为假,不再判断第二个条件
短路或
||
表示或者
- 当第一个条件为真,则结果为真,不再判断第二个条件
三目运算符
语法格式:条件 ? 代码 1 : 代码 2
执行流程:如果条件成立,执行代码 1,如果条件不成立,执行代码 2
使用场景:需要根据条件从两种结果当中选择其中一个的时候
评论