黑马程序员技术交流社区

标题: Java语言中,数组的实现原理是什么? [打印本页]

作者: 可见    时间: 2012-3-9 12:20
标题: Java语言中,数组的实现原理是什么?
为什么定义数组之后,就可以调用它的一些属性呢?

例如:当我使用int[]声明并初始化之后,就可以使用它的静态属性length;当我使用String[]声明并初始化一个数组之后,同样可以调用它的静态属性length;

试问:Java中如何判断出来我编写的代码中,这就是一个数组呢?【亦或者说:这个“数组类”是什么?请帮我解答一下,不胜感激!】
作者: 陈斌    时间: 2012-3-9 13:09
这原理问的太深奥了,,一些底层的东西还是留给那些编程天才弄把、、、你只要搞定 这是什么东西、、怎么用、、就可以了。。。等基础打好了以后慢慢研究会比较好吧、、、、个人建议。

只知道数组是连续存储的结构,数组对象在声明的时候是显式定义的,编译器就可以辨认出来,也就是说、编译器知道他是什么东西,它有什么东西。
作者: 贠(yun)靖    时间: 2012-3-9 14:55
   
内存结构
        Java程序在运行时,需要在内存中国分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一块区域都有特定的处理数据方式和内存管理方式
        栈内存
                用于存储局部变量。当数据使用完时自动释放所占内存空间
        堆内存
                数组 对象 通过new的建立的实例都存放在堆内存中
                每一个实体都有内存地址
                实体中的变量都有默认的初始化值
                实体不再被调用时会在不确定的时间内被垃圾回收器回收       
                如:



    我的笔记  希望对你有用
作者: 石德志    时间: 2012-3-9 15:12
这是Java为我们提供的好的数据结构,里面的数据都是连续的存储,我们没有必要明白底层的实现,当我使用int[]声明并初始化之后,Java编译器就知道它是数组类型的数据结构,数组类型有字段和相应的方法
作者: 袁野    时间: 2012-3-9 15:13
有些深奥的东西 咱不用知道 ,先会用再说吧
作者: 泮和顺    时间: 2012-3-9 15:15
贠(yun)靖 发表于 2012-3-9 14:55
内存结构
        Java程序在运行时,需要在内存中国分配空间,为了提高运算效率,有对空间进行了不同区域的 ...

这个图真不错,理解了下int [] x=new int[3];这样相当于只生成了一个对象,默认地址是和数组第一个元素地址一致的,数组的唯一缺点就是必须指定是什么类型的数组,这个类型不能是类这样的类型。 List的机理和数组很像只是List存的是objcet。
作者: 贠(yun)靖    时间: 2012-3-9 15:25
泮和顺 发表于 2012-3-9 15:15
这个图真不错,理解了下int [] x=new int[3];这样相当于只生成了一个对象,默认地址是和数组第一个元素地 ...

呵呵 都是老毕的功劳  以前我也不懂的  看了他的视频后  感觉这些东西都好清晰的   
作者: victan    时间: 2012-8-14 14:46
贠(yun)靖 发表于 2012-3-9 15:25
呵呵 都是老毕的功劳  以前我也不懂的  看了他的视频后  感觉这些东西都好清晰的    ...

请问你上面提到的视频是什么视频,能分享一下么.感激不尽




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2