一.数据
1.1基本数据类型
a.整数类型:
byte 1字节 一个bye类型整数在内存中占8位 范围为-128(-2的七次方)~127(2的七次方-1)
short 2字节 一个short类型整数在内存中占16位 范围为-32768(-2的15次方)~32767(2的15次方-1)
int 4字节 一个int类型整数在内存中占32位 范围为-2147483648(-2的31次方)~2147483647(2的31次方-1)
long 8字节 一个long类型整数在内存中占64位 范围为-2的63次方~2的63次方-1
(注:如果希望系统把一个整数值当成long来处理,应在这个整数之后增加l或者L,一般推荐使用L,因为l易于1弄混。)
b.字符类型
char 2字节
c.浮点类型
float 4字节 32位
double 8字节 64位
只有浮点数除以0才会得到正无穷大或负无穷大,因为java语言会自动把和浮点数运算的0(整数)当成0.0(浮点数)来处理,如果一个整数除以0,则会抛出异常。
浮点数中,float和double的负无穷大是相等的。
所有正无穷大都是相等的。
两个非数之间是不相等的。
d.布尔类型
boolean
1.2数据类型转换
a.)java所有的数值型变量可以互相转换,如果系统支持把某种基本数据类型直接赋给另一种基本数据类型的变量,则这种方式被称为自动类型转换。
(表数范围小的可以向表数范围大的进行自动类型的转换,就如同两瓶水,当把小瓶的水倒入大瓶的时候不会有任何问题。)
b.)如果想把图片中箭头右边的类型转换为左边的类型,则必须进行强制类型转换,强制类型转换的语法格式为:
(targetType)value
1.3运算符
a)运算符
加法运算符:+
减法运算符:-
乘法运算符:*
除法运算符:/
求余运算符:%
自加:++
自减:–
(java中并没有提供其他更复杂的运算符,如需完成乘方、开方等计算,则可借助于java.lang.Math类的工具方法完成更复杂的数学运算)
b)赋值运算符
‘=’
赋值运算符支持连续赋值,通过使用多个赋值运算符,可以一次为多个变量赋值。
例子:a=b=c=7
c)位运算符
&:按位与。当两位同时为1时才返回1
|:按位或。只要有一位为1即可返回1
~:按位非。单目运算符,将操作数的每个位(包括符号位)全部取反
^:按位异或。当两位相同时返回0,不同时返回1
<<:左移运算符
‘>>’:右移运算符
‘>>>’无符号右移运算符
(一般来说,位运算符只能操作整数类型的变量或值)
d)拓展后的赋值运算符
+=:对于x+=y,即对应于x=x+y。
-=:对于x-=y,即对应于x=x-y。
星号=:对于x星号=y,即对应于x=x*y。
/=
%=
&=
|=
^=
<<=
'>>=
‘>>>=’
只要能使用这种拓展后的赋值运算符,通常都推荐使用它们,因为这种运算符不仅具有更好的性能,而且程序会更加的健壮
e)比较运算符
‘>’:大于
‘>=’:大于等于
‘<’:小于
‘<=’:小于等于
‘==’:等于
‘!=’不等于
f)逻辑运算符
&&:与
&:不短路与
||:或
|:不短路或
!:非
^:异或
(&与&&的区别,&总会计算前后两个操作数,而&&先计算左边的操作数,如果左边的操作数为false,则直接返回false,根本不会计算右边的操作数)
g)三目运算符
(expression)?if-true-statement : if-false-statement;
规则:先对逻辑表达式expression求值,如果逻辑表达式返回true, 则返回第二个操作数的值,如果逻辑表达式返回fales,则返回第三个操作数的值。