2018年年初开始学习java,坚持学习了一个月之后,因为一件事情中止后,期间又再过了春节假期。如今想要继续学习,发现复习需要花费很多精力才能重拾已学过的东西。
复习内容为:
1、JAVA编译执行过程
1) JAVAC是java的编译程序,即将test.java编译成test.class 字节码文件
2) JAVA是java的解释程序,即将test.class 字节码文件进行解释执行
2、环境变量
1) 环境变量查看是命令行中使用set;
2) path环境变量的作用是提供os寻找和执行应用程序的路径,当OS在当前目录没有找到要执行的程序和命令时,就会按照path环境变量指定的目录依次去找。环境变量多路径之间;隔开,linux是:隔开。
3、main函数含义
main函数各部分组成的含义:
1)public static void main(String[] args) {}:Java可执行程序入口
2) static:Java关键字,声明是一个静态的
3) void:返回值类型,表示无返回值
4) main:非Java关键字,但是是Java可运行程序的入口标识
5) String[]:数据类型为字符串的数组
6)args:参数名称,此处为形式参数
7) System.out.println("Hello World!"):执行System类下静态变量out的println方法,接受字符串类型参数Hello World!作用:打印接收的参数到控制台,并换行。
public static void main(String[] args) {
System.out.print("hello world");
}
4、三种注释方式
单行注释 // TODO Auto-generated method stub
多行注释 /*
*/
文档注释 /**
*
*/
5、变量长度与类型转换
1)八种基本类型全部是小写;
2)小数常量的默认类型为double 型,即占8个字节。
分类 | Datatype | bit长度 | 隐式转换规则 |
整型 | byte | 8位(1字节) | 1) 所有的byte 型、short 型和char 的值将被提升到int型。 2) 如果一个操作数是long 型,计算结果就是long 型; 3) 如果一个操作数是float 型,计算结果就是float 型; 4) 如果一个操作数是double 型,计算结果就是double 型。 |
short | 16位(2字节) | ||
int | 32位(4字节) | ||
long | 64位(8字节) | ||
浮点型 | float | 32位(4字节) | |
double | 64位(8字节) | ||
字符型 | char | 16位(2字节) Java是unicode编码 | |
| boolean |
|
6、变量作用域
在定义变量的语句所属于的那层大括号{}之间,就是这个变量的有效作用范围
根据声明的位置:
成员变量:——类内方法外
局部变量:——方法内,作用域以{ } 为范围界限
静态变量:类是静态变量,成员变量是非静态变量???
7、流控制程序
switch详见 switch穿透效果随笔;
8、内存分配和释放规则
1) 八种基本类型变量和三种引用变量定义时分配在栈内存中;
2) New出来的对象和数组放在堆内存中;
3)栈中可以定义一个引用变量存在对象或数组的首地址,以后可以通过这个引用变量访问对象和数组的。引用变量在程序运行到作用域结束时释放。
4)堆内存中的对象和数组即使运行到作用域外也不会释放。当没有引用变量指向它时,会变成垃圾,不能再被使用。需要靠垃圾回收清理。
5)基本类型占1块内存;引用类型占2块内存
9、遗留问题
public static void main(String[] args) {
int a =2;
int test1= 3*a++ + a ;
System.out.println("a: "+a);
System.out.println("test1: "+test1);
a =2;
int test2= a + 3*a++; //shun xu test
System.out.println("a: "+a);
System.out.println("test2: "+test2);
a =2;
int test3= a + 3*(a++); //() test
System.out.println("a: "+a);
System.out.println("test3: "+test3);
System.out.println("=================================");