目录
一 注释
在Java中有三种注释:单行注释(//内容),多行注释(/*内容*/)与文档注释(/**内容*/),一般情况下注释并不影响代码的运行结果,但是要注意有时候会出现编码问题,这个时候就需要
例子:
/**
这是文档注释
*/
public class Demo{
public static void main(String[] ars){
//这是单行注释
System.out.println("hello word!");
/*
这是多行注释
*/
}
}
二 变量
1、程序为什么需要变量?
当程序执行时是需要临时存放一些数据的,这个时候就需要用变量来存储一些数据;准确来说,当数据存到某块内存中时,我们就需要变量来标识。
2、变量名的命名规则
使用字符、下划线数字等命名,不能以数字开头,多个单词使用驼峰命名。
3、变量的作用域
全局变量与局部变量
全局变量:定义在类中且在方法之外,类中方法都可以使用(不考虑静态情况)。
局部变量:定义在方法或者代码块中,只能该方法或方法块中来使用。
三 数据类型
1、为什么需要数据类型?
数据类型可以决定变量所被分配存储单元的数量
在Java中有八大数据类型、引用类型与var类型
2、整数类型
byte(1 byte = 8bit)
short(2 byte = 16bit)
int(4 byte = 32bit)
long(8 byte = 64bit)
3、浮点类型
float(4 byte = 32bit)
double(8 byte = 64bit)
4、字符类型
char(2 byte= 16bit)
5、布尔类型
boolean(1 byte = 8bit)
6、引用类型
引用类型可以是所有Java类包括自定义的类
7、var数据类型
var类型会根据值来判断该数据类型
8、数据类型之间的强制转换
如果把字节小的数据类型赋值给字节大的就会自动发生数据类型转换(比如:int->double或者long等)
如果把小字节类型赋值给大字节的语法就会报错,这时就需要显式转型,不然语法就会报错(比如:double A = A)
四 运算符
1、算数运算符
加(+)、减(-)、乘(*)、除(/)、取余(%)、自增(++)、自减(--)
加减乘除与数学中的一样,但要注意的是(+)同时也是一个连接符号,例子:
System.out.print("string1"+"string2");//输出string1string2
System.out.print("string"+123);//输出string123
取余是数学中的余数(没什么特别的)
自增(++)与自减(--),相当于在原来的数值上+1或-1,但要注意(++)或(--)放在变量前后是有区别的,放在前面时会先执行+1或-1,放再变量后面时后执行+1或-1,例子:
int i = 0,j = 0;
System.out.println("j的值:"+j+"\ni的值:"+i);
System.out.println("++i的值:"+(++i));
System.out.println("j++的值:"+(j++));
运行结果:
2、比较运算符
大于(>)、小于(<)、大于大于(>=)、小于等于(<=)、不等于(!=)、等于(==)
比较运算符的结果只有两种:true或者false
3、逻辑运算符
与(&&)、或(||)、非(!)
逻辑运算符的结果也是只有两种:true或者false,用法与普通计算符相同
4、布尔代数
与(&)、或(|)、非(!)、异或(^)
布尔代数是用二进制来进行计算的
与(&):当两个数二进制的对应位置上都为1时,结果为1,否则为0
或(|):当两个数二进制的对应位置上有一个为1时,结果为1,否则为0
非(!):返回相反的判断结果(这个比较特殊,并不能用于计算)
异或(^):两个数的二进制对应位置上不相同时,结果为1,否则为0
例子:
public static void main(String[] args){
int a = 10, b = 5;
System.out.println(" a & b = " + (a & b));
System.out.println(" a | b = " + (a | b));
int aa = 10, bb = 12;
System.out.println(aa ^ bb);
}
结果:
5、位运算
左移(<<):左移一位相当于乘2
右移(>>):右移一位相当于除2
逻辑右移(>>>):与右移相同
例子:
public static void main(String[] args){
int a = 2;
System.out.println("a = "+(a<<1));
int b = 4;
System.out.println("b = "+(b>>1));
byte c = 4;
System.out.println("c = "+(c>>>1));
}
结果:
五 流程控制
1、分支选择
if
if(逻辑表达式){
//代码块
} else {
//代码块
}
if...else
if(逻辑表达式){
//代码块
} else {
//代码块
}
if...else if...else if...else
if(逻辑表达式){
//代码块
} else if (逻辑表达式) {
//代码块
} else if (逻辑表达式) {
//代码块
} else {
//代码块
}
2、三目运算符
结构:条件表达式?表达式1:表达式2
如果条件表达式的结果为true,返回表达式1的结果,否则返回表达式二的结果,例子:
public static void main(String[] args){
System.out.println(1==1?1+1:2+2);
System.out.println(1==2?1+1:2+2);
}
结果:
switch
结构:
//此处变量只支持 byte, short, char, int, enum, String
switch(变量) {
case 值: 语句;
case 值: 语句;
case 值: 语句;
case 值: 语句;
case 值: 语句;
default:语句;
}
用法:
public static void main(String[] args) {
int value = 102;
switch(value){
//当程序执行时遇到break关键字就会结束switch语句
case 101:System.out.println("101value : " + value );break;
case 102:System.out.println("102value : " + value );break;
case 103:System.out.println("103value : " + value );break;
case 104:System.out.println("104value : " + value );break;
default:System.out.println("default statement");
}
System.out.println("------------------------------");
}
注意:switch语句的default可以省略不写
3、循环
while
结构:
while(条件) {
//循环体
}
先执行条件再执行循环体,当条件满足时会一直循环,直到条件不满足
do...while();
结构:
do {
//循环体
} while (条件);
先执行循环体再执行条件,也是满足条件一直循环,否则退出循环
for
结构:
for(初始化条件;逻辑判断;更新语句) {
//循环体
}
for循环会先执行初始化条件,然后进行逻辑判断,若满足条件则进入循环体并执行更新语句,若一直满足则重复执行该过程,直到逻辑判断不满足退出循环
break与continue关键字
在循环中,我们有两个关键字来完善我们对循环语句的控制
break:跳出循环(若是嵌套循环,则break只能跳出一层)
continue:结束当前循环,进入下一次循环