Java基础-基本数据类型
Java有两种数据类型:
基本数据类型
引用数据类型
注:本篇文章只会讲到基本数据类型的内容,引用数据类型接后再讲
一、 Java的基本数据类型的分类
-
数值型:
整形: byte 8bit 1B -128~127 short 16bit 2B 负的2的十五次幂到正的2的十五次幂减一 int 32bit 4B 负的2的31次幂到正的2的31次幂减一 long 64bit 8B 负的2的63次幂到正的2的63次幂减一 浮点型: float 32bit 4B double 64bit 8B
-
字符型:
char 16bit 2B
-
布尔型:
boolean //位数视情况而定
注:
在基本数据类型定义时遵循以下规则
1.整数类型取值范围只约束整数部分
2.浮点型位数限定只约束小数部分长度
3.整形里若是long类型,则在定义的数字后边加L;
4.浮点型里若是float类型,则在定义的数字后边加F;
5.char类型中:
一个字母占1字节 = 8位
一个中文占2字节 = 16位
二、数据类型的转换
规则如下:
1. 数值型中同类型
大接小直接接,小接大需要强制类型转换
大接小
int a = 10;
long b = a;
小接大
long b = 10L;
int a = (int)b;
注意:右边小左边大即可
特例:
int b = 130;
byte i = b;
//输出:-126
解析:因为在byte中的范围最大值就是127,130超过了这个值,所以在进行转换时就会有一定的损失,byte类型就会把int类型的前24位拿掉此时剩下二进制的表示是
源码:10000010 130 //源码此时是负数,在计算机中正数的源码就是补码,负数的源码是补码,补码的求法就是源码取反加一
反码:11111101
补码:11111110
所以此时的值就为-126
2. 数值型中类型不同
高精度接低精度直接接,低精度接高精度强制类型转换
高接低:
int x = 10;
float y = x;//10.0
低接高:
float y = 10F;
int x = (int)y;
3.数值型中整型与字符型
字符类型和整数类型之间,一个字符可以转一个数字
字符转整形
char c = 'a'
int i = c; //输出:97
整形转字符
int i = 97;
char c = (int)i;//输出:a
注意:1.在整形与字符直接转换的时候也遵循,大接小直接接,小接大强制类型转换
2.字符型只能与整形进行转换
3.char只能存放一个字母(占8位)或者一个英文字母(16位),并且只能用单引号
4.char遵循的字符编码是unicode
因为unicode的位数是16位,既可以存放中文,也可以存放英文
ascii位数是8位,只能存英文