Java应用程序的运行机制
- 计算机高级语言的类型主要有编译型和解释型,Java是两种语言的结合.
- Java首先利用文本编辑器编写Java源程序,源文件的后缀为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class;最后利用虚拟机(解释器.java)解释执行.

Eclipse
- 使用Eclipse创建一个类以后,会自动在项目下的bin目录里面生成.class编译文件
变量
- 变量的本质是代表一个"可操作的存储空间",空间位置是确定的,但是里面放什么值不确定的,就是停车位是固定的,停什么车不固定的.
- Java是一种强类型语言,每个变量都必须声明其数据类型.
- 变量作为程序最基本的存储单元,其要素包括变量名,变量类型和作用域.
变量的分类
- 局部变量(local variable)
- 方法或语句块内部定义的变量.生命周期是从声明位置开始到方法或语句块执行完毕为止.
- 局部变量在使用前必须先声明,初始化(赋值)再使用.
- 成员变量(也叫实例变量member variable)
- 方法外部,类的内部定义的变量.从属于对象,生命周期伴随对象始终.
- 如果不自行初始化,会自动初始化成该类型的默认初始值.
- 静态变量(类变量 static variable)
- 使用static定义.从属于类,生命周期伴随类始终,从类加载到卸载.
常量

double和float

- 精确计算

a++和++a

逻辑运算符

- &和&&的区别:&会计算前后然后去比较;&&只要前面的是false就不计算&&后面的,直接返回false
条件运算符(三目运算)


运算符优先级


自动类型转换
- 指的是容量小的数据可以自动转换为容量大的数据类型

- 可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。
short b = 12; //合法
short b = 1234567;//非法,1234567超出了short的表数范围
控制语句
- 结构
- if单选择结构

+ if-else双选择结构
+ if-else if和if-else的区别:if-else后面没有条件,不是真就是假;if-else if后面有条件判断,可以有另外的结果
+ if-else if-else多选择结构
+ switch结构(多值判断)
switch case,遇到break退出否则一直往下执行,JDK1.7之后可以使用字符串
循环
- while循环(先判断后执行)
- 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。

- do while(先执行,后判断)
for循环
- for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}

方法
- 声明格式;
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){
Java语句;… … …
}
- 方法的调用方式;
- 对象名.方法名(实参列表)
- 1.形式参数:在方法声明时用于接收外界传入的数据;
- 2.实参:调用方法时实际传给方法的数据;
- 3.返回值:方法在执行完毕返还给调用它的环境的数据;
- 返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为void;

return
作用:
- 1.方法结束;
- 2.返回值

重载
- 实际是完全不同的方法,只是名称相同而已!
- 构成条件:
- 不同的含义:形参类型,形参个数,形参顺序不同
- 只有返回值不同步构成方法的重载

递归
- 思想:自己调自己
- 递归结构:
- 定义递归头.解答:什么时候不调用自身方法.如果没有头,将陷入死循环,也就是递归的结束条件.
- 递归体.解答:什么时候需要调用自身方法.
- 递归的缺陷
- 简单的程序是递归的优点之一.但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重.
- 注意事项
- 任何能用递归解决的问题也能使用迭代解决.当递归方法可以更加自然地反映问题,并且易于理解和调试,并且不强调效率问题时,可以采用递归;
- 在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存.