一、关键字
二、标识符:
什么是标识符?
由英文字母、数字、下划线和$组成的元素符号。其中不能以数字开头,不能是关键字或者保留字,字母区分大小写,命名时做到见名知意。
2. 字符:
由单引号’ ’括起来的字符,且单引号里只能有一个字符。
3. 字符串:
由双引号” ”括起来的字符,且双引号里的字符必须大于等于2个字符。
4. Java中各元素的书写格式规范:
包名:一律小写 。
类名和接口名:每个单词的首字母大写。
变量名和函数名:多单词时第一个单词小写,以后每个单词首字母大写。
常量:每个字母都大写。
5. Java中的常量包括:
整数常量、小数常量、字符常量、字符串常量、布尔型常量和NULL常量。
其中布尔型常量只有true和false两个值,NULL常量只有NULL一个值。
三、进制间的转换:
主要就是二进制来回转换,二进制就是只有0和1两个;其中八进制0开头,十六进制0x开头。
1. 十进制转二进制:
除二取余,直到为0,余数反转。
2. 二进制转十进制:
从末位开始计算2的次幂从0开始,以此类推,最后数值相加。
3. 二进制、十进制、十六进制转八进制:
先转换成二进制,然后按二进制位四个为一组转换即可,反之亦然。
4. 二进制、十进制、八进制转十六进制:
先转换成二进制,然后按二进制位三个为一组转换即可,位数不够的自动补零,反之亦然。
*负数的二进制转换是正数的二进制位取反然后+1。1的二进制位是0001
四、运算符与表达式
1. 变量:定义变量的实质就是向内存申请内存空间。
2. 强制类型转换:(小转大自动转换,大转小需强制转换,损失精度)
语法格式:(数据类型)表达式 例子:int i =(int)7.5;
3. 赋值运算符
在Java中给变量赋值需要用到等号“=”,在Java中“=”不是等于,而是赋值。
示例:
Int i = 5; //为变量i赋值为5
short s = 2;
s = s+2; //编译不通过,因为s为短整型short,2默认的是int整型,运算之后为int型无法赋值给short型。
s+=2; //编译通过,因为在运算符+=赋值时自动进行了强制类型转换。
4.算数运算符:
算数运算符包括:+ - * / %(取余)
5. 自增和自减运算符: ++ --
++在前,先加后用;++在后,先用后加。
--在前,先加后用;--在后,先用后加。
6. 转义运算符:通过\改变后面字母符号的含义。
\n:换行
\r:回车
\b:退格 (相当于Backspace键)
\t:制表符(相当于tab键)
7. 逻辑运算符
数值比较运算后只有true和false两个结果。
1) & 与
只要两边的boolean表达式结果有一个是false,结果就为false;
只有两边的boolean表达式结果都为true,结果为true。
2)| 或
只要两边的boolean表达式结果有一个true,结果就为true;
只有两边的boolean表达式结果都为false,结果为false。
3)^ 异或
就是和|(或)有点不一样,不一样在于true^true=false。
4)&& 与与
只要两边的boolean表达式结果,有一个是false,结果就为false;
只有两边的boolean表达式结果都为true,结果为true。
需要注意的是,当左边为false时右边不运算。
5)|| 或或
只要两边的boolean表达式结果,有一个true,结果就为true;
只有两边的boolean表达式结果都为false,结果为false。
需要注意的是,当左边为true时右边不运算。
总结一句话:
&&与||和&、|的最大的区别就是,当左边表达式不满足条件时,右边不运算,提高效率。
8. 位运算符: 运算的是二进制位
<<(位左移):其实就是乘以2的移动位数次幂。
>>(位右移):就是除以2的移动的位数次幂。
>>:最高位补什么由原有数据的最高位决定。
如最高位为0,则用0补空位;
如最高位为1,则用1补空位;
>>>:无论最高位是什么,右移后空位都由0补齐。
注意:
&、|、^都可以进行位运算,计算时换算成二进制位,然后把0看作false,1看作true计算即可。
9. 关系运算符
关系运算符包括:> < >= <= == !=
关系运算符的结果只有两个:true和false。
10. 三目运算符
三目运算符格式:(条件表达式)?表达式1:表达式2
三目运算符的条件表示式只有两个结果:true和false,如果满足条件就执行表达式1,否则执行表达式2.
三目表达式主要用于必须有结果的运算,是if语句的一种简化形式。
五、程序流程控制语句:
1. 判断结构:
if语句 三种格式:
if(条件表达式) if(条件) if(条件)
执行语句 执行语句 执行语句
else if(条件) elseif(条件)
执行语句 执行语句
else
执行语句
if语句的第一种格式主要用于只有一种判断条件时,第二种主要用于一种判断两种执行结果的,第三种主要用于多重条件判断的。
if语句小练习
/*
需求:输入一个整数判断是奇数还是偶数
*/
class IfDemo
{
public static void main(String[] args)
{
//定义需要判断的数值
int i = 5;
//用if语句判断能否被2整除
if(i%2=0)
System.out.println("您输入的是偶数");
else
System.out.println("您输入的是奇数");
}
}
2. Switch语句 格式:
switch(表达式)
{
case1 取值1:
执行语句;
Break;
case 2 取值2:
执行语句;
Break;
case 3 取值3:
执行语句;
Break;
Default :
Break;
}
switch语句示例:
/*
需求:属于一个月份 判断属于哪个季节
思路:一年有四个季节,分别为
春季(3,4,5)夏季(6,7,8)秋季(9,10,11)冬季(12,1,2)
*/
class SwitchDemo
{
public static void main(String[] args)
{
int x=2;
//用switch判断季节
switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(x+"月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(x+"月是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(x+"月是冬季");
break;
default:
System.out.println(x+"月是不存在的季节");
}
}
}
switch语句特点:1)switch语句选择的类型只有四种:byte、short、int、char。
2)case与default执行没有顺序,先执行第一个case,没有case符合执行default。
3)结束switch语句只有两种情况:遇到break或者执行到语句结束。
4)如果匹配的case或者default没有对应的break,程序会继续向下执行,直到遇到break或switch语句结尾。
if语句和switch语句作用类似
具体场景如何应用if和switch?
如果判断的具体数值不多,且符合byte、short、int、char四种类型。If和switch都可以使用,但建议使用switch,因为执行效率略高。
其他情况,对区间判断、对boolean判断使用if,if的应用范围更广。
3. 循环结构
1)for语句 格式:
for(初始化变量;循环条件表达式;循环后的表达式){执行语句}
需要注意的是:在for语句里定义的变量只在for语句中起作用,跳出循环后失效,这是因为变量有自己的作用域,此处为局部变量。
for语句执行的是表达式,只要是合法的表达式就行。
for循环一般用于已知次数的循环。
for嵌套循环:
所谓的for嵌套循环就是for语句的执行语句里还包含一个for语句。
for嵌套循环小练习1:
/*
需求:打印下列图形
*****
****
***
**
*
思路: 发现图形有很多行,每一个行有很多列。
要使用嵌套循环。原理:形象说法:大圈套小圈。
对于打印图形:外循环控制的行数,内循环控制的是每一行的列数,也就是一行中元素的个数。
*/
class ForForDemo
{
public static void main(String[] args)
{
//控制图形的行数
for(int x = 5;x>=0;x-- )
{
控制图形每一行的列数
for(int y=0;y<=x;y++)
{
System.out.print("*");
}
//换行
System.out.println();
}
}
}
for嵌套循环小练习2:
/*
需求:打印如下九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
思路:我们可以把这个看作一个图形
其中有变化的元素,有不变的元素,我们先把不变的元素忽视掉
可以把它看成一个三角形
行数是固定的九行
列数随着行数的增加而加1
利用大圈套小圈的原理
*/
class ForForDemo2
{
public static void main(String[] args)
{
//控制图形的行数为9行
for(int x=1;x<=9;x++)
{
//控制列数随着X变化
for(int y=1;y<=x;y++)
System.out.print(x+"*"+y+"="+x*y+"\t");
//控制换行
System.out.println("\n");
}
}
}
for嵌套循环总结:嵌套循环是外循环条件成立执行一次,内循环必须执行到条件不满足才结束。
a. 累加思想:
原理:通过变量记录住每次变化的结果,通过循环的形式,进行累加动作。
b. 计数器思想:
原理:通过一个变量记录住数据的状态变化,也许通过循环完成。
c. 大圈套小圈思想:
原理:尖朝上改变条件。尖朝下改变初始值。
2)While语句 格式:
While(循环条件表达式)
{执行语句}
需要注意的是: while语句主要用于不确定循环次数的循环,而且如条件不满足,可直接掠过不执行循环语句。
3)dowhile语句 格式:
do{执行语句}
while(循环条件表达式)
需要注意的是:do while语句不管满不满足循环体条件,都会先执行一次循环体内执行语句。
这里就不做程序展示了
4)break语句和continue语句
break语句我们在switch语句中已经接触到,break的作用就是跳出循环体,主要应用于判断结构和循环结构。
continue语句应用在循环中,不过continue语句的作用不是跳出循环体,而是跳出本次循环,然后从循环的起点继续判断循环条件,执行循环体。