1.Java数据类型划分
2.基本数据类型
3.常用的转义字符
|
No. |
转义字符 |
描述 |
No. |
转义字符 |
描述 |
|
1 |
\f |
换页 |
2 |
\\ |
反斜线 |
|
3 |
\b |
倒退一格 |
4 |
\' |
单引号 |
|
5 |
\r |
归位 |
6 |
\" |
双引号 |
|
7 |
\t |
制表符Tab |
8 |
\n |
换行 |
4.基本数据类型的默认值
|
编号 |
数据类型 |
默认值 |
|
1 |
byte |
(byte)0 |
|
2 |
short |
(short)0 |
|
3 |
int |
0 |
|
4 |
long |
0L |
|
5 |
float |
0.0f |
|
6 |
double |
0.0d |
|
7 |
char |
\u0000(空,'') |
|
8 |
boolean |
false |
6.数据类型的转换
(1)Java的数据类型在定义时就已经确定了,因此不能随意转换成其它的数据类型,但Java允许用户有限度地做类型转换处理。数据类型的转换方式可分为“自动类型转换”及“强制类型转换”两种;
(2)在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换:
1)转换前的数据类型与转换后的类型兼容。
2)转换后的数据类型的表示范围比转换前的类型大
7.运算符
(1) Java中的语句有很多种形式,表达式就是其中一种形式。表达式是由操作数与运算符所组成:操作数可以是常量、变量也可以是方法,而运算符就是数学中的运算符号,如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。
(2)赋值运算符号
|
No. |
赋值运算符号 |
描述 |
|
1 |
= |
赋值 |
(3)一元运算符
|
No. |
一元运算符 |
描述 |
|
1 |
+ |
正号 |
|
2 |
– |
负号 |
|
3 |
! |
NOT,否 |
(4)算术运算符
|
No. |
算术运算符 |
描述 |
|
1 |
+ |
加法 |
|
2 |
– |
减法 |
|
3 |
* |
乘法 |
|
4 |
/ |
除法 |
|
5 |
% |
取模(取余数) |
(5)关系运算符
|
No. |
关系运算符 |
描述 |
|
1 |
> |
大于 |
|
2 |
< |
小于 |
|
3 |
>= |
大于等于 |
|
4 |
<= |
小于等于 |
|
5 |
== |
等于 |
|
6 |
!= |
不等于 |
(6)递增与递减运算符
|
No. |
自增与自减运算符 |
描述 |
|
1 |
++ |
自增,变量值加1 |
|
2 |
-- |
自减,变量值减1 |
(7)逻辑运算符
|
No. |
逻辑运算符 |
描述 |
|
1 |
& |
AND,与 |
|
2 |
&& |
短路与 |
|
3 |
| |
OR,或 |
|
4 |
|| |
短路或 |
(8)AND及 OR结果表
|
No. |
逻辑运算符 |
描述 |
|
1 |
& |
AND,与 |
|
2 |
&& |
短路与 |
|
3 |
| |
OR,或 |
|
4 |
|| |
短路或 |
(9)关于“&&”与“&”、“||”与“|”的说明
1)“&&”与“&”
&&表示短路与
对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。
2)“||”与“|”
||表示短路或
对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。
(10)括号运算符
|
No. |
括号运算符 |
描述 |
|
1 |
() |
提高括号中表达式的优先级 |
(11)位运算符
|
No. |
逻辑运算符 |
描述 |
|
1 |
& |
按位与 |
|
2 |
| |
按位或 |
|
3 |
^ |
异或(相同为0,不同为1) |
|
4 |
~ |
取反 |
|
5 |
<< |
左移位 |
|
6 |
>> |
右移位 |
|
7 |
>>> |
无符号右移位 |
(12)位运算的结果表
|
No. |
二进制数1 |
二进制数1 |
与操作(&) |
或操作(|) |
异或操作(^) |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
2 |
0 |
1 |
0 |
1 |
1 |
|
3 |
1 |
0 |
0 |
1 |
1 |
|
4 |
1 |
1 |
1 |
1 |
0 |
位运算
public class OperatorDemo15 {
public static void main(String[] args) {
int x = 3 ;
// 3的二进制数据:00000000 00000000 00000000 00000011
int y = 6 ;
// 6的二进制数据:00000000 00000000 00000000 00000110
System.out.println(x & y);
// 与操作的结果: 00000000 00000000 00000000 00000010
System.out.println(x | y);
// 或操作的结果: 00000000 00000000 00000000 00000111
System.out.println(x ^ y);
// 异或操作结果: 00000000 00000000 00000000 00000101
}
}
(13) 左移和右移
在Java中也提供了左移“<<”及右移“>>”两种操作。
1)左移操作是将运算数的二进制码整体左移指定位数,左移之后的空位使用0来填充
2) 右移操作“>>”是将运算数的二进制码整体右移,右移之后空出来的位置以符号位填充。如果是整数使用“0”填充,如果是负数使用“1”填充。
(14)无符号右移
以上的右移操作属于带符号位的右移操作,在Java中也提供了无符号的右移操作符“>>>”,使用此操作将以“0”填充空出来的位。
(15)运算符的优先级
|
优先级 |
运算符 |
类 |
结合性 |
|
1 |
() |
括号运算符 |
由左至右 |
|
1 |
[] |
方括号运算符 |
由左至右 |
|
2 |
!、+(正号)、-(负号) |
一元运算符 |
由右至左 |
|
2 |
~ |
位逻辑运算符 |
由右至左 |
|
2 |
++、-- |
递增与递减运算符 |
由右至左 |
|
3 |
*、/、% |
算术运算符 |
由左至右 |
|
4 |
+、- |
算术运算符 |
由左至右 |
|
5 |
<<、>> |
位左移、右移运算符 |
由左至右 |
|
6 |
>、>=、<、<= |
关系运算符 |
由左至右 |
|
7 |
==、!= |
关系运算符 |
由左至右 |
|
8 |
&(位运算符AND) |
位逻辑运算符 |
由左至右 |
|
9 |
^(位运算符号XOR) |
位逻辑运算符 |
由左至右 |
|
10 |
|(位运算符号OR) |
位逻辑运算符 |
由左至右 |
|
11 |
&& |
逻辑运算符 |
由左至右 |
|
12 |
|| |
逻辑运算符 |
由左至右 |
|
13 |
?: |
三目运算符 |
由右至左 |
|
14 |
= |
赋值运算符 |
由右至左 |
(16)简洁的表达式
|
No. |
运算符 |
范例用法 |
说明 |
描述 |
|
1 |
+= |
a += b |
a + b的值存放到a中 |
a = a + b |
|
2 |
-= |
a -= b |
a - b的值存放到a中 |
a = a - b |
|
3 |
*= |
a *= b |
a * b的值存放到a中 |
a = a * b |
|
4 |
/= |
a /= b |
a / b的值存放到a中 |
a = a / b |
|
5 |
%= |
a %= b |
a % b的值存放到a中 |
a = a % b |
(17)简洁表达式的范例
|
No. |
运算符 |
范例 |
执行前 |
说明 |
执行后 |
||
|
a |
b |
a |
b |
||||
|
1 |
+= |
a += b |
12 |
3 |
a + b的值存放到a中(同a = a + b) |
15 |
3 |
|
2 |
-= |
a -= b |
12 |
3 |
a - b的值存放到a中(同a = a – b) |
9 |
3 |
|
3 |
*= |
a *= b |
12 |
3 |
a * b的值存放到a中(同a = a * b) |
36 |
3 |
|
4 |
/= |
a /= b |
12 |
3 |
a / b的值存放到a中(同a = a / b) |
4 |
3 |
|
5 |
%= |
a %= b |
12 |
3 |
a % b 的值存放到a中(同a = a % b) |
0 |
3 |
|
6 |
b++ |
a *= b++ |
12 |
3 |
a * b的值存放到a后,b加1(同a = a * b;b++) |
36 |
4 |
|
7 |
++b |
a *= ++b |
12 |
3 |
b加1后,再将a*b的值存放到a(同b++;a=a*b) |
48 |
4 |
|
8 |
b-- |
a *= b-- |
12 |
3 |
a * b的值存放到a后,b减1(同a=a*b;b--) |
36 |
2 |
|
9 |
--b |
a *= --b |
12 |
3 |
b减1 后,再将a*b的值存放到a(同b--;a=a*b) |
24 |
2 |
8.判断与循环语句
(1)程序的结构
一般来说程序的结构包含有下面三种:
顺序结构
选择结构
循环结构
(2)if语句
在前面简单地介绍了if的用法。要根据判断的结构来执行不同的语句时,使用if 语句就是一个很好的选择,它会准确地检测判断条件成立与否,再决定是否要执行后面的语句。
if (判断条件){
语句1 ;
…
语句2 ;
}
(3) if...else语句
³当程序中存在含有分支的判断语句时,就可以用if...else语句处理。当判断条件成立,即执行if语句主体;判断条件不成立时,则会执行else后面的语句主体。if…else语句的格式如下:
²if (判断条件){
语句主体1 ;
}else{
语句主体2;
}
(4)三目运算符
|
No. |
三目运算符 |
意义 |
|
1 |
? : |
根据条件的成立与否,来决定结果为“:”前或“:”后的表达式 |
使用三目运算符时,操作数有3个,其格式如下:
变量 = 条件判断?表达式1:表达式2
(5)switch语句
要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,语法格式:
switch (表达式){
case 选择值1 : 语句主体 1 ; break ;
case 选择值2 : 语句主体 2 ; break ;
…….
case 选择值n : 语句主体 n ; break ; default: 语句主体 ;
}
(6) while循环
while是循环语句,也是条件判断语句。当事先不知道循环该执行多少次的时,就要用到while循环。while循环的格式如下:
while (循环条件判断){
语句1 ;
语句2 ;
…
语句n ;
循环条件更改 ;
}
(7) do…while循环
do…while循环也是用于未知循环执行次数的时候,而while循环及do…while循环最大不同就是进入while循环前,while语句会先测试判断条件的真假,再决定是否执行循环主体,而do…while循环则是“先做再说”,每次都是先执行一次循环主体,然后再测试判断条件的真假,所以无论循环成立的条件是什么,使用do…while循环时,至少都会执行一次循环主体,语句格式:
do{
语句1 ;
语句2 ;
….
语句n ;
循环条件改变 ;
}while (循环条件判断);
(8) for循环
对于while和do…while两种循环来讲,操作时并不一定非要明确的知道循环的次数,而如果开发者已经明确的知道了循环次数的话,那么就可以使用另外一种循环语句——for循环。 格式如下:
for (赋值初值;判断条件;赋值增减量){
语句1 ;
….
语句n ;
}
(9) break语句
1) break语句可以强迫程序中断循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳出当前层的循环。以下图的for循环为例,在循环主体中有break语句时,当程序执行到break,即会离开循环主体,而继续执行循环外层的语句
2)break语句格式
(10)continue语句
³continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。以下图的for循环为例,在循环主体中有continue语句,当程序执行到continue,即会回到循环的起点,继续执行循环主体的部分语句。