一、运算符
1,算术运算符
1-1,二元运算符:+、-、*、/、%(模)
1-2,一元运算符:++、--
1-3,整数运算:
1-3-1,如果两个操作数有一个为 Long,则结果也为 Long
1-3-2,没有 Long 时,结果为 int,即使操作数全为 short,byte 结果也是 int
1-4,浮点数运算:
1-4-1,如果两个操作数有一个为 double,则结果为 double
1-4-2,如果两个操作数都是 float,则结果才为 float
1-5,取模运算:其操作数可以为浮点数,一般使用整数,结果是 “余数”,“余数” 符号和左边操作数相同
如:7%3=1,-7%3=-1,7%-3=1,8%2=0
2,赋值运算符:=
3,扩展运算符:+=、-=、*=、/= 例:a*=b+3;表示 a*(b+3)
4,关系运算符:>、<、>=、<=、==、!=、instanceof(比较对象);其结果只有两个 true/false
5,逻辑运算符:&、&&、|、||、!、^(相同为 false,不同为 true);
6,位运算符:&、|、^、~、>>、<<、>>>
6-1,说明:~(取反)、&(按位与)、|(按位或)、>>(右移运算符,右移一位相当于除 2 取商)、<<(左移运算符,左移一位相当于乘 2),注意:是依据 2 进制进行运算的;例:
两个数 3(0000 0011),4(0000 0100);3&4=0 相同位为1结果为1,不同为0;3|4=7 相同位有一个为1则为1,否则为0;3^4=7 相同位不同时为1,相同时为0;~3=-4,~-4=3,取反-1;
7,条件运算符:?:;例:x?0:1;如果 x 为 true 则返回 0,否则返回 1;
8,字符串连接符:+
9,运得符优先级:逻辑非 > 逻辑与 > 逻辑或;如:a||b&&c 的运算结果为 a||(b&&c)
10,自动类型转换:指的是容量小的数据类型可以自动转换为容量大的数据类型
10-1,可以将整型常量直接赋值给 byte、short、char 等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可
二、方法
1,方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数
2,方法重载:
2-1,不同的含义:形参类型、形参个数、形参顺序不同
2-2,只有返回值不同不构成方法的重载
三、递归
1,递归的基本思想就是“自己调用自己”;
2,递归结构包括两个部分:
2-1,定义递归头:什么时候停止调用自身方法,如果没有头,将陷入死循环
2-2,递归体:什么时候需要调用自身方法
四、栈
1,栈的特点:
1-1,栈描述的是方法执行的内存模型,每个方法被调用时都会创建一个栈帧(存储局部变量、操作数、方法出口等)
1-2,JVA 为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
1-3,栈属于线程私有,不能实现线程间的共享
1-4,栈的存储特性是“先进后出,后进先出”
1-4,栈是由系统自动分配,速度快,栈是一个连续的内存空间
2,堆和特点:
2-1、堆用于存储建好的对象和数组(数组也是对象)
2-2,JVM 只有一个堆,被所有线程共享
2-3,堆是一个不连续的内存空间,分配灵活,速度慢
3,方法区(又叫静态区)特点:
3-1,JVM 只有一个方法区,被所有线程共享
3-2,方法区实际也是堆,只是用于存储类、常量相前的信息
3-2,用来存放程序中永远是不变或唯一的内容。(类信息【class对象】、静态变量、字符串常量等)
浙公网安备 33010602011771号