java核心技术学习笔记2---基本数据类型

Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。

程序设计中总会考虑一些需要特殊对待的类型,特别是小的、简单的变量,若通过new 创建对象存储在堆里,不够有效,可以直接存储其“值”,并置于堆栈中。

在Java中,一共有8种基本类型,其中有4个整型、2个浮点型、1个字符型和1个用于表示真假值的boolean类型。除基本类型外,其它类型我们称之为类类型(即引用类型)。

 

整型

类型

存储需求

取值范围

byte

1字节

-128 ~ 127

short

2字节

-32768 ~ 32767

int

4字节

-2147483648 ~ 2147483647

long

8字节

-9223372036854775808 ~ 9223372036854775807

在java中,整型的范围与运行java代码的机器无关。这也正是体现了java的可移植性。这与C和C++不同。C和C++中,需要针对不同的处理器选择最为有效的整型。在8086这样的处理器上整型数值占2个字节,在Sun SPARC这样的处理器上,整型数值占4个字节;在Intel Pentium处理器上,C和C++整型依赖于具体的操作系统,也就是说,对于DOS和Windows3.1,整型占2个字节,当Windows程序使用32位模式时,整型占4个字节。在java中,所有数值类型所占据的字节数量与平台无关。

长整型数值有一个后缀L(如40000000000L)。十六进制数值有一个前缀0x(如0xCAFE)。八进制有一个前缀0。

 

浮点型

类型

存储需求

取值范围

float

4字节

大约±3.40282347E+38F(有效位数为6~7位)

double

8字节

大约±1.79769313486231570E+308(有效位数为15位)

double表示这种类型的数值精度是float类型的两倍。(有称之为双精度)绝大部分应用程序都采用double类型。在很多情况下,float类型的精度很难满足需求。例如,用7位有效数字足以精确表示普通雇员的年薪,但表示公司总裁的年薪可能就不够用了。实际上,只有很少的情况适合使用float类型,例如,需要快速地处理单精度数据,或者需要存储大量数据。

float类型的数值有一个后缀F(例如,3.402F)。没有后缀F的浮点数值(如3.402)默认为double类型。当然,也可以在浮点数值后面添加后缀(例如,3.402D)。

在JDK5.0中,可以使用十六进制表示浮点数值。例如,0.125可以表示成0x1.0P-3。在十六进制表示法中,使用P表示指数,而不是E。

浮点数值不适用于禁止出现舍入误差的金融计算中。例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999,而不是人们希望的0.9。出现这种问题的主要原因在于浮点数值是采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10。这就好象十进制无法精确地表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。

 

char类型

在java中规定,字符型为16位(2字节)Unicode编码,字符型可以通过转换转成整数型或浮点型,实际上,可以把字符型变成十六位无符号整数使用,范围是\u0000到\uFFFF.整数的值是该字符Unicode编码。

在Java中,char类型用UTF-16编码描述一个代码单元。不建议在程序中使用char类型,最好将需要处理的字符串用抽象数据类型表示。

字符常量表示形式:

1)‘A’表示一个字符常量,编码值为65,与“A”完全不同,后者为包含字符A的字符串。

2)\u03C0 表示希腊字母π

3)特殊字符的转义字符。如下为转义字符表

转义序列

名称

Unicode值

\b

退格

\u0008

\t

制表

\u0009

\n

换行

\u000a

\r

回车

\u000d

\

双引号

\u0022

\

单引号

\u0027

\\

反斜杠

\u005c

\XXX

\后跟随3位8进制整数

 

boolean类型

boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。这两个值不能与整型进行相互转换,这与C++不同。Java没有明确给出boolean类型占用的内存空间大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值