Java基础(二)数据类型与运算符

一、数据类型

Java的数据类型基本可划分为两大类基本数据类型引用数据类型,其结构图如下:

也可以将其结构划分为:

1、整数类型  (1个字节等于8位二进制即1btye=8bit)

btye     1个字节      8位     默认值:0     取值范围:-128~127(-2的7次方到2的7次方-1)

short    1个字节     16位    默认值:0     取值范围:-32768~32767(-2的15次方到2的15次方-1)

int        1个字节     32位    默认值:0     取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)

long      1个字节     64位    默认值:0L   取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

注意:int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。在通常情况下,如果Java中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”(大小写都可推荐用大写)。

定点常量是整型常数,它可用十进制、八进制、十六种进制三种方式来表示。

十进制定点常量:如123、-456、0。

八进制定点常量:以0前导,形式为0dd...d。如0123表示十进制数83,-011表示十进制数-9。

十六进制定点常量:以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。

定点变量即整型变量,可细分成字节型变量、整型变量、短整型变量和长整型变量四种。需要注意的是,如果要将一定点常量赋值给一个定点变量,需要查验常量是否在该变量的表达范围内,如超出范围程序会编译出错。

赋值表达式如: int a = 123  它是由两部分构成的 a表示定点变量  123表示定点常量。

2、字符类型

Java中一个字符(char)表示Unicode字符集中的一个元素,Unicode字符由16位组成,因此,有(65535)个不同的字符可用,Unicode字符集包含所有不同语言的字符,以及数学、科学、文字中的常用符号,所以给了我们很大的灵活性。字符由单引号括起来的单个字符表达,通常用16进制表示,范围从'u0000'到'uFFFF'(u告诉编译器你在用两个字节[16位]字符信息表示一个Unicode字符)。

字符常量指用单引号括起来的单个字符,如‘a’,‘A’,请特别注意,字符的定界符是单引号,而非双引号。除了以上所述形式的字符常量值之外,Java还允许使用一种特殊形式的字符常量值,这通常用于表示难以用一般字符来表示的字符,这种特殊形式的字符是以一个“\”开头的字符序列,称为转义字符。Java中的常用转义字符见下图:

3、浮点类型

单精度float        4个字节   32位    默认值:0.0f    取值范围: -3.402823e-38 ~ -1.401298e-45,1.401298e-45 ~ 3.402823e+38 

双精度double     8个字节   64位    默认值:0.0     取值范围: -1.797693E+308 ~ -4.940656E-324,4.940656E-324 ~ 1.797693E+308

注意:double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的。如果要表示一个数据是float型的,可以在数据后面加“F”。 

Java提供的8种原始数据类型并为每个原始类型提供了封装类(也叫包装类)各个关系如下:

(boolean->Boolean),(char->Character),(btye->Btye),(short->Short),(int->Integer),(long->Long),(float->Float),(double->Double)这些封装类(Wrapper)提供了很直观的方法,针对封装类需要说明的是,每种封装类都有一个xxxValue()的方法,通过这种方法可以把它引用的对象里面的值转化成为基本变量的值,不仅仅如此,每个封装类都还存在一个valueOf(String)的方法直接把字符串对象转换为相应的简单类型。

4、布尔类型

boolean a=true;//这个a在JVM中占4个字节即:32位。     boolean[] b = new boolean[10];//数组时,每一个boolean在JVM中占一个字节
理由:1)JAVA规范中没有定义boolean类型的大小。2)但是:在JVM规范第2版中讲得十分清楚。我上边的结论就是从它当中取出来的。
根据:(JVM规范第2版 3.3.4节)

 

二、运算符

1、算术运算符

单目:+(取正) 、-(取负) 、++ 、--       双目:+、-、*、/、%       三目:  ?  :

2、关系运算符

==、!=、<=、>=、<、>

3、位运算符和逻辑运算符。

位运算符:与(&)AND、非(~)NOT、或(|)OR、异或(^)XOR

&:两边数字同为1则为1,否则为0,如101 & 111=101

|:两边数字只要一边为1则为1,否则为0,如101 & 111=111

~:两边数字1变0,0变1

^:两边数字不同则为1,否则为0,如101 & 111=010

逻辑运算符:与(&&)、非(!)、或(||)

4、位移运算符

<< 带符号左移    >>带符号右移 >>> 无号右移

5、赋值运算符

=  、  +=  、 -=   、 *=  、  /=  、 %= 、  &= 、  ^=  、 |=  、 <<=  、 >>=

6、instanceof运算符 

 该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算结果是true,否则是false。

 

 

posted @ 2013-01-02 20:48  马英豪  阅读(188)  评论(0)    收藏  举报