一、运算符

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对象】、静态变量、字符串常量等)

 

posted on 2018-12-20 17:59  独自的独行  阅读(124)  评论(0)    收藏  举报