一:关键字
概述:被JAVA语言赋予特定含义的单词
特点:组成关键字的字母全部小写
注意事项:
(1)goto和const作为保留字存在,目前并不使用
(2)类型Notepad++这样的高级记事本,针对关键字有特色的颜色标记,非常直观
二.标识符
概述:就是给,接口,方法,变量等起名字时使用的字符序列
组成规则:
(1)英文大小写字母
(2)数字字符
(3)$和_
注意事项:
(1)不能以数字开头
(2)不能是JAVA中的关键字
(3)区别大小写
三:标识符中常见的命名规则
(1)包:其实就是文件夹,用于把相同的类名进行区分,全部小写
单级:linyi多级:cn.itcast(2)类或者接口:一个单词组成:单词的首字母必须大写举例:Student,Dog多个单词组成:每个单词的首字母必须大写举例:HelloWord,UserName(3)方法或者变量:一个单词:单词的首字母小写举例:main,age多个单词:从第二个单词开始,每个单词的首字母大写举例:studentAge,showAllnames()(4)常量:一个单词:全部大写举例:PI多个单词:每个字母都大写,用_隔开举例:STUDENT_MAX_AGE四:注释概述及其分类
概述:用于解释说明程序的文字
作用:解释说明程序,提高程序的阅读性,可以帮助我们调试程序
注释分类格式:
(1)单行注释://注释文字
(2)多行注释:/*注释文字*/
(3)文档注释:/**注释文字*/
五:常量
概述: 常量是一种特殊的变量 值一旦被设定 ,在程序运行过程中不允许改变,常量名一般使用大写字符
格式:fianl 常量名= 值
常量分类:
(1)字面值常量
(2)自定义常量(后面讲)
1.字面值常量
(1)字符串常量:用双引号括起来的内容,例"A","b","0"
(2)整数常量:所有整数,例如12,23
表示形式:二进制、八进制、十进制、十六进制()
进制概述:进制:就是进位制,对于任何一种进制--X进制,就表示某一位置上的数运算是逢X进一位。二进制是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一
(3)小数常量:所有小数,例如12.34,12.56
(4)字符常量:用单引号括起来的内容,例'A','a','0'
(5)布尔常量:较为特有,只有true和false
(6)空常量:null
在Java中针对整数常量提供了四种表现形式:
A:二进制 由0,1组成。以0b开头。B:八进制 由0,1,...7组成。以0开头。C:土进制 由0,1,...9组成。 整数默认是十进制。D:土六进制 由0,1,...9,a,b,c,d,e,f (太小写均可)组成。以0x开头。有符号数据表示法:
在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。原码:
就是二进制定点表示法,即最高位为符号位,“0"表示正,“1”表示负,其余位表示数值的大小。反码:
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码:
正数的补码与其原码相同; -负数的补码是在其反码的未位加1。
例如:用原码,反码,补码分别表示 +7和-7,首先我们得到7的二进制:111
原码:正数的原码最高位是0,负数的原码最高位是1,其他是数值位
符号位 数值+7 0 0000111-7 1 0000111
反码:正数的反码和原码相同,负数的反码与原码是符号位不变,数值位取反,就是1变0,0变1
符号位 数值
+7 0 0000111-7 1 1111000
补码:正数的补码与原码相同,负数的补码是在反码的基础上加1
符号位 数值+7 0 0000111-7 1 1111001
六:变量
概述:在程序执行的过程中,在某个范围内可以发生改变的量(理解:如同数学中的未知数)
定义变量的格式:
a:数据类型 变量名 = 初始化值;b:数据类型 变量名;c:变量名 = 初始化值;注意:格式是固定的,记住格式,以不变应万变
使用规则:
1Java中的变量需要先声明后使用
2 变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值 String a = 1; /String a; a=1;
3 变量中每次只能赋一个值,但可以修改多次
4.main 方法中定义的变量必须先赋值,然后才能输出
使用变量时要注意的问题:
A:作用域:变量定义在哪一级大模块中,哪个大括号的范围就是这个变量的作用域,相同的作用域中不能定义两个同名变量。B:初始化值:没有初始化的变量不能直接使用只要在使用前给值就行,不一定非要在定义的时候立即给值推荐在定义前就给值在一行上建议只定义一个变量可以定义多个,但是不建议七:数据类型
基本数据类型:
(1)数值型:
整数类型:byte,short,int,long
浮点类型:float,double
(2)字符型:char
(3)布尔型:boolean
引用数据类型:
(1)类:class
(2)接口:interface
(3)数组:[]
八:数据类型转换
默认转换:(从小到大的转换)
byte,short,char- -int- -long一 float -double
byte ,short, char相互之间不相互转换,他们参与运算首先直接转换为int类型boolean类型不能转换未其他数据类型
例如:
byte c=5;
int d=7;System.out.println(c+d);
强制转换:(从大的小的转换)
格式:
目标数据类型 变量 = (目标数据类型) (被转换的数据);注意:整数默认是int类型
浮点数默认是double类型不要随意的去使用强制转换,因为它隐含了精度损失问题长整型建议用L或者l标记,建议使用L
单精度浮点数用F或者f标记,建议使用F例如:
byet a=3;
int b=4;
byte c=(byte)(a+b);
九:进制转换
其他进制到十进制:
系数:就是每一个位上的数
基数:X进制的基数就是X
权:对每一个位上的数,并且从0开始编号,对应的编号就是该数据的权
结果:系数*基数^权次幂之和
十进制到其他进制:
除基取余,直到商为0,余数反转
进制快速转换法:
A:十进制和二进制间的转换:8421码
B:二进制到八进制、十六进制的转换
十:运算符
1.算术运算符:
+,-,*,/都是比较简单的操作,简单演示即可
+的几种作用:
加法:System.out.println(3+4);
正数 :System.out.println(+4);
字符串连接符:
System.out.println('a');//只打印一个字符的情况下控制台只会输出这个字符
System.out.println('a'+1);//char类型参与运算首先会转换成int类型并参与运算
System.out.println("hellow"+'a'+1);//运算是从左到右开始运算的,所以这里的值是字符串hellowa1
注意事项:
A:整数相除只能得到整数,如果想得到小数,必须先转换为浮点类型/和%的区别:
B:/获取的是除法操作的商,%获取的是除法操作的余数
++和--的应用:
单独使用:
++--放在操作数的前面或者后面效果是一样的(这种用法是我们比较常见的)参与运算使用:++或者--放在后面是先参与运算再自增或自减++或者--放在前面是先自增或自减再参与运算2.赋值运算符:
基本的赋值运算符:=(把右边的数据赋值给左边)
扩展的赋值运算符:+=,-=,*=,/=,%=(把左边和右边做计算再赋值给左边)扩展的赋值运算符隐含了一个强制类型转换:
例如:
short int =1
s+=1;不是等价于s=s+1;而是等价于s=(s的数据类型)(s+1);3.比较(关系)运算符:
注意:
(1)比较运算符的结果都是boolean类型,也就是要么是true,要么false
(2)比较运算符"=="不能误写成"="
特点:无论操作是简单还是复杂结果肯定是boolean类型
4.逻辑运算符:
注意:当逻辑运算符两边是数据做的是位运算,当逻辑运算符两边是布尔值做的是逻辑运算
特点:逻辑运算符一般用户连接boolean类型的表达式或值
表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子算术表达式:a+b比较表达式:a==b结论:&逻辑与:有false则false,只有全部结果为true才会true|逻辑或:有true则true,只有全部为false才会为false^逻辑异或:结果相同为falser,不同为true!逻辑非:非false则true,非true则false 特点:偶数个!不改变本身“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算
双&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
“|”和“||”的区别:
单|时,左边无论真假,右边进行运算
双||时,当左边为true时,右边不参与运算,如果左边为false,那么右边参与运算
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
5.位运算符:
(1)<<:空位补0,被移除的高位丢弃。
算法:<<把<<左边的数据*2的移动次幂
(2)>>:被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,最高位补1。
算法:>>把>>左边的数据/2的移动次幂
(3)>>>:被移位二进制最高位无论是0或者是1,空缺位都用0补。
(4)&:任何二进制位和0进行&运算,结果是0; 和1进行&运算结果是原值。
(5)|:任何二进制位和0进行 | 运算,结果是原值; 和1进行 | 运算结果是1。
(6)^:任何相同二进制位进行 ^ 运算,结果是0; 不相同二进制位 ^ 运算结果是1。
^的特点:某一个数据对另一个数据异或两次,结果不变
6.三元运算符:
格式:(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果时表达式2;
注意:布尔类型格式后面不需要跟true和false,因为它本身就是布尔类型。
十一:键盘录入数据
概述:我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。
如何实现键盘录入数据呢?(目前先记住使用)
导包(位置放到class定义的上面) import java.util.Scanner;
创建对象 Scanner sc = new Scanner(System.in);
接收数据 int x = sc.nextInt();
十二:流程控制语句
流程控制语句分类:
1.顺序结构:从上往下,依次执行
2.选择结构:按照不同的选择执行不同的代码
if语句 :if语句有三种格式
if语句第一种格式:
if(关系表达式) {
语句体
}
执行流程 :
(1)首先判断关系表达式看其结果是true还是false
(2)如果是true就执行语句体 如果是false就不执行语句体
注意事项:
(1)关系表达式无论简单还是复杂,结果必须是boolean类型
(2)if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略,建议永远不要省略
(3)一般来说,有左大括号就没有分号,有分号就没有左大括号
if语句第二种格式:
if(关系表达式) {
语句体1;
}else { 语句体2;
}
执行流程:
(1)首先先判断关系表达式看其结果是true还是false
(2)如果是true就执行语句体1
(2)如果是false就执行语句体2
三元运算符和if语句格式二的区别:
三元运算符实现的,都可以采用if语句实现,反之不成立
什么时候if语句实现不能用三元改进呢?当if语句控制的操作时一个输出语句的时候就不能,因为三元运算符是一个运算符,运算符操作完毕后就应该有一个结果,而不是输出if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2; }
…
else {
语句体n+1; }
执行流程:
(1)首先判断关系表达式1看其结果时false还是true
(2)如果是true就执行语句体1
(3)如果是false就继续判断关系表达式2看其结果是true还是false
(4)如果是true就执行语句体2
(5)如果是false就继续判断关系表达式.....看其结果时true还是false
(6)......
(7)如果没有任何关系表达式为true,就执行语句体n+1
if语句的使用场景:
(1)针对一个表达式时boolean类型的判断
(2)针对一个范围的判断
(3)if语句是可以嵌套使用的
switch语句:
格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
格式解释 :
switch表示这是switch语句
表达式的取值:byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String
case后面跟的是要和表达式进行比较的值 语句体部分可以是一条或多条语句 break表示中断,结束的意思,可以结束switch语句 default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
(1)首先计算出表达式的值
(2)其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束
(3)最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
注意事项:
(1)case后面只能跟常量,不能是变量,而且,多个case后面的值不能出现相同的
(2)default可以省略,但是不建议,除非判断的值的固定的
(3)break可以省略,但是不建议,否则结果可能不是你想要的
(4)default的位置可以出现在switch的任意位置
(5)switch的结束条件:遇到break或者执行到程序的末尾
if语句和switch的区别:
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
3.循环结构:主要做一些重复的代码
循环语句的组成:
初始化语句:一条或者多条语句,这些语句完成一些初始化操作
判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情
控制条件语句:这个部分在一部分循环体结束后,下一次循环判断条件前执行,通过用于控制循环条件中的变量,使得循环在合适的时候结束
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句;){
循环体结构;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果时truehaisfalse
(1)如果是true,继续执行
(2)如果是false,循环结束
C:执行循环体语句
D:执行控制条件语句
E:回到B继续执行
注意事项:
A:判断条件语句的结果是一个boolean类型
B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
C:一般来说:有左大括号就没有分号,有分号就没有左大括号