标签:信息 类型转换 http 存在 使用 中位数 处理 字符类型 int
承接上篇,谈到不同变量装载着不同数据类型的数据,那么Java支持的数据类型有哪些呢,本篇做一点小小的探究。
Java就是一种强类型的语言,包含着以下含义:
Java数据类型分为基本数据类型和引用数据类型两大类。
字符类型其实归于整数类型,是无符号整数类型。但鉴于他和其他兄弟姐妹有点不一样,所以把他单独拎出来,基本数据类型变分成了四类。
1字节 = 8位
byte
:在内存中占1个字节,也就是8位,表数范围:-2^7 ~2^7-1short
:在内存中占2个字节,也就是16位,表数范围:-2^{15} ~2^{15}-1int
: 在内存中占4个字节,也就是32位,表数范围:-2^{31} ~2^{31}-1long
: 在内存中占8个字节,也就是64位,表数范围:-2^{63}~2^{63}-1二进制:以0b或者0B开头。
八进制:以0开头。
十进制:懂得都懂。
十六进制:以0x或者0X开头。
所有的数字在计算机底层都是以二进制的形式存在的,且以补码的形式保存所有的整数。
- 正数的补码和原码完全相同。
- 负数最高位符号位不变,其他去反,整体加1,就是补码。
整数值默认是int类型,占32位,且最高位为符号位。最后加上L之后,转换成long类型,占64位。
由于最高位符号位的存在,当强制转换时,可能会导致数据产生偏差。
字符型的值要用单引号
‘ ‘
,一定是单引号!!!Java使用16位的Unicode字符集作为编码方式,所以支持任何语言。定义方式
char varName;
A
,0
等。\t
,\r
,\n
等。如果想输出特殊的字符,则需要加上\
再次转义,例如"d:\\numert".
\uXXXX
,XXXX代表一个16进制整数。float
:单精度浮点数,占4个字节,32位,第一位符号位,后8位为指数,后23位为尾数。double
:双精度浮点数,占8个字节,64位,第一位符号位,后11位指数,后52位尾数。Java为浮点数运算提供了三个特殊的浮点数值:正无穷大,负无穷大和非数。
POSITIVE_INFINITY
.NEGATIVE_INFINITY
.NaN
如果数值中位数过多,不论整数还是浮点数都可以通过下划线分割:
0b0000_0000_0010_1111
包括类、接口和数组类型,以及特殊的null类型。
(目标类型)值
。当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型会发生自动提升。
提升到最高等级操作数同样的类型。具体查看转换图,右边比左边高。
易发生错误:
//定义一个short型变量
short value = 4;
//右边数值2为int型,所以右边自动转换为int类型,而左边是short,不匹配,错误!
value = value -2;
int val = 3;
//右边两个操作数都是int型,尽管不能除尽,但仍然得到int型数,输出int值7
int value = 23/val;
System.out.println("hello"+'a'+10);//输出字符串helloa10
System.out.println('a'+10+"hello");//‘a'自动提升至int类型,得出107,之后与字符串拼接,自动转换为字符串类型,输出字符串107hello
标签:信息 类型转换 http 存在 使用 中位数 处理 字符类型 int
原文地址:https://www.cnblogs.com/summerday152/p/11830161.html