1、分类
(1)基本数据类型(8种)
整型 | byte | short | int | long |
---|---|---|---|---|
1 | 2 | 4 | 8 |
小数 | float | double |
---|---|---|
4 | 8 |
字符 | char |
---|---|
2 |
布尔 | boolean |
---|---|
2 |
(2)引用数据类型
String 数组 类 接口
2、注意
(1)在32或者64位机器上,int都占4字节,long都占8字节
(2)整型和浮点型都带有符号
(3)整型默认类型是int,浮点型默认类型是double
(4)字符串属于引用类型
3、变量
(1)定义时给出初始值
int a = 10;
定义时没有给出初始值,但使用前必须设置初值
int a;
a = 8;
(2)包装类型
int的包装类型是Integer
long的包装类型是Long
short的包装类是Short
byte的包装类型是Byte
float的包装类型是Float
double的包装类型是Double
char的包装类型是Character
boolean的包装类型是Boolean
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
(3)整型类型
初始化long 的时候在数值后加l或者L,推荐加L
long a = 1000L;
//long a = 1000l;
而byte定义时可以直接写不用加后缀
byte b = 1;
(4)浮点类型
整数与整数相除只能得到整数
int a = 1;
int b = 2;
System.out.println(a/b);
//结果打印是0
要想除出来是整数,就应该至少一个数是浮点型
double a = 1.0
double b = 2.0;
System.out.println(a/b);
//方法二
float初始化时必须要写明f,不然直接定义默认为double
float a = 2.3f;
(5)布尔类型
· 只存在true或者false两种
· 没有明确规定boolean占几个字节
boolean flg true;
布尔类型不存在1表示true,0表示false
(5)字符型变量
char a = 'A';
char b = '五';
4、类型转换
(1)自动(隐式)类型转换
表示范围更小的类型能隐式转换成范围大的类型
byte->short->int->long->float->double
char->int
int a = 100;
long b = 100L;
(2)强制类型转换
· 转换前提是同种数据类型或者关联数据类型
· 当范围大的类型转换成范围小的类型时,需强制类型转换,可能会精度丢失
注意:在类型转换提升中:
1、大类型和小类型进行运算时,小类型会自动转换成大类型
2、低于两个字节的变量进行运算时,首先会提升成四个字节的int再进行运算
第一种
long a = 10L;
int b = 24;
//报错写法
int c = a + b;
//第一种写法
long c1 = a + b;
//第二种写法:可能会有精度损失
int c2 = (int)(a+b);
第二种
byte a = 10;
byte b = 20;
//报错写法:低于两个字节的变量进行运算时,首先会提升成四个字节的int再进行运算
byte f = a + b;
//第一种写法
int f1 = a + b;
//第二种写法
byte f2 = (byte)(a + b);
5、字符串类型
(1)C语言中字符串以’\0’结尾,而Java中就只有字符(因为Java中储存字符串的底层就是数组)
String str = 'hello';
System.out.println(str);
(2)求字符串的长度
System.out.println(str.length());
(3)字符串的拼接
当string类型与其他类型用’+’相连时,其他类型自动转换成string类
int a = 10;
int b = 20;
System.out.println("a + b = "+a+b);
//结果是:a + b = 1020;
System.out.println(a+b + "a + b");
//结果是:30a+b
//因为第二个是先运算才与字符串拼接
(4)字符串类型和int类型的转换
字符串转换成整型
String str1 = '123';
int val1 = Integer.valueOf(str1);
//int val1 = Integer.parseInte(str1);
//两种写法皆可,因为valueOf的底层就是调用的parseInt
System.out.println(val1+1);
//打印结果是124
整型转换成字符串
int val2 =100;
String str2 = String.valueOf(val2);
System.out.println(str2);