基础语法:
关键字
有着特殊用途和意义的关键字,有大小写之分。
标识符
用来命名变量、常量,有大小写之分,以数子、字母、下划线_、美元符号$,不能以数字开头。
变量
变量:变量就好比一个用来装东西的盒子,不同类型的盒子装的东西不一样。盒子就是变量,不同类型的盒子就是不同类型的变量,里面的东西就是变量的值。
优秀码农的习惯:
1、当变量由多个单词组成时,第一个单词的首个字母小写,其余的首字母大写,这是骆驼命名法。例:myLove;
2、变量命名是要简短且清楚表达变量的作用,做到“见名知意”。
3、变量没有长度限制,但有大小写之分。
数据类型:Java是强类型语言,变量存储要分门别类。
基本数据类型存放的是数值本身,而引用数据类型存放的是数据的空间地址,基本数据类型就好比直接放东西进去抽屉,而引用类型则是存放这些抽屉的钥匙,钥匙和抽屉是一一对应的。
变量使用规则:
1、变量要先声明后使用。
2、可以声明的同时进行初始化。
String love = "I love java";
3、也可以先声明后初始化。
String love; love = "I love Java";
3、每次只能赋值一个值。
4、变量名尽量不要用中文,虽然编译器不会报错,但是会影响跨平台性。
自动类型转换:不同基本数据类型之间经常需要进行装换,以下int类型的数据可以直接赋值给double类型变量。
int score1 = 62;
double scores2 = score1;
System.out.println(score2);
转换规则:
1、目标类型能与源类型兼容。例double能兼容int,但char不能兼容int。
2、目标类型的范围要比源类型的大,比如double的字节为8,而int的字节为4,所以可以转换。
强制类型转换:
当自动转换类型无法进行,而有需要进行转换,例如int转换成double类型,由于int的字节小于double,转换是无法自动进行的,所以,这就需要用到强制类型转换。语法是:(目标类型)数值。
注:强制类型转换可能会造成数据丢失。
常量
值被设定后,程序编译运行过程中不会改变,这样提高了代码的高维护性。常量用final声明,并且同样需要声明类型。
final SEX = " 男生 ";
注意:常量一般要用大写。
运算符
- 算术运算符:+ - * / % ++ --
- 逻辑运算符:&& || !
- 比较运算符:> < <= >= == !=
- 赋值运算符:= += -+ *= /= %=
- 条件运算符:?:
流程控制语句
条件语句
if 先判断条件,条件满足则执行代码
if(条件){
条件满足执行的代码
}
if...else 判断条件,满足执行第一个代码块,不满足执行第二个代码块。
if(条件){
条件满足执行的代码块
}
else
{
条件不满足执行的代码块
}
多重if语句 条件1不满足,判断条件2,前面的条件都不满足,执行else后面的代码块
if(条件1){
条件1满足时执行的代码
}else if(条件2){
条件2满足时执行的代码
}else{
前面的都不满足时执行的代码
}
嵌套if语句 只有外部if满足时,才能判断内部if
if(外部条件){
if(内部条件){
内部条件满足时执行的代码
}
}
switch 对许多条件使用等值判断
switch(变量) //括号内必须是整型或字符串
{
case 变量1: { //case后可以是常量,也可以是常量表达式
变量是变量1时执行的代码块
break;
}
case 变量2: {
变量是变量2时执行的代码块
break;
}
default:{
默认执行代码块
}
}
循环语句
while 重复执行的代码 先判断,后执行
while(条件){
循环执行的代码
}
do...while 先执行,后判断 判断条件一样时比while多执行了一次代码,注意while后的" ; "
do{
执行代码块
}while(判断条件);
for(初始值; 判断条件; 递增) 这个是一般格式
for(初始值; 判断条件; 递增)
{
循环操作代码块
}
break 退出指定的循环,直接执行循环后面的代码
continue 跳出本次循环,直接执行下一个循环
两者区别:break是直接跳出整个循环,continue是跳出此次循环,剩余的循环继续进行
数组
数组就好比一个大盒子,可以存放多个同类型的数据。数组通过下标访问,下标从0开始。
1、声明数组
数据类型[] 数组名; //常用
数据类型 数组名[];
2、分配空间
数组名 = new 数组类型[数组长度];
注:声明同时可分配空间
数组类型[] 数组名 = new 数组类型[数组长度];
3、赋值
数组名[下标] = 数值或字符; //赋值要跟数组类型相同