一、Java特性
1)简单性
Java 为开发者提供了简单易用的用户体验,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、操作符重载,内存管理等。Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。
2)可移植性
Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。
3)安全性
Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、防篡改的程序。
从一开始,Java 就设计了很多可以防范攻击的机制,比如说:
运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。
字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。
安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。
全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。
安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。
4)并发性
Java 在多线程方面做得非常突出,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。
二、Java优越性
它是一门结构严谨、面向对象的编程语言:
摆脱了硬件平台的束缚,实现了“一次编写,处处运行”的理念;
内存管理相对安全,避免了绝大部分内存泄露和指针越界的问题;
实现了热点代码检测和运行时编译,使得 Java 应用能随着运行时间的增长而获得更高的性能;
有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库。
三、JDK、JRE、JVM区别
1. JVM(Java Virtual Machine)功能:Java虚拟机 字节码执行:负责将编译后的Java字节码