面向对象 和 面向过程的区别是什么?
- 面向过程 (Object Oriented) :
- OO性能比PO高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。
- 面向对象 (Procedure Oriented) :
- PO易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
OO的性能高于PO的根本原因,并不是“在类调用时需要实例化,开销比较大,比较消耗资源“,因为PO也需要分配内存,计算内存偏移量。
Java 性能差的主要原因并不是因为它是OO语言,而是因为 Java 是半编译语言,最终的执行代码并不是可以直接被 CPU 执行的二进制机械码。而面向过程语言大多都是直接编译成机械码在电脑上执行,并且其它一些面向过程的脚本语言性能也并不一定比 Java 好。
Java 是什么?
Java 是一种语言,但并不只是一种语言,因为在此之前出现的那么多语言也没有引起这么大的轰动。
Java 还是一个完整的平台,有一个庞大的库,其中包括可重用的代码和提供了安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。
Java 的特点有哪些?
Java 语言包含以下特点。
- 面向对象,程序容易理解、开发简单、方便;
- 健壮性,Java编译器能检测出许多其他语言仅在运行时刻才能检测出来的问题;
- 跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;
- 提供大量的 API 扩展,语言强大;