最近在学习《算法》Sedegewick版,里面的示例代码是Java的。为了方面学习,现列出区别如下
1.运行方式的区别
JS文件直接执行而Java需要编译后执行
1 | node BinarySearch.js |
1 | javac BinarySearch.java #编译 |
2.数据类型的区别
Java内具备更为丰富的数字类型
| Java | JS |
|---|---|
| int / double / float / long / short / byte | Number |
下面介绍Java各数据类型的含义
| 类型 | 含义 | 位数 |
|---|---|---|
| int | 整数及其算数运算符 | 32 |
| double | 双精度实数及其算数运算符 | 64 |
| long | 整数及其算数运算符 | 64 |
| short | 整数及其算数运算符 | 16 |
| byte | 整数及其算数运算符 | 8 |
| float | 单精度实数及其算数运算符 | 32 |
3.数组的区别
####数组创建的区别
Java数组初始化需要3步:
- 声明数组的名字和类型
- 创建数组
- 初始化数组元素(非必要)
而JS中数组的每一项可以保存任何类型的数据,因此不用声明类型
在Java中创建数组时,要指定数组元素的个数
1 | //创建数组的完整模式 |
####二维数组
Java中存在在类似于矩阵的二维数组,创建方法如下
1 | double[][] a = new double[M][N]; |
4.函数的区别
类似于JS中函数的概念,Java中的函数称为静态方法,它的声明如下
1 | public static int abs (int x){ |
首先,函数开头为public static而不是function。其次,紧跟之后的便是输出的类型。然后就是方法名。最后,传入的参数也要声明类型。
还应该要注意到的是,如果不输出数据,只产生副作用(如打印字符串),那么输出类型为void
5.模块化的区别
传统的JS模块基于单个的.js文件,而Java的模块则基于静态方法库。Java通过静态方法库实现了模块化编程。静态方法库要点如下
- 静态方法库定义一个Java类中的一组静态方法
- 存放类的文件名与类名相同
- 一个.java即为一个静态方法库
- Java开发的基本模式是编写一个静态方法库来完成一个任务
1 | public class Array { |