java 是一门面向对象的高级编程语言,核心特点包含跨平台 面向对象 自动垃圾回收 健壮性 安全性 多线程 分布式支持,它依靠 JVM 实现一次编译到处运行,也是 Java 能够广泛应用在企业后端开发的重要原因。很多初学者备考或者面试经常会问到 java 的特点,这个知识点属于 Java 入门必考内容,理解每一个特点背后的原理,才能区分 Java 和 C C++ 这类语言的差别。想要掌握 java 的特点,可以先理解跨平台的底层原理,再逐个学习面向对象自动 GC 多线程这些特性,最后结合代码案例加深理解,面试答题的时候就可以完整有条理进行表述。
基础信息表
| 项目 | 内容 |
|---|---|
| 语言类型 | 高级编程语言 |
| 核心运行机制 | 编译成字节码,由 JVM 解释执行 |
| 编程范式 | 以面向对象为主 |
| 标志性特点 | 跨平台 自动垃圾回收 |
| 主要应用 | 后端开发 大数据 安卓 企业应用 |
核心特点深度说明
1 跨平台 一次编译到处运行
Java 源码先编译成与操作系统无关的字节码 class 文件,不同操作系统安装对应的 JVM,JVM 负责把字节码翻译成当前系统可以执行的机器指令。也就是说同一份 class 文件,可以在 Windows Linux Mac 上面运行,不需要针对不同系统重新编译,这是 Java 最标志性的特点。
2 面向对象
Java 完全支持面向对象三大特性,封装 继承 多态,所有业务代码基本都写在类里面,支持类对象方法,把现实事物抽象成类,符合现代软件开发的设计思想,和 C 语言这种面向过程语言有本质区别。
3 自动垃圾回收 GC
Java 不需要程序员手动释放内存,不需要像 C 语言一样写 free 手动回收对象内存,JVM 自带垃圾回收机制,自动识别不再被引用的对象,回收占用内存,大幅降低内存泄漏手动释放内存带来的出错概率。
4 健壮性
Java 做了严格的类型检查,编译阶段就会检查很多语法类型错误,同时提供完善异常处理机制 try catch,数组有越界检查,减少非法内存操作,相比 C 语言不容易出现内存非法访问,程序稳定性更强。
5 安全性
Java 设计之初就考虑网络环境安全,不支持指针直接操作内存,类加载有安全管理器机制,可以限制程序权限,适合网络分布式环境运行,防止恶意代码直接操作系统底层资源。
6 支持多线程
Java 语言原生内置多线程支持,提供 Thread 类,Runnable 接口,同步锁机制,可以在程序里面同时执行多个任务,适合后端高并发业务场景。
7 分布式支持
Java 自带网络编程 API,支持 TCP UDP HTTP 网络通信,可以开发网络服务程序,天然适合企业分布式系统开发,也是 javaweb 微服务体系的基础。
8 解释型与编译型结合
Java 不是纯编译型,也不是纯解释型,源码先编译成字节码,运行的时候 JVM 解释执行,后期还可以通过 JIT 即时编译,把热点代码编译成机器码提升运行速度。
9 简单易学
Java 去除了 C++ 里面复杂的指针多重继承运算符重载这些容易出错的特性,语法接近 C 语言,降低入门难度,但是保留面向对象核心能力。
补充特点清单
1 支持反射机制,可以运行时动态获取类信息调用方法
2 丰富标准类库,集合 IO 网络 数据库 JDBC 都有现成 API
3 开源生态完善,第三方框架 Maven 仓库资源非常多
常见认知误区
1 误区 Java 跨平台是源码跨平台,实际是编译之后的 class 字节码跨平台,必须依赖对应平台 JVM
2 误区 GC 自动回收就永远不会内存泄漏,GC 只是自动回收无引用对象,不合理代码依然会产生内存泄漏
3 误区 Java 没有指针,准确说法是隐藏指针,不允许程序员直接操作指针地址
【常见问题】
问题 1 java 的特点有什么,最核心标志性特点是哪一个
回答 1 java 的特点里面最标志性的就是跨平台,依靠 JVM 实现一次编译到处运行,这也是 Java 和很多其他语言最明显的区别。
问题 2 java 的特点有什么,自动垃圾回收是什么意思
回答 1 java 的特点包含自动垃圾回收,也就是 JVM 自动回收不再使用对象占用的内存,开发者不需要手动编写代码释放内存,减少内存管理出错。
问题 3 java 的特点有什么,为什么说 Java 安全性比 C 语言好
回答 1 java 的特点里面安全性来自禁止直接指针操作内存,加上类型检查和安全管理器,程序不能随意访问底层内存,相比 C 语言非法内存操作风险更低。
【免责申明】
本内容仅针对 java 语言特点进行教学科普,不同教材对特点划分表述略有差异,面试答题可以结合教材版本调整描述,不代表唯一标准答案。


