一、java程序运行过程:
1、编译javac文件,把java源文件编译成class字节码文件
2、运行java:运行class文件
二、标识符(给类,方法,变量起名):
1、以字母(采用unicode字符集),下划线,$开头
2,其余部分可以是:字母(采用unicode字符集),下划线,$,数字
3、不能是关键字
三、变量
1、局部变量:定义在方法内或语句块内(使用前必需手动初始化)
2、成员变量(实例变量field):定义在类里面,方法外面,从属于对象!(如果我们没手动初始化,系统会自动初始化)规则如下:
数字:0,0.0boolean:falsechar:\u0000string:null
3、静态变量:定义在类里面方法外面,使用static修饰,从属于类!(如果我们没手动初始化,系统会自动初始化)规则和成员变量相同
数据类型
1、基本数据类型
a)数字:Ⅰ整数:byte(1个字节 -128~127)short(2个字节) int(4个字节) long(8个字节)
Ⅱ浮点数:float(4个字节)double(8个字节浮点数常默认为盖该类型)
b)字符:char(2个字节)
c)布尔 boolean(一位)
2、引用类型(4个字节)
a)数组
b)对象
c)接口
表达式:
1、类型的自动提升:如果有long结果就是long,如果有double结果就是double
2、强制转型
四、运算符(忽略)
五、控制语句
1、顺序结构
2、选择结构:a)if b)if...else c)if...else if...else d)switch(多值选择的时候 表达式:int或char/short/byte,枚举 jdk7之后可以使用字符串)
3、循环结构:a)while先判断后执行 b)do...while先执行后判断 c)for先判断后执行
break:强制终止整个循环 continue:结束本次循环,继续下一次
二、深入Java数组
1、数组的定义与初始化 在Java中,数组也是一种数据类型,而且是一种引用数据类型。
定义数组:
type[] arrayName; // 建议使用这种形式 type arrayName[]; 注意:定义一个数组时,仅仅是定义了一个引用变量(也就是一个指针),它还未指向任何有效的内存,因此,定义数组时不能指定数组的长度。
2、数组在内存中的运行机制 数组是一种引用数据类型,所以数组变量只是一个引用。通过这个引用访问它所指向的有效内存(数组对象本身)。
通常,如果数组引用变量是一个局部变量,它会被存储在栈(stack)内存中,而实际的数组对象被存储在堆(heap)内存中
下面看一个例子:
int[] a = {1,2,3}; int[] b = new int[4]; b = a;
从上面的例子可以看出,Java的引用类型就相当于C/C++中的指针类型。
3、栈内存与堆内存 栈内存:当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,内存栈也将自然销毁。
堆内存:当我们在程序中创建(new)一个对象时,该对象会被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。