1、整数类型
在Java中,整数类型包括以下几个:
- byte 字节型 (8个bit,也就是1个字节)范围:-128~+127
- short 短整形(16个bit,也就是2个字节)范围:-32768~+32767
- int 整形(32个bit,也就是4个字节)最常用的类型:-2147483648 ~ +2147483647
- long 长整形(64个bit,也就是8个字节)范围:-9223372036854775808 ~ +9223372036854775807
public class Main {
public static void main(String[] args) {
byte a=1;
short b=10;
int c=100;
long d=1000;
System.out.println(a+b+c+d);
}
}
隐式类型转换:
小的类型转大的类型会有隐式类型转换。
byte->short->int->long
而为变量赋值时也是会将数转为int类型
我们可以采用强制类型转换实现大转小
可以前面加这个类型名称也可以末尾加提示。
public class Main {
public static void main(String[] args) {
byte a=1;
short b=10;
int c=100;
long d=1000;
b=c; c=d;//ERROR 大的不能隐式转为小的
c=b;//True 小的可以隐式转为大的
b=(short)c;//True 强制类型转换可以实现大转小
a=(byte)d; //True
d=9999999999999999;//ERROR 整数过大,超过int上限
d=9999999999999999L;//True 常量转为long,没超上限
System.out.println(a); //输出为-24
}
}
但是强制类型转换没有考虑是否溢出,比如上述程序若要输出a则为-24。
因为long里存的值超过byte的范围会发生截断
特殊知识点:
(1)下划线分割
(2)八进制,十六进制表示
数字前有0为八进制,有0x为十六进制(x大小写均可)
public class Main {
public static void main(String[] args) {
int a=1_000_00_0000; //True
int b=016; //True 8进制
int c=0x1a; //True 16进制
System.out.println(b); //输出14,8+6
System.out.println(c); //输出26,16+10
}
}
(3)整数类型均为有符号整型
底层存储第一位均为符号位。
public class Main {
public static void main(String[] args) {
int a=2147483647; a=a+1;
byte b=127; b=(byte)(b+1); //True
System.out.println(a); //输出-2147483648
System.out.println(b); //输出-128
}
}
2、浮点类型
首先来看看Java中的小数类型包含哪些:
- float 单精度浮点型 (32bit,4字节)
- double 双精度浮点型(64bit,8字节)
赋值与初始化:
浮点常量默认为double,需要强制转换。
public class Main {
public static void main(String[] args) {
float a=3.0; //ERROR ,常量默认为double
double b=18.6;
System.out.println(a);
System.out.println(b);
}
}
public class Main {
public static void main(String[] args) {
float a=3.0F; // True
double b=18.6;
System.out.println(a);
System.out.println(b);
}
}
double可以隐式转换为float
public class Main {
public static void main(String[] args) {
float a=3.0F; // True
double b=a; //True
System.out.println(a);
System.out.println(b);
}
}
3、字符类型
- char 字符型(16个bit,也就是2字节,它不带符号)范围是0 ~ 65535
- 采用Unicode字符集
- 编码规则有GBK、UTF-8、UTF-16
赋值与初始化:
用字符赋值或用ACSCII码赋值均可
public class Main {
public static void main(String[] args) {
char a='A';
char b=67;
System.out.println(a);
System.out.println(b);
}
}
public class Main {
public static void main(String[] args) {
char a='我';
int b=a;
System.out.println(a); //输出我
System.out.println(b);//输出25105
}
}
4、布尔类型
- true - 真
- false - 假
赋值与初始化:
public class Main {
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println(a);
System.out.println(b);
}
}