mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
2024年10月10日 09:56
This commit is contained in:
parent
7ddf28cc8f
commit
41dc59c56c
4
docs/notes/01_c-basic/00_xdx/assets/10.svg
Normal file
4
docs/notes/01_c-basic/00_xdx/assets/10.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 75 KiB |
@ -824,3 +824,37 @@ int main() { // 定义主函数
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>
|
>
|
||||||
> C++ 是 C 语言的继承者和扩展,它保留了 C 语言的优势,并引入了更多现代编程语言的特性,使得它在更广泛的应用领域中得到应用。
|
> C++ 是 C 语言的继承者和扩展,它保留了 C 语言的优势,并引入了更多现代编程语言的特性,使得它在更广泛的应用领域中得到应用。
|
||||||
|
|
||||||
|
## 5.3 C 语言和 Java 语言的对比
|
||||||
|
|
||||||
|
* C 语言 和 Java 语言的软件设计思想对比,如下所示:
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
>
|
||||||
|
> * ① Java 语言编写的应用是直接运行在 JVM(Java 虚拟机)上,体现了`分层`的软件设计思想;并且,这种`分层`的软件设计思想给 Java 语言带来了`跨平台性`和`自动内存管理`等方面的功能。
|
||||||
|
> * ② C 语言编写的应用是直接运行在操作系统之上,其设计哲学是:`简洁、高效、直接控制底层`。
|
||||||
|
|
||||||
|
![](./assets/10.svg)
|
||||||
|
|
||||||
|
* 虽然 C 语言和 Java 语言有很多相似之处,但在设计理念、运行环境、内存管理等方面有显著差异,如下所示:
|
||||||
|
|
||||||
|
| 对比角度 | C 语言 | Java 语言 |
|
||||||
|
| ---------------- | ----------------------------------------------------- | ------------------------------------------------------- |
|
||||||
|
| **编译与解释** | 编译型语言,源代码编译为机器码直接执行,效率高。 | 解释与编译结合,源代码编译为字节码,通过 JVM 解释运行。 |
|
||||||
|
| **平台依赖性** | 与操作系统和硬件平台紧密结合,跨平台能力较弱。 | 通过 JVM 实现跨平台,"编写一次,到处运行"。 |
|
||||||
|
| **内存管理** | 手动管理内存,需显式分配与释放,容易出现内存泄漏。 | 自动垃圾回收,简化内存管理,降低内存泄漏风险。 |
|
||||||
|
| **指针** | 支持指针,能直接操作内存,但可能导致安全问题。 | 不支持指针操作,避免内存安全隐患。 |
|
||||||
|
| **编程范式** | 过程化编程,主要通过函数调用组织程序。 | 完全的面向对象编程,一切皆为对象。 |
|
||||||
|
| **异常处理** | 不支持异常处理,错误处理通过返回值或全局变量实现。 | 提供强大的异常处理机制,通过 try-catch-finally 块处理。 |
|
||||||
|
| **标准库与生态** | 标准库简洁,需大量使用第三方库开发复杂应用。 | 标准库丰富,拥有庞大生态系统和社区支持。 |
|
||||||
|
| **运行时性能** | 直接编译成机器码,性能高,适合高性能要求的场景。 | 运行在虚拟机上,性能稍低,但通过 JIT 等优化提升效率。 |
|
||||||
|
| **多线程支持** | 依赖操作系统 API(如:pthread),多线程编程较为复杂。 | 内置多线程支持,提供 Thread 类和并发工具类。 |
|
||||||
|
| **应用场景** | 系统级编程,如操作系统、嵌入式系统、驱动程序等。 | 企业级应用、Web开发、Android开发、大数据处理等。 |
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
>
|
||||||
|
> 总结而言:
|
||||||
|
>
|
||||||
|
> * ① C 语言适合底层编程、系统级开发,性能高、控制力强,但对程序员的要求也更高。而 Java 语言则更适合应用层开发,拥有丰富的库和工具支持,开发效率更高,并且由于自动内存管理和异常处理,编写的代码通常更加安全和健壮。
|
||||||
|
> * ② 两者各有优势,选择使用哪种语言应根据项目需求和开发环境来决定。
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user