2.9 数字类型

2.9.1 整数类型

五种:byte(8位)、short(16位)、char(16位)、int(32位)、long(64位)。
将位数多的类型赋值给位数少的类型,需要显式转换,也叫强制类型转换(cast)。
十进制以1-9中的一个数开始。
八进制以0开头。
十六进制以0x开头。
要指明常量是long类型的,而非int类型,需要在后面添加字母L。
这里说的不太清楚,到底是程序中要这么写,还是说书中会这么写?

“14084591234L——一个long类型的十进制常量。没有L是错误的,因为32位的int类型整数无法存放这么大的数。”
这句话有句话隐含没说,就是如果程序中用到一个整数常量,这个常量就默认是int类型,因为整数常量是不用声明的(不会有人这样声明吧?int 456)。那么,如果用到的是超过int类型范围的数字,就应该在数字后面加L,这样系统就知道这是一个long类型的数字。

2.9.2 浮点类型

浮点数由3部分组成:符号、量值(magnitude)和指数(exponent)。
Java支持两种浮点数类型(float-32位、double-64位)。
除非特别说明,浮点类型常量都是double类型(就好像整型的默认是int)。
指定float类型的常量,在常量后面添加F或f。
我觉得还是写大写的比较好。

2.9.3 char类型

字符常量用单引号引起来,如'A'。
字符串常量就算只有一个字母,也是字符串常量,用双引号,"A"。
而有些难以打印的字符需要用到转义字符虽然要写成两个字符,但是还是'/t',单引号。
另一种写字符常量的方法是用十六进制转义序列,如'/u0007'。
(书中25页有错误,那个'/u007'缺一位,是不可能通过编译的)
65536个Unicode字符写成从'/u0000'到'/uFFFF'。

下面的程序能够“打印”一个系统响铃,当然了,屏幕上看不到,而是靠耳朵听的。

//  Example.java

class Example
{
    public static void main (String[] args)
    {
        System.out.print('/u0007');
    }
}


不过,如果改成'/u000D',编译的时候会报错

E:/Program Files/j2sdk1.4.2/Application>javac Example.java
Example.java:7: illegal line end in character literal
        System.out.print('/u000D');
                         ^
1 error

这是为什么呢?本来应该打出一个回车符的???

2.9.4 数字与字符串的比较

Java需要编程人员指出每个变量的类型,和Java一样,具有类似特性的语言成为强制类(strongly typed)语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值