跳至主要內容

Different

LincZero大约 4 分钟

Different

目录

编程语言

依赖于具体实现

Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算都做了明确的说明。

例如,Java中的int永远为32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。唯一的限制只是int类型的大小不能低于short int,并且不能高于long int。

语言书写风格

语言结构风格

  • 缩进风格Python
  • 大括号风格CC++C#JavaJs

分号风格

  • 无分号风格Python(python也可以加分号)
  • 有分号风格CC++Java
  • 可有可无JavaScript(我偏向于无分号。注意选择无分号风格时,有时需要在开头加分号)
  • 有无不同Matlab,有分号和无分号是不同的含义(即时输出 / 暂不输出)

逗号

与C/C++不同:Java不使用逗号运算符。不过,可以在for语句的第1和第3部分中使用逗号分隔表达式列表

标准库

  • C语言:需要先引入标准库才能使用很多函数和变量,详见C标准库 - <stdio.h>(菜鸟)open in new window

    比如库变量: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 >> varvar=input()
保存方式按格式保存智能对象string类型
——————————————————————————
输出printf("")cout << ""(智能对象)print("")System.out.println(“”)
库的依赖依赖于标准库<stdio.h>依赖于库<iostream>使用内置函数
默认换行
智能转换否,一般用格式化输出是,cout << 1是,print(1)
拼接输出#include <string.h>
strcat('1',1);
cout << '1' << 1print('1'+str(1))直接+就行

比较总结

语言CC++(超集)C#JavaJsTs(超集)Python
变量类型1静态变量静态变量静态变量静态变量动态变量静态变量动态变量
预声明类型需声明类型需声明类型需声明类型需声明类型仅声明作用域需声明类型不声明类型
变量类型2弱类型弱类型强类型强类型弱类型弱类型强类型
————————————————————————————————
编译or解释编译型语言编译型语言编译解释语言编译解释语言解释型语言编译解释语言解释型语言
可当脚本语言
函数原型声明需要需要不需要不需要不需要
函数定义位置约定定义在后约定定义在后约定定义在后先定义后调用
变量提升除外
先定义后调用
变量提升除外
先定义后调用
————————————————————————————————
对象不面向对象面向对象面向对象原生不支持面向对象面向对象
模块命名空间不支持支持支持原生不支持支持
语法
特色
————————————————————————————————
分号风格有分号风格有分号风格有分号风格有分号风格可有可无可有可无无分号风格
结构风格大括号风格大括号风格大括号风格大括号风格大括号风格大括号风格缩进风格
————————————————————————————————————————————————
命名-普通驼峰/下划线/大驼驼峰/下划线/大驼驼峰/下划线/大驼下划线
命名-函数驼峰/下划线/大驼驼峰/下划线/大驼驼峰下划线
命名-类结构体:大写结构体:大写大驼峰[__]大驼峰
命名-常量大写+下划线大写+下划线大写+下划线大写+下划线
命名-文件file_大驼峰
要与公共类名相同
尽量短小