1:Java语言基础组成
标识符 / 关键字 / 注释 / 常量和变量
运算符 /语句 / 函数 /数组
2:标识符
(1)Java 语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
*简单记,就是起名字。
(2)命名规则
*由26个英文字母大小写,数字0-9,_,$等组成。
*不能以数字开头。
*不能与java的关键字重名。
(3)命名规范 见名知意,驼峰命名。
*包 所有单词小写xxx.yyy.zzz
**看成是一个文件夹。
**www.itcast.cn cn.itcast.www cn/itcast/包的作用
**www.baidu.com com/baidu/包的作用
*类和接口 XxxYyyZzz
**如果是由一个单词组成,那么单词首字母大写。
举例:Demo,Student。
**如果是由多个单词组成,那么每个单词的首字母大写。举例:StudentDemo。
*变量与方法xxxYyyZzz
**如果是由一个单词组成,那么单词首字母小写。
举例:main,show。
**如果是由多个单词组成,第一个单词首字母小写,其后每个单词的首字母大写。
举例:showName。
*常量 XXX_YYY_ZZZ
**如果是一个单词组成,那么所有单词全部大写。
举例:MAX。
**如果由多个单词组成,每个单词大写,并且以下划线相连接。举例:STUDENT_MAX_AGE。
3:关键字
(1)被Java语言赋予了特殊含义的单词。
(2)特点:关键字中所有字母都为小写。
(3)goto和const虽然从未使用,但也作为 Java 关键字保留,记住保留字也是不能当作标识符.
4:注释
(1)注解说明代码的,用于给人看的。
(2)注释的分类
*单行注释 //
*多行注释 /* */
*文档注释 /** */
(3)注释的用途
*注解说明文字。
*用于调试代码。
养成习惯:先写注释再写代码
5:常量和变量
常量表示不能改变的数值,分类如下:
(1)整数常量。所有整数
(2)小数常量。所有小数
(3)布尔型常量。较为特殊,只有两个数值。true false boolean
(4)字符常量。将一个数字字母或者符号用单引号('')标识。'中'
(5)字符串常量。将一个或者多个字符用双引号标识。 "abc""a" " "
(6)null常量。只有一个数值就是:null.
进制
(1)就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,
就表示某一位置上的数运算时是逢X进一位
(2)java语言中整数的表现形式
A:八进制
**逢八进一
**所能表示的数据有:0-7
**用0开头表示
B:十进制
**逢十进一
**所能表示的数据有:0-9
C:十六进制
**逢十六进一
**所能表示的数据有:0-9,A-F(10-15)
**用0x或者0X开头表示
d:二进制
**逢二进一
**所能表示的数据有:0-1
(3)进制的特点。
进制越大,表现形式越短
(4)进制转换
A:其他到十进制的转换
**其他进制包含二进制,八进制,十六进制
**转换规则
***先把数据的每一位上的系数乘以对应基数的次幂(低位从从零开始),然后相加即可
B:十进制到其他进制的转换
**规则:除基取余,直到商为0,最后将余数反转
**十进制到二进制
***除2取余,直到商为0,最后将余数反转
***十进制13对应的二进制数据是1101
***二进制到十进制的技巧(8421码)
**十进制到八进制
***除8取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是15
***十进制--二进制--八进制
****首先把十进制转成二进制
****其次把二进制数据每三位组合。左边不够三位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到八进制
**十进制到十六进制
***除16取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是D
***十进制--二进制--十六进制
****首先把十进制转成二进制
****其次把二进制数据每四位组合。左边不够四位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到十六进制
变量
用法:当数据不确定的时候,就定义变量来存储数据。
(1)在程序的运行过程中,其值在指定范围内变化的值
(2)是内存中一个区域,用于存储数据
(3)变量的定义
格式:数据类型 变量名 = 初始化值;
(4)变量在使用的时候
A:第一种,在声明的时候,就初始化值
**数据类型 变量名 = 初始化值;
**举例:byte b = 100; System.out.println(b);
B:第二种 在使用前,赋值
**声明
**赋值
**使用
**举例 byte b2;
b2 = 100; System.out.println(b2);
数据类型
(1)java语言分为两种数据类型
A:基本数据类型
B:引用数据类型(类,接口,数组)
(2)基本数据类型
A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同
B:4类8种
**整数
***byte 占1个字节
***short 占2个字节
***int 占4个字节
***long 占8个字节 其后加L或l标识
**浮点数
***float 占4个字节 其后加F或f标识
***double 占8个字节
**字符
***char 占2个字节
**布尔型
***boolean 占一个字节
***true,false
C:默认情况下:
**整数是int类型
**浮点数是double类型
(3)数据参与运算
A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则
**容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:
***byte,short,char->int->long->float->double
***byte,short,char之间不会互相转换,他们三者在计算时首先会自动转换为int类型
**容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,
但可能造成精度降低或溢出;使用时要格外注意。
**有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,
然后再进行计算。
B:强制转换符
**格式:(数据类型)(要被转换的数据) byte b = (byte)(130);
C:字符型参与运算
**首先会去找对应字符的ASCII码值。然后运算。
D:布尔型参与运算
**不能参与运算
E:字符串参与运算
**它是和参与运算的数据相连接组成了一个新的字符串。
6:运算符
(1)算术运算符 +,-,*,/,%,++,--
A:%
**当左边的绝对值小于右边:结果是左边
**当左边的绝对值等于右边或者是右边倍数的时候:结果是0
**当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
**取余的正负号取决于左边
**用途:任意数%2 结果是要么0,要么1。用于切换条件
B:++,--
**递增,递减运算符。就是加1或者减1
**单独存在,放在操作数的前面或者后面,结果一样
**参与运算时:
***放在操作数的前面,先自身加或者减1,然后再参与运算
***放在操作数的后面,先参与运算,然后再自身加或者减1
C:+
**作为数据的符号
**做加法运算
**字符串连接符
(2)赋值运算符
A:=:赋值运算符 把右边的值赋给左边
**举例:int x = 3; 把3赋给int类型变量x
B:+=:加赋值运算符 把左边和右边的和赋给左边
**举例:int x = 3; x+=2;等同于 x = x + 2;
**+=运算符在给s赋值时,自动完成了强转操作。
(3)比较运算符
A:==,!=,>,<,>=,<=
B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
(4)逻辑运算符
/*
逻辑与运算符 &
第一个条件 第二个条件 结果
true true true
false true false
true false false
false false false
简单记:同时为true,结果为true。
*/
/*
逻辑或运算符 |
第一个条件 第二个条件 结果
true true true
false true true
true false true
false false false
简单记:同时为false,结果为false。
*/
/*
逻辑异或运算符 ^
第一个条件 第二个条件 结果
true true false
false true true
true false true
false false false
简单记:同时为同一种情况,结果为false。
*/
/*
逻辑非运算符 !
!true =false
!false =true
!!true =true
*/
/*
短路与 && :
&:左边无论什么结果,右边都执行。
&&:左边为false,右边不执行,结果为false。
短路或 || :
|:左边无论什么结果,右边都执行。
||:左边为true,右边不执行,结果为true。
*/
(5)位运算符
<<一个数向左移动几位就乘以2的几次幂
>>一个数向右移动几位就除以2的几次幂
>>> 无符号右移,左边补0
(6)三元运算符
A :(条件表达式)?表达式1:表达式2;
**如果条件为true,运算后的结果是表达式1;
**如果条件为false,运算后的结果是表达式2;
B:条件运算符运算完之后一定有一个结果
7:程序流程控制(判断结构/选择结构/循环结构)
判断结构if语句
三种格式:
第一种:if(条件表达式){
执行语句;
}
第二种:if (条件表达式){
执行语句;
}else{
执行语句;
}
第三种:if(条件表达式){
执行语句;
}else if (条件表达式){
执行语句;
}else{
执行语句;
}
*if语句和三元运算符的区别
三元运算符可以称之为if语句的简写形式,但是只要简写就会有一定的弊端。
三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。
if...else是语句,只是控制流程,执行后不一定有结果
if...else可以里面可以有语句,并输出结果,三元运算符不可以。
*If语句什么时候使用
1,当对值进行判断的时候
2,当对数据区间进行判断的时候
3,当结果是布尔类型的时候
*if语句特点:
1,每一种格式都是单条语句。
2,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。
好处是:可以写在其他表达式中。
3,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;
选择结构switch语句
1:switch格式:
switch (表达式){
case 表达式里对应的值:
执行语句;
break;
case 表达式里对应的值:
执行语句;
break;
......
default:
执行语句;
break;//最后一句的break可写可不写,因为程序已经执行到了末尾
}
*重点:switch 结束只有两种情况
1,当程序执行过程中遇到了break
2,当程序执行到了末尾处
*应用 switch需要注意的两个细节
1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
例如:我们做一年有四季的例子:
int month = 8;
switch (month){
case 3:
case 4:
case 5:
System.out.println(month+"月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month+"月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month+"月是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(month+"月是冬季");
break;
default:
System.out.println(month+"月没有这样的月份")
}//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率
2,当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里的值都部匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句
例如:
int x = 3;
switch (x){
case 4:
System.out.print("a");
break;
default:
System.out.print("b");
//这里没有写break,程序不再判断下个case里面的值会继续向下执行
case 5:
System.out.print("c");
case 6:
System.out.print("d");
break;//当程序执行到这里遇到了break就结束了
case 7:
System.out.print("e");
}//此程序输出结果应该是:bc
循环结构while/do while/for
循环语句里除了do while都是重点要牢记,多练
(1)while循环
格式:
while (条件表达式){
循环体;
控制循环次数;
}
例如: int x = 3;
while (x<6){
System.out.println("x="+x);//循环体
x++;//用x自增来控制循环次数
}
(2)do while 循环
格式:
do{
循环体;
控制循环次数
}
while (条件表达式);
例如:
int x = 3;
do{
System.out.println("x="+x);//循环体
x++;//用x自增来控制循环次数
}
while (x<6);
while和do while的区别:
dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行再判断
while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.
(3)for
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;(循环体)
}
例如:
for( int x = 0; x < 10; x++){
System.out.println( "x=" + x );
}
(4)for 的嵌套循环,建议做题的时候就弄个双层嵌套就可以,不要弄太多层,影响效率
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){//这是外层循环
执行语句;(循环体)
//下面是内存循环
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;(循环体)
}
}
for (int x=1;x < 6;x++ ){
for(int y=1; y<6; y++){
System.out.print("*");
}
System.out.println();
}
continue和break
a,这两个语句离开应用范围,存在是没有意义的。
b,这个两个语句单独存在下面都不可以有语句,因为执行不到。
c,continue语句是结束本次循环继续下次循环。
d,标号的出现,可以让这两个语句作用于指定的范围。
语句使用情况:
A:当对某几个值进行判断的时候,可以使用if语句,或者switch语句。
建议使用switch。但是,使用switch要注意,它只能操作五种类型的值,byte,short,int,char,String.
如果是五种以外的值,需要使用if。
B:如果对数据区间进行判断,或者对运算结果是boolean类型的进行判断,用if语句。
C:当需要某些语句执行很多次的时候,使用循环结构。如果定义变量只为循环增量存在时,可以使用for语句。
如果对一个条件进行一次判断使用if,如果对该条件进行多次判断,使用while.
D:如果要结束循环,可以控制循环条件,或者通过break语句完成。
如果要控制循环的流程,是否该继续执行,可以通过continue或者break来完成。
E:break结束当前所在循环。
continue结束本次循环,进入下一次循环。