Java基础知识复习(一)

2016-09-12 徐哲 更多博文 » 博客 » GitHub »

原文链接 http://tblxdezhu.github.io/java/2016/09/12/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E5%A4%8D%E4%B9%A0(%E4%B8%80).html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


1.Java与C++的异同

  1. Java解释性语言:源代码-编译器(字节码)-JVM执行 C/C++编译型语言:编译链接成二进制代码
  2. Java不存在全局变量,全局函数,没有指针,不支持多重继承,不支持运算符重载,没有预处理器,不提供goto语句(但保留关键字),不支持自动强制类型转换,必须显式强制类型转换。
  3. Java为纯面向对象语言,所有代码包括函数,变量等都属于类

2.关于

public static void main(String[] args)

main()方法必须返回值为void,并且有static和public关键字。

  1. public与static没有先后顺序
  2. main()方法可以定义为final,可以用synchronized修饰
  3. 不能用abstract修饰main()
  4. 每个类都可以定义main()方法,但是只有
  • [x]与文件名相同

  • [x] 用public修饰的类中的main()方法才是程序的入口方法。

3.Java程序初始化顺序

实例化对象时,对象所在类的所有成员变量首先按照顺序进行初始化(即使变量定义散布于方法定义中),它们仍然在任何方法(包括构造函数)被调用之前初始化

不同代码块执行顺序:

父类静态变量—父类静态代码块—子类静态变量—子类静态代码块—父类非静态变量—父类非静态代码块—父类构造函数—子类非静态变量— 子类非静态代码块—子类构造函数