数组

1为什么很多编程语言数组下标从0开始而不是1

更应该说是偏移

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据

线性表:每个数据最多有前后两个方向,除了数组,链表,队列,栈也是线性结构

非线性表:数据之间并不是简单的前后关系

2 JVM标记清除算法

可达性分析 全部标记完成后才会处理

不足:1效率问题,少量垃圾会很高效;2 会产生不连续的内存空间碎片

3 为什么容器类型不支持原始类型

《Think in java》 中是这样解释的: 由于当初编写集合时,那个集合的程序员根本不知道用户到底想把什么类型置入集合。若指示某个集合只允许特定的类型,会妨碍它成为一个“常规用途”的工具,为用户带来麻烦。为解决这个问题,集合实际容纳的是类型为Object的一些对象的句柄。             举个例子,如果集合里面放的是  Cat类型,那么只能放cat,放个  狗 Dog 进去就会报错 ,如果设计成Object,任何动物都可以放到集合里

4 详解数据结构中的“数组”与编程语言中的“数组”的区别和联系

https://mp.weixin.qq.com/s/E-c41h2v_AfffrlAQpkyLg

你可能感兴趣的:(数组)