Java基本数据类型

基本数据类型表

类型存储需求取值范围包装类型
byte1字节-128 ~ 127Byte
short2字节-32 768 ~ 32 767Short
int4字节-2 147 483 648 ~ 2 147 483 647 ( 正好超过20 亿)Integer
long8字节-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807Long
float4字节大约± 3.402 823 47E+38F (有效位数为6 ~ 7 位)Float
double8宇节大约± 1.797 693 134 862 315 70E+308 (有效位数为15 位)Double
char2字节单个字符Character
booleantrue、falseBoolean

注: Java JVM规范没有明确指出boolean的取值范围,1字节或者4字节都有可能。

转义字符表

转义序列名称Unicode值
\ddd1~3位八进制数据所表示的字符,如:\141\ddd
\uxxxx4位16进制数据所表示的字符,如:\u2122\uxxxx
\b退格\u0008
\"双引号\u0022
\t制表\u0009
\’单引号\u0027
%反斜杠\u005c
\n换行\u000a
\r回车\u000d

注:
可以使用十六进制表示浮点数值。例如, 0.125=2^-3 可以表示成0xl.0p-3。在十六进制表示法中, 使用p 表示指数, 而不是e。注意, 尾数采用十六进制, 指数采用十进制。指数的基数是2, 而不是10。所有的浮点数值计算都遵循IEEE 754 规范。具体来说,下面是用于表示溢出和出错情况的三个特殊的浮点数值:
•正无穷大
•负无穷大
•NaN (不是一个数字)
例如, 一正整数除以0的结果为正无穷大。计算0/0 或者负数的平方根结果为NaN。

一些示列:
int a = 0b1010; // 二进制,0b开头
int aa = 0b1010_10; // _为了可读性
int b = 07; // 八进制,0开头
int c = 0xff; // 十六进制,0x开头
double d = 0x8p-3; // 2^-3 * 8
char a = ‘\u005B’; // [
char b = ‘\u005D’; // ]
char c = ‘\141’; // a
char d = ‘a’;
char f = 97;

Unicode与char

Unicode术语表

码点是指与一个编码表中的某个字符对应的代码值。在Unicode标准中,码点采用十六进制书写,并加上前缀U+, 例如U+0041 就是拉丁字母A 的码点。Unicode 的码点可以分成17个代码级别。第一个代码级别称为基本的多语言级别, 码点从U+0000 到U+FFFF, 其中包括经典的Unicode代码;``其余的16个级另码点从U+10000 到U+10FFFF , 其中包括一些辅助字符。UTF-16 编码采用不同长度的编码表示所有Unicode 码点。在基本的多语言级别中, 每个字符用16位表示,通常被称为代码单元 ; 而辅助字符采用一对连续的代码单元进行编码。这样构成的编码值落人基本的多语言级别中空闲的2048 字节内, 通常被称为替代区域。U+D800 ~ U+DBFF用于第一个代码单元,U+DC00 ~ U+DFFF 用于第二个代码单元。这样设计十分巧妙, 我们可以从中迅速地知道一个代码单元是一个字符的编码, 还是一个辅助字符的第一或第二部分。例如,⑪是八元数集的一个数学符号, 码点为U+1D546, 编码为两个代码单元U+D835和U+DD46。
在Java 中,char 类型描述了UTF-16 编码中的一个代码单元。

自动装箱、拆箱

自动装箱

在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:
Integer i = new Integer(10);
而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可了:
Integer i = 10;hen
这个过程中会自动根据数值创建对应的Integer对象,即Integer i = 10;会自动转化为Integer i = Integer.value0f(10);这就是装箱。

自动拆箱

与自动装箱对应的便是自动拆箱。在把一个Integer赋值给一个int时便存在拆箱。
Integer i = new Integer(10);
int n = i;// 自动拆箱,实际执行int n = i.intValue();
这就是自动拆箱。

注:其他类型的装箱、拆箱类似。
总结:装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。
甚至在算术表达式中也能够自动地装箱和拆箱。例如,可以将自增操作符应用于一个包装器引用:
Integer n = 3;
n++;
编译器将自动地插人一条对象拆箱的指令, 然后进行自增计算, 最后再将结果装箱。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书香水墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值