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。

浙公网安备 33010602011771号