java关键字
关键字概述
被Java语言赋予特定含义的单词
关键字特点
组成关键字的字母全部小写
关键字注意事项
goto和const作为保留字存在,目前并不使用
类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
java 之 标识符
标识符概述
就是给类,接口,方法,变量等起名字时使用的字符序列
组成规则
英文大小写字母
数字字符
$和_
注意事项
不能以数字开头
不能是Java中的关键字
区分大小写
java标识符(常见命名规则)
包(其实就是文件夹,用于解决相同类名问题)
单级和多级分别举例
类或者接口
一个单词和和多个单词(全部小写)
方法和变量
一个单词和和多个单词分别举例(第二个单词字母开始大写)
常量
一个单词和和多个单词分别举例(全部大写,第二个单词以_分割)
注释
注释概述
用于解释说明程序的文字
Java中注释分类格式
单行注释
格式: //注释文字
多行注释
格式: /* 注释文字 */
文档注释
格式:/** 注释文字 */
注释是一个程序员必须要具有的良好编程习惯。
初学者编写程序可以养成习惯:先写注释再写代码。
将自己的思想通过注释先整理出来,在用代码去体现。
因为代码仅仅是思想的一种体现形式而已。
常量
常量概述
在程序执行的过程中其值不可以发生改变
Java中常量分类
字面值常量
自定义常量
字符串常量 用双引号括起来的内容
整数常量 所有整数
12,23
小数常量 所有小数
12.34,56.78
字符常量 用单引号括起来的内容
‘a’,’A’,’0’
布尔常量 较为特有,只有true和false
空常量 null
Java针对整数常量提供了4种表现形式
二进制
八进制
十进制
十六进制
进制概述
进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
不同进制的数据组成
二进制
由0,1组成。以0b开头
八进制
由0,1,…7组成。以0开头
十进制
由0,1,…9组成。整数默认是十进制的
十六进制
由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
进制转换
其他进制到十进制
通过十进制推出结论
把0b100,0100,0x100转换成十进制
十进制到其他进制
通过十进制推出结论
把52分别表示成二进制,八进制,十六进制
十进制和二进制的快速转换
8421码
100转成二进制
101101转成十进制
二进制和八进制,十六进制如何转换
以十进制作为桥梁
二进制到八进制 3位组合
100110
二进制到十六进制 4位组合
100110
有符号数据表示法
在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
变量
变量概述
在程序执行的过程中,在某个范围内其值可以发生改变的量
理解:如同数学中的未知数
变量定义格式
数据类型 变量名 = 初始化值;
注意:格式是固定的,记住格式,以不变应万变
数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
使用变量注意事项:
作用域
变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
初始化值
没有初始化值不能直接使用
在一行上建议只定义一个变量
可以定义多个,但是不建议
+是一个运算符, 我们应该能够看懂,做数据的加法。
boolean类型不能转换为其他的数据类型
默认转换
byte,short,char—int—long—float—double
byte,short,char相互之间补转换,他们参与运算首先转换为int类型
强制转换
目标类型 变量名=(目标类型)(被转换的数据);
运算符
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
算术运算符
+,-,*,/都是比较简单的操作,简单演示即可
+的几种作用:
加法
正数
字符串连接符
除法的时候要注意一个问题:
整数相除,只能得到整数
要想得到小数,可以*1.0
/和%的区别
++和--的应用
单独使用效果相同
参与运算使用,在操作数的前后效果不同
赋值运算符
符号:
= , +=, -=, *=, /=, %=
=为基本的赋值运算符,其他的为扩展的赋值运算符
逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
三目运算符
格式
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
键盘录入数据
键盘录入数据概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。
如何实现键盘录入数据呢?(目前先记住使用)
导包(位置放到class定义的上面)
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int x = sc.nextInt();
流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句分类
顺序结构
选择结构
循环结构
顺序结构
顺序结构概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
选择结构
选择结构
也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句
if语句
switch语句
选择结构(if语句)
if语句有三种格式
if语句第一种格式:
if(关系表达式) {
语句体
}
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
选择结构(switch语句)
格式解释
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略吗?
可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?
可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?
可以出现在switch语句任意位置。
switch语句的结束条件
遇到break
执行到程序的末尾
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
循环结构(for循环语句)
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
注意事项
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
循环结构(while循环语句)
while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
循环结构(for循环和while循环的区别)
for循环语句和while循环语句可以等价转换,但还是有些小区别的
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
循环结构(do…while循环语句)
do…while循环语句格式:
基本格式
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
循环结构(区别及注意事项)
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
如下代码是死循环
while(true){}
for(;;){}
跳转控制语句(break)
break的使用场景:
在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的
break的作用:
跳出单层循环
跳出多层循环
带标签的跳出
格式:标签名: 循环语句
标签名要符合Java的命名规则
跳转控制语句(continue)
continue的使用场景:
在循环语句中
离开使用场景的存在是没有意义的
continue的作用:
单层循环对比break,然后总结两个的区别
break 退出当前循环
continue 退出本次循环
跳转控制语句(return)
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
(工作需要……顺便整理……欢迎大家补充提意见)