Java的8种基本数据类型

 

待整理主题:Java的8种基本数据类型与对应封装类型、拆箱、装箱

 

===================================================================================================

 参考文章:

java中char数据类型的使用

 

char:java中称为“字符型”  占2个字节

 

字符常量是用单引号括起的一个字符  且字符常量在内存中存储的是该字符在Unicode字符集中的排序位置,即整数

eg:char x='a'

内存x中存储的是字符a在Unicode字符集中的排序位置97  因此允许将上面的语句写成char x=97;

 

由此例可以得出以下结论:

1.要观察一个字符在Unicode字符集中的排序位置,必须使用int类型显示转换,例如:(int)'a'

2.同理,如果要得到一个0---65535之间的数所代表的Unicode表中相应位置上的字符也必须使用char型显示转换

 

===================================================================================================

 参考文章 

八种基本数据类型

 Java的基本数据类型有八种:

 

1)四种整数类型(byte、short、int、long):
byte:8位,用于表示最小数据单位,如文件中数据,-128~127
short:16位,很少用,-32768 ~ 32767
int:32位、最常用,-2^31-1~2^31 (21亿)
long:64位、次常用
- 注意事项:
- int i=5; // 5叫直接量(或字面量),即直接写出的常数。
- 整数字面量默认都为int类型,所以在定义的long型数据后面加L或l。
- 小于32位数的变量,都按int结果计算。
- 强转符比数学运算符优先级高。见常量与变量中的例子。

 

2)两种浮点数类型(float、double):
float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。
double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾数。
- 注意事项:
- 二进制浮点数:1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
- 尾数: . 1010100010 指数:1010 基数:2
- 浮点数字面量默认都为double类型,所以在定义的float型数据后面加F或f;double类型可不写后缀,但在小数计算中一定要写D或X.X。
- float 的精度没有long高,有效位数(尾数)短。
- float 的范围大于long 指数可以很大。
- 浮点数是不精确的,不能对浮点数进行精确比较。

 

3)一种字符类型(char):
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使用Unicode码代表字符,0~2^16-1(65535)。

注意事项:
不能为0个字符。
转义字符:\n 换行 \r 回车 \t Tab字符 \” 双引号 \ 表示一个\
两字符char中间用“+”连接,内部先把字符转成int类型,再进行加法运算,char本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。

 

4)一种布尔类型(boolean):true真 和false假。

 

5)类型转换: char–> 
自动转换:byte–>short–>int–>long–>float–>double 
强制转换:

    1. 会损失精度,产生误差,小数点以后的数字全部舍弃。
    2. 容易超过取值范围。

 

===================================================================================================

 java里不是说char类型自动向int型转换吗?那为什么..

 

 

解释一:常量和变量的内存模型
解释二:char类型加减一个值是左右偏移

 

 

char a='a';
char b=a+18; //运行时程序报错了


 

 

===================================================================================================

 

 short类型与int类型转换,float类型与double类型转换

 

 

 

 

===================================================================================================

为什么Long类型的比float类型的范围小?

 

 

 

posted @ 2019-03-15 09:45  WhoKnows1  阅读(2314)  评论(0编辑  收藏  举报