一、数据类型
1.整形
int
:32位,占4个字节,表示整数,优先用int,超出范围用long,
long
:64位,占8个字节,10L就相当于是一个long类型的常量(long num = 10L)
short
:16位,占2个字节,short与char互不相关,不能转换,尽管都占2个字节
byte
:8位,占1个字节,-128~127,对标C语言中的char
注:
Java中所有的整形常量默认初始值为0,整数类型都是有符号的整数类型,Java没有无符号类型
2.浮点型
double
: 64位,是浮点型数据的默认常量,表示小数优先double,float精度低、范围小
float
:32位,速度快,占用内存小
注:
浮点类型的默认初值是0.0,运算过程中不会因溢出而导致异常处理
3.文本型
char
:16位,占2个字节,65535,可以和int类型数值进行运算和转换
String
:不是基本类型,是一个类,String一个的对象表示一个字符串,要放在双引号("")中,字符串中的字符也是Unicode,与’\0’没有任何关系。//+
:表示字符串拼接,得到一个新的String变量,如果“+”过程中遇到其他类型的变量,自动转为String。//a.charAt(index)
:调用String内部的charAt(返回类型是char)方法可以查看某一个下标的字符
注
:表示字符的规则Unicode和ascll是并列关系,一些字控制字符不能直接显示利用转义序列来表示( \n:换行,\t: 水平制表Tab);String 对象表示的字符串不能修改,如需修改,应使用StringBuffer类
4.逻辑类型
boolean
只有两种取值,true和false,与C语言中的0和1没有任何关系,与int类型不能相互转换,也不要混合运算;boolean类型在Java中具体占一个字节还是一个比特位不确定,取决于不同的JVM的实现
二、运算符
1.算术运算符
+,-,*,/,%,++,--
注:“+,-,++,–”为一元算术运算符,“+,-,*,/,%”为二元算数运算符,Java中一般以后置++为主
2.位操作符
1)移位运算符:
>>
右移
<<
左移
>>>
无符号右移2)位逻辑预算符:
&
按位与
|
按位或
^
按位异或
~
按位取反
注:
算术右移情况指的是:二进制数有正负之分,补位时要注意符号位; 逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。
移位操作符不能直接赋值改变变量。如果需要改变变量需要这样输入:a>>=1; 左移操作相当于/2; 右移操作相当于*2。
3.逻辑运算符
&&
op1&&op2:op1和op2都为true时返回true,否则返回false,且在op1为true时才计算op2的值
||
op1||op2:op1或op2都为true就返回true,否则返回false,且在op1为true时才计算op2的值
!
!op:op为false
&
op1&op2:op1和op2都为true时返回true,否则返回false,且总是计算op1和op2的值
|
op1|op2:op1或op2都为true时返回true,否则返回false,且总是计算op1和op2的值
^
op1^op2:op1和op2的值不同时返回true,否则返回false,即一个取true,另一个取false
4.赋值操作符
+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=
注:
在连续赋值时,应从右往左赋值,例如: a=x=y+1;输出时a的值就应是y+1。
5.关系操作符
==
等于运算符
!=
不等于运算符
>=
(大于等于)
<=
(小于等于)
注:
Java中,任何类型的数据(包括基本数据类型和复合类型)都可以通过==或!=来比较是否相等(这与C和C++不同)
6.条件操作符
exp1 ? exp2 : exp3
三目运算符,自右至左
exp1 , exp2 , exp3
逗号运算符
注:
逗号条件句的运算规则是从左往右依次运算,其结果是最后一个表达式的结果。