Different
Different
目录
编程语言
依赖于具体实现
Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算都做了明确的说明。
例如,Java中的int永远为32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。唯一的限制只是int类型的大小不能低于short int,并且不能高于long int。
语言书写风格
语言结构风格
- 缩进风格:
Python - 大括号风格:
C,C++,C#,Java,Js
分号风格
- 无分号风格:
Python(python也可以加分号) - 有分号风格:
C,C++,Java - 可有可无:
JavaScript(我偏向于无分号。注意选择无分号风格时,有时需要在开头加分号) - 有无不同:
Matlab,有分号和无分号是不同的含义(即时输出 / 暂不输出)
逗号
与C/C++不同:Java不使用逗号运算符。不过,可以在for语句的第1和第3部分中使用逗号分隔表达式列表
标准库
C语言:需要先引入标准库才能使用很多函数和变量,详见C标准库 - <stdio.h>(菜鸟)比如库变量:
size_t、FILE、fpos_t比如库函数:
printf、sprintf、vfprintf、vprintf、vsprintf、snprintf等等比如库宏:
NULL、EOF等等Python:无需手动引入标准库,就能使用内置函数、内置变量、内置常量等Js:原生不支持
算法和语言
注释符号
C语言、Java、Js://单行注释,/* */多行注释Python:#单行注释,'''或"""包裹多行注释Matlab:%单行注释,%{ }%多行注释
输入输出
| 编程语言 | C(弱类型) | C++(弱类型 - 强一点) | Python(强类型) | Java(强类型) |
|---|---|---|---|---|
| 输入 | scanf("%d",&var) | cin >> var | var=input() | |
| 保存方式 | 按格式保存 | 智能对象 | string类型 | |
| —— | —————— | —————— | —————— | —————— |
| 输出 | printf("") | cout << ""(智能对象) | print("") | System.out.println(“”) |
| 库的依赖 | 依赖于标准库<stdio.h> | 依赖于库<iostream> | 使用内置函数 | |
| 默认换行 | 否 | 否 | 是 | 是 |
| 智能转换 | 否,一般用格式化输出 | 是,cout << 1 | 是,print(1) | 是 |
| 拼接输出 | #include <string.h>strcat('1',1); | cout << '1' << 1 | print('1'+str(1)) | 直接+就行 |
比较总结
| 语言 | C | C++(超集) | C# | Java | Js | Ts(超集) | Python |
|---|---|---|---|---|---|---|---|
| 变量类型1 | 静态变量 | 静态变量 | 静态变量 | 静态变量 | 动态变量 | 静态变量 | 动态变量 |
| 预声明类型 | 需声明类型 | 需声明类型 | 需声明类型 | 需声明类型 | 仅声明作用域 | 需声明类型 | 不声明类型 |
| 变量类型2 | 弱类型 | 弱类型 | 强类型 | 强类型 | 弱类型 | 弱类型 | 强类型 |
| ———— | ———— | ———— | ———— | ———— | ———— | ———— | ———— |
| 编译or解释 | 编译型语言 | 编译型语言 | 编译解释语言 | 编译解释语言 | 解释型语言 | 编译解释语言 | 解释型语言 |
| 可当脚本语言 | 否 | 否 | 是 | 否 | 是 | 是 | 是 |
| 函数原型声明 | 需要 | 需要 | 不需要 | 不需要 | 不需要 | ||
| 函数定义位置 | 约定定义在后 | 约定定义在后 | 约定定义在后 | 先定义后调用 变量提升除外 | 先定义后调用 变量提升除外 | 先定义后调用 | |
| ———— | ———— | ———— | ———— | ———— | ———— | ———— | ———— |
| 对象 | 不面向对象 | 面向对象 | 面向对象 | 原生不支持 | 面向对象 | 面向对象 | |
| 模块命名空间 | 不支持 | 支持 | 支持 | 原生不支持 | 支持 | ||
| 语法 | |||||||
| 特色 | |||||||
| ———— | ———— | ———— | ———— | ———— | ———— | ———— | ———— |
| 分号风格 | 有分号风格 | 有分号风格 | 有分号风格 | 有分号风格 | 可有可无 | 可有可无 | 无分号风格 |
| 结构风格 | 大括号风格 | 大括号风格 | 大括号风格 | 大括号风格 | 大括号风格 | 大括号风格 | 缩进风格 |
| —————— | —————— | —————— | —————— | —————— | —————— | —————— | —————— |
| 命名-普通 | 驼峰/下划线/大驼 | 驼峰/下划线/大驼 | 驼峰/下划线/大驼 | 下划线 | |||
| 命名-函数 | 驼峰/下划线/大驼 | 驼峰/下划线/大驼 | 驼峰 | 下划线 | |||
| 命名-类 | 结构体:大写 | 结构体:大写 | 大驼峰 | [__]大驼峰 | |||
| 命名-常量 | 大写+下划线 | 大写+下划线 | 大写+下划线 | 大写+下划线 | |||
| 命名-文件 | file_ | 大驼峰 要与公共类名相同 | 尽量短小 |
链接到当前文件 0
没有文件链接到当前文件