c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】

C

手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。

适用于系统级编程

C++

手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。

适用于游戏引擎和系统级编程

Java

内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。

平台无关性:具有"一次编写,到处运行"的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。

python

快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用于快速开发应用程序。

js

事件驱动和异步编程:JavaScript使用事件驱动和异步编程模型,处理用户界面事件和网络请求时

前端+服务器开发:JavaScript最初是一种用于在浏览器中添加交互性的脚本语言,现在也可以用于服务器端开发(Node.js)。

执行效率

编译型:c、c++、

解释型:java、python、js

动态解释型:python、js(不用声明变量类型)

扩展/维护/性能

面向过程:c

面向对象(OOP):java

封装性

就是把属性和方法都放在一个类里面,而且还可以通过访问类的权限属性给区分开,更加安全,不想要释放的功能,直接搞成私有机制。

继承性

就是把之前已经实现好的代码或者方法通过继承的方法拿过来使用,能节省大量的代码量,符合代码设计里面的继承优秀代码特性。

多态性:覆盖

由于可以继承多个类,能够组合成多种特性,但多态的关键是覆盖,就是同一个方法可以用不同的方式去实现,展现出多态性。

javascript 复制代码
class Animal {
  speak() {
    console.log("Animal makes a sound");
  }
}

class Dog extends Animal {
  speak() {
    console.log("Dog barks");
  }
}

class Cat extends Animal {
  speak() {
    console.log("Cat meows");
  }
}

const dog = new Dog();
const cat = new Cat();

dog.speak(); // 输出 "Dog barks"
cat.speak(); // 输出 "Cat meows"

多范式(过程、对象):c++、js、python

作用域:在作用域末尾自动销毁

函数

块{}

js(ES6新增letconst关键字,允许块级作用域的变量定义)

类:在类中定义成员变量和成员函数

除了c(面向过程)

全局

python(global声明)

变量提升:js

相关推荐
geovindu2 分钟前
CSharp: State Pattern
开发语言·后端·c#·.net·状态模式·行为模式
小欣加油3 分钟前
Leetcode2058 找出临界点之间的最小和最大距离
数据结构·c++·算法·leetcode·职场和发展
IT小白杨6 分钟前
TikTok小店防封号浏览器实战:2026年多店铺环境隔离与账号安全运营技术解析
开发语言·数据库·安全·php·chrome devtools·指纹浏览器
2601_9669496512 分钟前
Python 量化开发为什么适合使用金融数据 SDK?从数据获取到策略研究的工程化实践
开发语言·python·数据分析·量化交易·股票数据·quantdash
万年咸鱼13 分钟前
Java ArrayList 详解:原理、用法与实战
java·开发语言·windows
长友cy18 分钟前
Qt官方示例Application源码阅读
开发语言·qt
王老师青少年编程19 分钟前
2026年山东省小学组【信息学体验营】复赛真题及题解T2:小兔子爬楼梯
c++·真题·山东省·csp·信奥赛·复赛·信息学体验营
Yfhonier23 分钟前
6441. 特别的除法
c++·算法
程序员良辰25 分钟前
服务器 JDK 环境变量配置:一键安装和手动配置有什么区别?
开发语言·python
奈斯先生Vector32 分钟前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc