zoukankan      html  css  js  c++  java
  • JDK1.8 数组Array源码

    序言

    《1》栈内存和堆内存当一个方法执行时,每个方法都会建立自己的内存栈,在这方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁。所有在方法中定义的局部变量都是存放在栈内存中的;
    在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。

    《2》堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(在方法的参数传递时很常见),则这个对象依然不会被销毁。只有当一个对象没有任何引用变量指向它时,系统的垃圾回收器才会在合适的时候回收它。

    几乎所有的语言都把数组作为一种固有的数据类型,数组也是我们最常用的数据结构之一。在语言底层,数组是如何实现的呢?

     数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同语言的实现及处理也不尽相同。但凡写过一些程序的人都知道数组的价值及理解数组的重要性,与链表一道,数组成为了基本的数据结构。尽管Java提供了很棒的集合API和集合类如:ArrayList、HashMap,他们内部都是基于数组。

    数组是在内存中开辟一段连续的空间,并在此空间存放元素。就像是一排出租屋,有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。

    数组的特点是:

    元素类型是固定的、长度是固定的、通过角标查询,查询快,增删慢。

    资料

    https://blog.csdn.net/u013632854/article/details/70338252

  • 相关阅读:
    matlab mex中C++内存全局共享和持久化
    算法导论01---到底何为算法(由算法联想到的大学教育)
    在Visual Studio项目中根据系统平台自动引用32或64位的DLL
    POJ2352【树状数组】
    artDialog双击会关闭对话框的修改
    利用AWR 查看SQL 执行计划
    Sql获取数据集中各类型中的最大值(最新值)
    容器常用操作
    运行容器的最佳实践
    两种进入容器的方法
  • 原文地址:https://www.cnblogs.com/cnki/p/10670193.html
Copyright © 2011-2022 走看看