- JAVA语言有哪些优点
- 纯面向对象
- 平台无关性 虚拟机在不同平台不同实现 程序编译为字节码.class文件 不同平台的虚拟机根据平台特性解释成对应的机器码
- JAVA提供很多内置类库 例如:对多线程支持Thread、Runnable、Callable, 对网络编程支持, 提供垃圾回收器
- 提供对Web应用开发支持 例如Applet、Servlet、JSP、Socket
- 除去C++难以理解的特性 例如头文件、指针、结构、运算符重载、多重继承、虚拟基础类
- JAVA和C++异同点
- JAVA为解释型语言(编译为字节码,JVM解释为机器码),C++为编译型语言(编译、链接生成可执行的二进制代码)
- JAVA纯面向对象
- 参考上一条5
-
为什么需要 public static void main(String[] args)
JAVA程序入口,public公共修饰符,static静态修饰符,该类不需要初始化对象就可调用main特殊方法
还可用final 和 synchronized 来修饰mian -
JAVA程序初始化过程
当实例化对象时,对象所在类的所有成员变量都要初始化,只有成员变量都初始化后,才会调用对象所在类的构造方法创建对象,三个原则,有优先级
- 静态对象(变量)优先于 非静态对象(变量)初始化。静态对象\变量只初始化一次
- 父类优先于子类初始化
- 按照成员变量的定义顺序进行初始化
程序初始化顺序:
父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数
- JAVA作用域
三类变量:成员变量、静态变量、局部变量
成员变量和方法修饰符作用域:
修饰符 当前类 同一package 子类 其他package
public √ √ √ √
private √ × × ×
protected √ √ √ ×
default √ √ × ×