前言:为什么对比js和java中数组的区别? 遇前端瓶颈以Java为突破口, 为啥选择Java? -> 资源丰富
JS里的数组
创建数组
let str = ["java", "js"];let str = new Array(2);let str = new Array("java", "js");
结论:JS中数组的"长度"和"类型"都是动态的, 即:长度可变、类型多样( Boolean, Null, Undefined, Number, String, Symbol, Object )。数组本质上是一个对象键值映射, 所以数组也是对象, 因此JS数组元素在内藏中并不一定是相邻的。
Java里的数组
创建数组
dataType[] arrayRefVar = {"java", "js"};dataType[] arrayRefVar = new dataType[arraySize];dataType arrayRefVar[] = new dataType[]{"java", "js"};
结论:Java中定义数组必须指定长度, 而且长度确定下来后无法改变, 如果数组越界会爆数组越界错误(JS中数组长度可变,不会出现越界问题),JS数组本质上市一个对象键值映射(因此JS数组中的内存并不一定相邻),但Java中的数组会在内存中划出一串连续固定的空间以存储。
- Java中集合更强大,大部分情况不是直接用数组解决问题。
- 就像在JS中的字符串操作(substr\substring\slice), 本能的只是用最后一个slice(其结合substr\substring)集两个方法有点于一身。
- 强弱类型语言从数组一看便知,严格的、强限制的代表着在大规模开发中的一致性
本文对比了JavaScript和Java中数组的特性,指出JS数组长度和类型动态,而Java数组长度固定且类型严格。JS数组本质上是对象键值映射,Java数组则在内存中连续存储。Java集合更强大,常用于解决复杂问题。
339

被折叠的 条评论
为什么被折叠?



