八种基本数据类型
数据类型
定义:每种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)
java数据类型分为基本数据类型和引用数据类型.
基本数据类型 | 数值型 | 整数:(byte[1],short[2],int[4],long[8]),浮点(float[4],double[8]) |
字符型 | char[2] | |
布尔型 | boolean[1]:true,false | |
引用数据类型 | 类(class) | |
接口 | ||
数组 |
整数类型
- 整数:(byte[1],short[2],int[4],long[8]),
浮点类型
- 浮点型分类:单精度float[4],双精度double[8]
- 双精度double会更精确
- 举例:float a = 1.1F;是对的准确说明是float类型
- double b = .123;输出值为0.123
- 可数输入科学计数法,直接输出
- 说明:浮点型=符号位+指数位+尾数位
- 位数为部分可能丢失,造成精度损失(小数都是近视值)
- 浮点数使用陷阱
- 正确的比较应该是以两个数的差值的绝对值,在某个精度范围内判断
//比如
double a = 2.7;
double b = 8.1/3;
System.out.println(b)//输出的是一个接近2.7的小数,而不是2.7
//输出结果2.99999997
//两个数的差值的绝对值,精确到0.00001
if(Math.abs(a-b) <0.0001){//差值到我规定的精度
System.out.println("差值非常小")
}
字符类型
- 字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),当有多个字符使用String.
- 字符类型的本质
- 存储:a==》码值97==》二进制(1100001)==》储存
- 读取:二进制(1100001)==》码值97==》a==》显示
- 使用细节
- 字符常量是用单引号(' ')括起来的单个字符,比如char a = 'a';char b = '中';
- Java中允许使用转义字符‘''
- char类型是可以进行运算的然后输出
- 在Java中char的本质是一个整数,在输出的时候对应Unicode码对应字符:
布尔类型(boolean)
- boolean类型数据值允许取值true和false,没有null
- boolean类型占1个字节
- boolean类型适用于逻辑运算,一般用于流程控制:if,while,do-while,for
- 不可以用0和1代替false和true
基本类型转换
自动类型转换(隐式类型转换)
- 小的类型自动转化为大的类型
- 整数类型可以自动转化为浮点类型,可能会产生舍入误差
- 字符可以自动提升为整数
例1:int 转double
int a = 10;//int类型占4个字节
byte b = a;//语法错误,不兼容,要使用强制转换
byte b = (byte)a;//使用了强制转换,正确语法
- 当小的数据类型和大的数据类型在一起运算的时候,小的回先提升为大的,然后在进行计算,byte,short,char在运算的时候都会先转换为int然后在进行计算
强制类型转换(显式类型转换)
格式:(type)value
type是要强制类型转换后的数据类型
注意:
1、强制类型转换可能导致溢出或损失精度
2、在把容量大的类型转换为容量小的类型时必须使用强制类型转换、
3、浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
String和基本数据类型的转换
在程序开发中经常使用将基本数据类型转换为String类型,或者将String类型转换为数据类型。
- 基本数据类型转换为String
- String转换为基本数据类型(String类型转换为基本类型要用包装类)
A.基本数据类型转换为String
//基本数据类型转换为--->String
int n1 = 100;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1+"";//基本数据类型转String只需要在后面加“”
String s2 = f1+"";
String s3 = d1+"";
String s4 = b1+"";
System.out.println(s1)//输出的值是字符串(String)
B.String转换为基本数据类型
//String转换为--->基本数据类型
//通过基本类型的包装类调用parseXX方法即可
Integer.parseInt("123");//即可string转换为基本数据类型、
Double.parseDouble("123.1");
Float.parseFloat("123.45");
C.怎么把字符串转成字符char →含义指的是把字符串的第一个字符得到
System.out.println(mingzi.charAt(0)); //把字符串第一个转换为char类型并输出第一个
*注意事项
- 再将String类型转换为基本数据类型时,要确保String类型能够转成有效的数据,比如 可以把‘123’,转成一个整数,但不能把‘hello’转换为一个整数
- 如果格式不正确,就会抛出异常