二、变量与运算符
关键字
关键字的定义和特点
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
用于定义数据类型的关键字 |
||||
class |
interface |
enum |
byte |
short |
int |
long |
float |
double |
char |
boolean |
void |
|
|
|
用于定义数据类型值的关键字 |
||||
true |
false |
null |
|
|
用于定义流程控制的关键字 |
||||
if |
else |
switch |
case |
default |
while |
do |
for |
break |
continue |
return |
|
|
|
|
用于定义访问权限修饰符的关键字 |
||||
private |
protected |
public |
|
|
用于定义类,方法,变量修饰符的关键字 |
||||
abstract |
final |
static |
synchronized |
|
用于定义类与类之间关系的关键字 |
||||
extends |
implements |
|
|
|
用于定义建立实例及引用实例,判断实例的关键字 |
||||
new |
this |
super |
instanceof |
|
用于异常处理的关键字 |
||||
try |
catch |
finally |
throw |
throws |
用于包的关键字 |
||||
package |
import |
|
|
|
其他修饰符关键字 |
||||
native |
strictfp |
transient |
volatile |
asser |
保留字
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。
byValue、cast、future、generic、inner、operator、outer、rest、var 、goto、const
标识符
标识符: Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则: 由26个英文字母大小写,数字:0-9 ,_或 $ 组成 数字不可以开头。 不可以使用关键字和保留字,但能包含关键字和保留字。 Java中严格区分大小写,长度无限制。 标识符不能包含空格。
注意:在起名字的时,为了提高阅读性,要尽量有意义,做到“见名知意”。
命名规范
Java中的名称命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
变量
变量的概念:
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
Java中每个变量必须先声明,后使用
该区域的数据可以在同一类型范围内不断变化
定义变量的格式:数据类型 变量名=初始化值
变量的作用域:一对{ }之间有效
数据类型
按被声明的位置划分:
成员变量:方法外部、类的内部定义的变量
局部变量:方法或语句块内部定义的变量
注意:类外面(类对应的大括号外面)不能有变量的声明
按所属的数据类型划分:
基本数据类型变量 引用数据类型变量
变量的分类-按数据类型
Java对每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。
整数类型:byte、short、int、long
Java各整数类型有固定的表示范围和字段长度,不受具体 操作系统的影响,以保证 java 程序的可移植性。
Java 的整型常量默认为 int 型,声明 long 型常量须后加‘l’(小写L) 或‘L’。
类 型 |
占用存储空间 |
表数范围 |
byte |
1字节 |
-128 ~ 127 |
short |
2字节 |
-215 ~215-1 |
int |
4字节 |
-231 ~ 231-1 |
long |
8字节 |
-263 ~ 263-1 |
浮点类型:float、double
与整数类型类似,Java 浮点类型也有固定的表示范围和字段长度,不受具体操作系统的影响。
Java 的浮点型常量默认为 double 型,声明 float 型常量,须后加‘f’ 或 ‘F’。
浮点型常量有两种表示形式: 十进制数形式:如:5.12 512.0f .512 (必须有小数点)
科学计数法形式:如:5.12e2 512E2 100E-2
类 型 |
占用存储空间 |
表数范围 |
单精度float |
4字节 |
-3.403E38 ~ 3.403E38 |
双精度double |
8字节 |
-1.798E308 ~ 1.798E308 |
字符类型:char
char型数据用来表示通常意义上的"字符"。
Java中字符是用单引号(‘ ’)括起来的单个字符。
例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
转义字符:使用‘\’来将其后的字符转变为特殊字符型常量。
例如:char c3 = ‘\n’; (换行符)
布尔类型:boolean
boolean 类型适于逻辑运算,一般用于程序流程控制:
if条件控制语句;
while循环控制语句;
do-while循环控制语句;
for循环控制语句;
boolean类型数据只允许取值true和false,不可以0或非0的整数替代true和false,这点和C语言不同。
基本数据类型转换
自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。 byte,short,char三者在计算时首先转换为int类型。 当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
强制类型转换
将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,要格外注意。
字符串转换为基本数据类型,需要通过基本类型对应的包装类提供的parseXXX方法。
如: String a = “43”; int i = Integer.parseInt(");
boolean类型不可以转换为其它的数据类型。
运算符
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符
算术运算符
运算符 |
运算 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
- |
负号 |
b=4; -b |
-4 |
+ |
加 |
5+5 |
10 |
- |
减 |
6-4 |
2 |
* |
乘 |
3*4 |
12 |
/ |
除 |
5/5 |
1 |
% |
取模 |
5%5 |
0 |
++ ++ |
自增(前):先运算后取值 自增(后):先取值后运算 |
a=2;b=++a; a=2;b=a++; |
a=3;b=3 a=3;b=2 |
- - - - |
自减(前):先运算后取值 自减(后):先取值后运算 |
a=2;b=- -a a=2;b=a- - |
a=1;b=1 a=1;b=2 |
算术运算符的注意问题
如果对负数取模,可以把模数的负号忽略不记,如:5%-2=1。 但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:
整数之间做除法时,只保留整数部分而舍弃小数部分。
例如:int x=3510;x=x/1000*1000; x的结果是?
赋值运算符
符号:= 扩展赋值运算符: +=, -=, *=, /=, %=
区分==和=的区别?
比较运算符
运算符 |
运算 范例 结果 |
== |
相等于 4==3 false |
!= |
不等于 4!=3 true |
< |
小于 4<3 false |
> |
大于 4>3 true |
<= |
小于或者等于 4<=3 false |
>= |
大于或者等于 4>=3 true |
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“= =”不能误写成“=” 。
逻辑运算符
运算符 |
运算 |
范例 |
结果 |
& |
AND(与) |
false & true |
false |
| |
OR(或) |
false|true |
true |
^ |
XOR(异或) |
true^false |
true |
! |
Not(非) |
!true |
false |
&& |
AND(短路与) |
false&&true |
false |
|| |
OR(短路或) |
false||true |
true |
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
“&”和“&&”的区别: 单&时,左边无论真假,右边都进行运算; 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。 和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。
三元运算符
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
运算符优先级