目录
内存管理、适用 区别
C
手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。
适用于系统级编程
C++
手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。
适用于游戏引擎和系统级编程
Java
内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。
平台无关性:具有“一次编写,到处运行”的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。
python
快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用于快速开发应用程序。
js
事件驱动和异步编程:JavaScript使用事件驱动和异步编程模型,处理用户界面事件和网络请求时
前端+服务器开发:JavaScript最初是一种用于在浏览器中添加交互性的脚本语言,现在也可以用于服务器端开发(Node.js)。
按执行方式分类:执行效率
编译型:c、c++
解释型:python、js
动态解释型(不用声明变量类型):python、js
混合:java
按照代码组织的方式分类:扩展/维护/性能
面向过程:c
面向对象(OOP):java
封装性
继承性
多态性:覆盖
多范式(过程、对象):c++、js、python
作用域:在作用域末尾自动销毁
函数
块{}
js(ES6新增let和const关键字,允许块级作用域的变量定义)
类:在类中定义成员变量和成员函数
除了c(面向过程)
全局
python(global声明)
变量提升:js
内存管理、适用 区别
C
手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。
适用于系统级编程
C++
手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。
适用于游戏引擎和系统级编程
Java
内存管理:垃圾收集器自动管理内存,减少了内存泄漏的风险。
平台无关性:具有“一次编写,到处运行”的能力,因为它通过Java虚拟机(JVM)来实现跨平台性。
python
快速开发:Python重视开发者的生产力,它有丰富的标准库和第三方库,用于快速开发应用程序。
js
事件驱动和异步编程:JavaScript使用事件驱动和异步编程模型,处理用户界面事件和网络请求时
前端+服务器开发:JavaScript最初是一种用于在浏览器中添加交互性的脚本语言,现在也可以用于服务器端开发(Node.js)。
按执行方式分类:执行效率
编译型:c、c++
在编译性语言中,源代码首先被编译器(compiler)翻译成机器码。这个翻译过程在程序执行之前发生,生成的可执行文件可以在不依赖源代码的情况下多次执行,所以速度快
编译性语言的可执行文件通常是与特定平台相关的,因此需要重新编译以适应不同的操作系统或硬件架构。
解释型:python、js
源代码逐行被解释器(interpreter)解释执行。代码行按顺序逐行翻译成机器代码并立即执行。因此,程序的执行是一边翻译一边执行的,不需要先编译成独立的可执行文件,所以速度慢
解通常在特定的解释器上运行,因此可以跨平台执行,只要有相应的解释器。
因为逐行执行,所以方便调试
动态解释型(不用声明变量类型):python、js
混合:java
需要程序快速启动和运行时,解释器可以首先发挥作用,省去编译的时间;
当程序运行一段时间后,编译器可以发挥作用,将更多的代码编译成本地代码,减少解释器的中间消耗,获得更高的执行效率。
当内存限制较大时,使用解释执行节约内存;反之使用编译执行来提升效率
java可以被编译成“.class”文件(字节码)然后由JVM(Java虚拟机)解释执行的语言。这使得它既具备了跨平台性,又可以在运行时获得一定的性能优势。
按照代码组织的方式分类:扩展/维护/性能
面向过程:c
面向对象(OOP):java
封装性
就是把属性和方法都放在一个类里面,而且还可以通过访问类的权限属性给区分开,更加安全,不想要释放的功能,直接搞成私有机制。
继承性
就是把之前已经实现好的代码或者方法通过继承的方法拿过来使用,能节省大量的代码量,符合代码设计里面的继承优秀代码特性。文章来源:https://www.toymoban.com/news/detail-712447.html
多态性:覆盖
由于可以继承多个类,能够组合成多种特性,但多态的关键是覆盖,就是同一个方法可以用不同的方式去实现,展现出多态性。文章来源地址https://www.toymoban.com/news/detail-712447.html
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新增let
和const
关键字,允许块级作用域的变量定义)
类:在类中定义成员变量和成员函数
除了c(面向过程)
全局
python(global声明)
变量提升:js
到了这里,关于c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!