java基础-数据类型之殇
一 前言
Java的数据类型分为2种,分别是基本数据类型和引用数据类型;java的数据类型是强数据类型,意味着每声明一个变量,其必定有与之对应的数据类型;面试常问的java8大基本数据类型其实是基本数据类型;想要打好基础数据类型这关很重要;
二 基本数据类型
基本数据类型分为 整型4个 ,布尔型一个,字符型一个,浮点数型2个;每个数据类型的大小都不一样,数据类型的大小以字节计算,在计算机种一个字节是等于8位,也就是2的8次方法;
2.1 整型
整型故名思意,字段声明的类型是整型,字段被赋值的时候只能是整型类型数据;如果是长整型(long)其后面书写时带上L或者l表示长整型数据;
int类型书写示例:
public class Type {
// int 型 java默认为整型
private int zszxz1 = 1327;
}
long类型书写示例:
public class Type {
// long 型 Java中称呼为长整型,后面跟 L 或者 l,由于l同 1很像,通常使用L
private long zszxz2 = 1327L;
}
shor型书写示例:
public class Type {
// shor 型 java中称呼为短整型
private short zxzxz3 = 1327;
}
byte类型书写示例:
public class Type {
// byte 型 java中称呼为字节
private byte zszxz4 = 127;
}
2 .2 浮点类型
浮点数据类型分为单精度类型(float)和 双精度类型 (double);书写时double型,数字后面带上D或者d表示双精度型;
书写float型,数字后面带上f或者F表示单精度型;其都遵循IEEE 745 规范,如果溢出会出现下列三种情况:
- 正无穷大
- 负无穷大
- Nan表示非数值
书写示例:
public class Type {
// float 型
private float zszxz5 = 3.17f;
// double 型
private double zszxz6 = 3.17d;
}
2.3 字符型
字符型(char)存储单个字符,特殊的字符使用unicode值(0~65535)进行存储;其大小2个字节;
public static void main(String[] args) {
// 字符 A 在 unicode中的值是65也就是 u0041;
char zszxz7 = 'A';
char zszxz8 = '\u0041';
char zszxz9 = 65;
// true
System.out.println(zszxz7==zszxz8);
// true
System.out.println(zszxz7==zszxz9);
}
常用转义符号:
2.4 布尔型
布尔型(boolean),其只有2个值就是true和false;通常用于判断是非;
// 正确
private boolean zszxz10 = true;
// 错误
private boolean zszxz11 = false;
三 进制数值表示
3.1 二进制数
二进制数使用0b或者0B开头,每位都是用0~1表示;
示例:
// 二进制数
private int zszxz12 = 0b1111;
3.2 八进制数
八进制数使用0开头,每位是0~7表示;
示例:
public static void main(String[] args) {
int zszxz13 = 017;
// 15
System.out.println(zszxz13);
}
3.3 十六进制数
十六进制数使用0x或者0X开头,每位都是使用0~9, A~F 表示;
示例:
public static void main(String[] args) {
int zszxz14 = 0xff;
// 255
System.out.println(zszxz14);
}
四 指数数值表示
在java中指数类型使用e表示10的次方幂,比如 10^5 表示成 e5,声明时注意使用浮点数据类型或者其他大数值类型;
示例:
public static void main(String[] args) {
double zszxz15 = 0.3e2;
// 30.0
System.out.println(zszxz15);
}
五 类型转换
5.1 自动类型转换
自动类型转换是指小数据类型转向大数据类型java虚拟机会自动帮你转换,不需要做额外的操作;
不丢失精度情况:
丢失精度情况:
5.2 强制类型转换
强制类型转换是指大数据类型转向小数据类型,需要进行强制类型转换,但这有可能发生丢失精度的风险,使用()表示强制转换;在浮点数转整型的时候丢失精度的规则不是四舍五入,而是截取;
示例:
public static void main(String[] args) {
double zszxz16 = 55.9;
int opq = 0 ;
opq = (int)zszxz16;
// 55
System.out.println(opq);
}
六 引用数据类型
引用数据类型包括类,接口,数组,java中的引用本质上等同于c中的指针,但在java中没有指针这个说法,而是保留的指针的引用类型;特殊的数据类型String就是引用数据类型;详细的引用数据类型在后续的学习中才会有深入了解,对于初学者,说的再多目前也没意义;