1.可以用中文当变量名
2.值得加强记忆的运算符
& 逻辑与 两个操作数都为true,结果才是true,如果左边为false,右边依旧会执行
| 逻辑或 两个操作数都为false,结果才是false,如果左边为true,右边依旧会执行
&& 短路与 两个操作数都为true,结果才是true,如果左边为false,右边就不会执行
|| 短路或 两个操作数都为false,结果才是false,如果左边为true,右边就不会执行
& 按位与 3 & 4 = 0011&0100=0000
| 按位或3|4=0011|0100=0111
<< 左移运算 3<<2 <==> 3*2*2=12 左移一位相当于乘2
>> 右移运算 12>>2 <==> 12/2/2=3右移一位相当于除2
+ 字符串连接符,当+号左右两边只要有一个字符串就会变为字符串连接符
?:三目运算符 等价于if else
3.带标签的continue和break
break 标号,终止标号到break直接的代码块
continue 标号,跳到标号对应的位置继续执行
4.方法的重载
特征:同名的方法,形参类型不同,形参个数不同,形参顺序不同
注:返回值类型不同和参数名称不同不构成重载
5.递归
递归的本质是自己调用自己,递归费时费力,一般不建议使用
6.java jvm
虚拟机的内存可以分为三个区域:栈 stack,堆heap,方法区method
栈特点:描述方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出口等),jvm为每一个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量)
栈是程序私有,不能实现程序共享
先进后出,后进先出
栈是由系统自动分配的速度快,是一个连续的内存空间
堆特点:就是用来存储对象的,无序 ,被所有线程共享
方法区:也是堆,存放不变或唯一的内容,类的相关信息
例
public class JavaStudy {
int a;
Computer cp1;
public static void main(String[] args) {
JavaStudy javaStudy = new JavaStudy();
javaStudy.aa();
Computer cp2 = new Computer();
cp2.stand="这个也是";
javaStudy.cp1 = cp2;
System.out.println(javaStudy.cp1.stand);
}
void aa(){
System.out.println("这是不变的字符串");
}
}
class Computer{
String stand;
}
2022/3/26



