1、Java语言特点
- 面向对象(封装、继承、多态)
- 平台无关性
- 可靠性,安全性
- 支持多线程
- 支持网络编程并且很方便
- 编译与解释并存
2、Java和C++的关系和区别
- 都是面向对象的语言,都支持封装、继承和多态;
- C++ 支持指针,而 Java 没有指针的概念;
- C++ 支持多继承,而 Java 不支持多重继承,但允许一个类实现多个接口;
- Java 是完全面向对象的语言,并且还取消了 C/C++ 中的结构和联合,使编译程序更加简洁;
- Java 自动进行无用内存回收操作,不再需要程序员进行手动删除,而 C++ 中必须由程序释放内存资源,这就增加了程序员的负担。
- Java 不支持操作符重载,操作符重载则被认为是 C++ 的突出特征;
- Java 允许预处理,但不支持预处理器功能,所以为了实现预处理,它提供了引入语句(import),但它与 C++ 预处理器的功能类似;
- Java 不支持缺省参数函数,而 C++ 支持;
- C 和 C++ 不支持字符串变量,在 C 和 C++ 程序中使用“Null”终止符代表字符串的结束。在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的;
- goto 语句是 C 和 C++ 的“遗物”,Java 不提供 goto 语句,虽然 Java 指定 goto 作为关键字,但不支持它的使用,这使程序更简洁易读;
- Java 不支持 C++ 中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换
3、JVM、JDK和JRE的关系
- JDK是(Java Development Kit)的缩写,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序。
- JRE是Java Runtime Environment缩写,它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。
- JDK包含JRE,JRE包含JVM。
- JRE = JVM + Java 核心类库
- JDK = JRE + Java工具+编译器+调试器
4、什么是字节码(.class文件)
一个.java文件从编译到运行的示例图如下:
5、采用字节码的好处
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。