Java数据类型★★★★

数据类型很重要,这是基础中的基础。
在线API文档点我
包-> 类 –> 方法

8大基本数据类型表

1字节=8bit

类型 名称 范围 字节 概念 封装类
byte 字节 -128~127 1 byte 类型用在大型数组中节约空间,主要代替整数 Byte
short 短整型 -(2^15)~(2^15-1) 2 Short 数据类型也可以像 byte 那样节省空间 Short
int 整数类型 -(2^31)~(2^31-1) 4 一般地整型变量默认为 int 类型 Integer
long 长整型 -(2^63)~(2^63-1) 8 主要使用在需要比较大整数的系统上 Long
- - - 上面是整型 -
float 单精度浮点数 -3.403E38~3.403E38 4 单精度、32位、符合IEEE 754标准的浮点数 Float
double 双精度浮点数 -1.798E308~1.798E308 8 双精度、64 位、符合 IEEE 754 标准的浮点数 Double
- - - 上面是浮点型 -
char 字符类型 2 存放单个字符’a’ Character
boolean 布尔型 1或4 存放trun/false Boolean

浮点型使用细节

1. 浮点数=符号位+指数位+尾部位(可能丢尾,导致失精)
2. 占字节越大越精确,推荐使用double
3. 浮点数陷阱:最好不要使用浮点数进行数据的比较

字符类型使用细节(char)

1. 使用单引号,允许使用转义字符‘\’的特殊字符
2. 本质为整数,输出时为Unicode码 编译Unicode的网址点我
3. char赋值整数,输出时为对应的Unicode码
4. 可以用来参与运算

public class name {
public static void main(String[] args) {
char x = 97;
System.out.println(x); // 输出字符a
System.out.println((int)x); // 输出字符a对应的数字98
System.out.println(x+1); // 输出为98(运算结果)
}
}

布尔类型使用细节

不可以使用0或者非整数的值替代false和true(定死)

自动类型转换(小精度转大精度)(小容量转大容量)

char -> int -> long -> float -> double
byte -> short -> int -> float -> long -> double

自动类型转换细节

1. 多种类型混合运算:系统自动将所有数据转最大数据类型并进行计算
2. 精度大不能转小
3. byte,short和char直接不会互相自动转换
4. boolean不参与转换
5. 自动提升原则:表达式结果的类型自动提升为操作数最大的数据类型
6. byte ,short ,char他们三者可以计算,在计算时首先转为int类型

public class name {
public static void main(String[] args) {
byte b1 = 10; // 判断值是否在范围内,是则赋给它
int b2 = 1;
// byte b3 = b2; // 不成立,赋值的数据已经创建好内存空间
System.out.println();
}
}

基本数据类型强转

将容量大转小,需要加上”()”,可能造成精度降低和溢出

强制类型转换细节

1. 大到小的转换
2. 针对最近的操作数有效(小括号提升优先级)
3. char类型可以保存int常量值,不能保存int的变量值,需要强转
4. byte和short运算当做int处理

public class name {
public static void main(String[] args) {
int i = (int)1.8;
System.out.println(i);

int j = 100;
byte bx = (byte)j;
System.out.println(bx);

int x = (int)(10.3*3+3.1*4.3);
}
}

基本数据类型和String类型

基转String

语法:将 基本数据类型+”” 即可。

public class StringToBasic {
public static void main(String[] args) {
// 基本数据类型 -> string
int n1 = 100;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 + "";
String s2 = f1 + "";
String s3 = d1 + "";
String s4 = b1 + "";
System.out.println(s1 + " " + s2 + " " + s3 + " " + s4);
}
}

String转基

语法:通过包类型调用转换,<包类型.parse类型(“数据”)>

public class StringToBasic {
public static void main(String[] args) {
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
boolean b2 = Boolean.parseBoolean("true");
short num6 = Short.parseShort(s5);
// 看似结果一样,实际上类型已经不一样了
System.out.println(num1 + " " + num2 + " " + num3 + " " + num4 + " " + num5 + " " + b2 + " " + num6);
}
}

字符串转字符的办法

注意事项:
1. String转出来的基本数据类型要有效(不能把“world”转成整数)
2. 格式不对会跑出异常

public class name {
public static void main(String[] args) {
s5 = "abcdefg";
// 取出第1个字符编译为char
System.out.println(s5.charAt(0));
// 同理,可以取出其他字符串。
}
}

提一嘴:java字符和字符串不相同。