文章目录
1) 基础语法
1.1) 注释
作用:为程序做解释(类似说明书)帮助自己或他人理解自己写的代码到底是如何运行的,从而有效降低屎山代码1的出现.虽然,不写注释可以在离职之后让前公司来求你,但是为了防止上午写的程序下午就忘记写到哪了的事情发生,请各位要养成写注释的好习惯.(tips:注释中的文字都不会被程序运行,所以写什么都ok.)
- 单行注释
//本行双斜杠后的都视为注释
- 多行注释
/*杠星与星杠之间都为多行注释 /* 杠星与星杠之间都为多行注释 杠星与星杠之间都为多行注释 多行注释嵌套后首个杠星与首个星杠之间视为注释 */(多行注释到此结束) */(←被视为多余的*/)
public class Main { public static void main(String[] /*多行注释可以想这样做行内注释,但单行注释不行*/args){ System.out.println("小贴士"); } }
- 文档注释
/**
* @author 作者
* @version 1.0
*/
public class Main {
public static void main(String[] args){
System.out.println("Hello World");
}
}
1.2) 标识符
- 作用:给变量、类、方法、以及包进行命名.
- 规则:
- 必须以字母、下划线、$符号开头.
- 其余部分可以用字母、下划线、$符号和字母以任意方式组合
- 不能用Java关键字(关键字较多不需要现在记忆 往后学习会逐一认识)
- 标识符规范(也被称为驼峰规则2):
- 表示类的标识符的每个首字母大写,如 Number, GoodFriend
- 表示方法和变量的标识符的第一个单词首字母小写,第二个单词首字母大写,如 music(), musicTeacher()
1.3) 变量
- 变量的基本要素:类型+名称+值
示例:
public class Main {
public static void main(String[] args){
int a=1;//定义了一个变量,类型为int整型,名称a,值1
int b=2;//定义了一个变量,类型为int整型,名称b,值2
b=81;//把81的值赋给了b变量
System.out.println(a);//输出a变量的值
System.out.println(b);//输出b变量的值
}
}
- 注意事项
- 变量表示内存中一个存储区域,不同类型的变量占用空间(字节)不同
- 该区域有自己的变量名和数据类型
- 变量必须先声明,后使用,顺序不可调换
- 变量可在同一数据类型范围内不断变化
- 变量不能在同一作用域内重名(即不能重复定义同一变量名)
- 变量=变量名+值+数据类型
1.4) 数据类型
- 基本数据类型
- 数值型
- 整数类型(存放整数[所占字节]):byte[1],short[2],int[4],long[8]
- 浮点类型(存放小数):float[4],double[8]
- java 的整数常量默认为int 声明long型常量需在后加’l’或’L’
- java 的浮点常量默认为double 声明float型常量需在后加’f’或’F’
- 在赋值时要注意以上两点避免数据丢失
- 浮点型常量表示形式:
十进制: 3.14 314.1f .314(零点几的小数 零可以省略 小数点不能省)
科学计数法: 3.14e2[3.14*10的2次方] 3.14E-2[3.14/10的2次方]
- 尽量不要用运算结果是小数的数与其他数进行相等判断(如:5.1/3==1.7) 可以将两数的差值的绝对值与某个小数比较(如:Math.abs(5.1/3-1.7)<1E-6)
- 字符型
- char[2],存放单个字符 ‘b’
- 字符常量是用(’ ')括起来的单个字符.如: char a1=‘a’; char a2=‘b’
- 转义字符是用反斜杠(\)表示,作用是用来转义后面一个字符,转移后的字符通常用来表示一个不可见的字符或者有特殊作用的字符(如:'\n’表示换行符)\和其后字符一起构成一个转义字符
- java中char的本质是整数,在输出时,是unicode码对应的字符
- char[2],存放单个字符 ‘b’
- 布尔型
- boolean[1],存放 true,false
- 适用于逻辑运算,一般用于程序控制流程
- boolean[1],存放 true,false
- 引用数据类型
- 类
- class
- 接口
- interface
- 数组
- []
2) 运算符
2.1) 算术运算符
- 类型:+,-,*,/,%,++,–
- +,-,*,/与数学中的符号意思相同 不做过多解释(只有整数型之间进行除法运算时会直接舍去小数位,不会四舍五入 如:5/2=2)
- %即为取除法后的余数,如:7%3=1, -7%3=-1
- ++即为自增,n++等价于n=n+1,++n也等价于n=n+1
n++为先赋值再自增;++n为先自增再赋值
示例
int a=2;
a++;
System.out.println(a);
++a;
System.out.println(a);
System.out.println(a++);//先输出再+1
System.out.println(++a);//先+1再输出
结果:
3
4
4
6
2.2) 关系运算符
介绍:关系运算符的结果都为boolean类型,即结果要么为true要么为false
- 关系运算符
==(相等),!=(不等于),<,>,<=,>=(单个’='是赋值运算符)
(与数学符号用法基本相同不做过多解释)
2.3) 逻辑运算符
- 与 &,&&(当两边结果都为true时结果为true)
- 或 |,||(当两边结果有一边为true时结果为true)
- 非 !a(当a为false时结果为true)
- 异或 a^b(当ab不同时结果为true)
a | b | a&b | a&&b | a或b | a或或b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
逻辑短路:
&&和||会有逻辑短路
即&&:如果第一个条件为false,第二个条件不会判断,最终结果为false
||:如果第一个条件为true,第二个条件不会判断,最终结果为true
优点: &&和||在运行有时只判断一个条件比&和|的效率高,所以在编程中常用&&和||
示例:
int a=2;
int b=3;
System.out.println(a==2);
System.out.println((a>3)&&(b++!=2));
System.out.println(b);
System.out.println((a>3)&(b++!=2));
System.out.println(b);
System.out.println((a>1)||(b++!=2));
System.out.println(b);
System.out.println((a>1)|(b++!=2));
System.out.println(b);
结果:
true
false
3
false
4
true
4
true
5
2.4) 赋值运算符
介绍:将运算后的值赋给指定的变量
基本赋值运算符: =
复合赋值运算符: +=,-=,/=,%=
a+=b等价于a=a+b(其余运算符用法可以类推)
- 赋值运算符特点
- 运算顺序从右往左
- 赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值
- 复合赋值运算符会进行类型转换
如: byte a=1;
a+=3;等价于a=(byte)(a+3);
如果代码为a=a+3;由于整数(3)的数据类型是int所以程序会报错,使用复合赋值运算符会进行类型转换,程序就不会报错.
2.5) 三元运算符
条件表达式?表达式1:表达式2;
规则:
- 如果条件表达式为true,结果是表达式1;
- 如果条件表达式为false,结果是表达式2;
示例:
int a=2;
int b=3;
System.out.println(a>b?++a:b++);
System.out.println(b);
System.out.println(a);
System.out.println(a<b?++a:b++);
System.out.println(b);
System.out.println(a);
结果:
3
4
2
3
4
3
3) 控制结构
3.1 顺序控制
介绍:程序从上到下逐行执行,中间没有任何跳转和判断
3.2 分支控制
介绍:让程序有选择的执行
- 单分支
- 基本语法
if(条件表达式)
{ //如果()里个条件表达式结果为true则执行大括号内的语句. 否则直接跳过大括号
}
tips:如果{}中只有一条语句,可以省略{},但建议写上{}
示例:
int a=2;
int b=3;
if (a<b)
{
System.out.println("f");
System.out.println("k");
}
if(a>b)
{
System.out.println("c");
}
if(a<10)
System.out.println("x");
结果:
f
k
x
- 双分支
基本语法:
if(条件表达式)
{
代码1;
}
else//当表达式成立执行代码1否则执行代码2
{
代码2;
}
示例:
int day=1;
if (day==4)
{
System.out.println("crazy");
}
else {
System.out.println("没劲");
}
结果:
crazy
- 多分支
if(条件表达式1)
{
代码1;
}
else if(条件表达式2)
{
代码2;
}
…
else
{
代码n;//满足表达式1执行代码1,依次向下判断,都不满足执行代码n
}
示例
int a=5;
if (a==1)
{
System.out.println("go");
}
if (a==2)
{
System.out.println("stop");
}
else {
System.out.println("wait");
}
结果:
wait
- swicth
switch(表达式)
{
case 常量1;//表达式等于哪个常量就从哪个常量开始执行
代码1:
break;//遇到break退出swtich
case 常量2;
代码2:
break;
…
case 常量n;
代码n:
break;
default://所有常量都不等于表达式执行default
代码n+1;
break;
}
示例:
{case 1:;
System.out.println("go");
break;
case 2:
System.out.println("stop");
break;
case 3:
System.out.println("wait");
break;
}
结果:
go
- if和swich比较
- 判断的具体数值不多,且都符合byte,short,int,char,enum(枚举),String这6种类型,建议使用swtich
- 对区间判断,对结果为boolean类型判断,建议使用if
3.3 循环控制
- for循环
介绍:用以解决重复多次判断或输出或重复某段代码的问题
for (循环变量初始化;循环条件;变量迭代)
{ 语句(可以多条语句)//只有一条和if一样可以省略{}但建议加上
}
示例:
int a=2;
for(a=1;a<=4;a++)
{
System.out.println("rush");
}
结果
rush
rush
rush
rush
- for循环注意事项
循环条件返回的是一个布尔值表达式
for中的初始化和变量迭代可以写到其他地方,但分号不能省略[]如:for(;循环判断条件;)]
循环初始值初始化和变量迭代可以有多条,但是中间要用逗号隔开
- while循环
基本语法
while(循环条件)
{
语句;
循环变量迭代;
}
示例:
int a=1;
while(a<=6)
{
System.out.println("rush");
a++;
}
结果:
rush
rush
rush
rush
rush
rush
- do while循环
基本语法
循环变量初始化;
do{
语句;
循环变量迭代;
}while(循环条件);
示例:
int a=1;
do {
System.out.println("b");
a++;
}
while(a<=6);
do {
System.out.println("a");
a++;
}while (a>100);
结果:
b
b
b
b
b
b
a
4) 总结
本文仅为博主观看韩顺平老师的网课后的java学习日记,可供各位参考和初步学习java,想要进一步学习java推荐自行搜索韩顺平,进行深度学习.