Java中数组的特性

数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间。在C,C++等语言中,数组的定义简洁清晰,而在java中确有一些会让人迷惑的特性。本文就尝试分析这些特性。


Java中的数组是对象吗?


Java和C++都是面向对象的语言。在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性构建自己的类,并且根据自己构建的类创建对象。那么,我们是不是应该考虑这样一个问题:在面向对象的语言中,数组是对象吗?


要判断数组是不是对象,那么首先明确什么是对象,也就是对象的定义。在较高的层面上,对象是根据某个类创建出来的一个实例,表示某类事物中一个具体的个体。对象具有各种属性,并且具有一些特定的行为。而在较低的层面上,站在计算机的角度,对象就是内存中的一个内存块,在这个内存块封装了一些数据,也就是类中定义的各个属性,所以,对象是用来封装数据的。以下为一个Person对象在内存中的表示:


注意:

1)小的红色矩形表示一个引用(地址)或一个基本类型的数据,大的红色矩形表示一个对象,多个小的红色矩形组合在一块,可组成一个对象。

2)name在对象中只表示一个引用, 也就是一个地址值,它指向一个真实存在的字符串对象。在这里严格区分了引用和对象。


那么在Java中,数组满足以上的条件吗?在较高的层面上,数组不是某类事物中的一个具体的个体,而是多个个体的集合。那么它应该不是对象。而在计算机的角度,数组也是一个内存块,也封装了一些数据,这样的话也可以称之为对象。以下是一个数组在内存中的表示:


这样的话, 数组既可以是对象, 也可以不是对象。至于到底是不是把数组当做对象,全凭Java的设计者决定。数组到底是不是对象, 通过代码验证:

[java]  view plain copy
  1. int[] a = new int[4];  
  2. //a.length;  //对属性的引用不能当成语句  
  3. int len = a.length;  //数组中保存一个字段, 表示数组的长度  
  4.   
  5. //以下方法说明数组可以调用方法,java中的数组是对象.这些方法是Object中的方法,所以可以肯定,数组的最顶层父类也是Object  
  6. a.clone();  
  7. a.toString();  

在数组a上, 可以访问他的属性,也可以调用一些方法。这基本上可以认定,java中的数组也是对象,它具有java中其他对象的一些基本特点:封装了一些数据,可以访问属性,也可以调用方法。所以,数组是对象。

http://poanga808.blog.com
http://bailefan11.blog.com
http://q756888.blog.com
http://yunron6117.blog.com
http://yuanch271.blog.com
http://aza8888.blog.com
http://kemuza497.blog.com
http://tt1166s.blog.com/
http://hekena862.blog.com
http://xsd6666.blog.com
http://laoshupa7212.blog.com
http://xsd661.blog.com
http://xiazha878.blog.com
http://azxc888.blog.com
http://tanyingj892507.blog.com
http://asdi8881.blog.com
http://jibiji676.blog.com
http://kiu8555.blog.com/
http://mupintuo7866.blog.com
http://qi78121.blog.com/
http://youmei490.blog.com
http://agg881.blog.com/
http://chaona540.blog.com
http://oi9a5178.blog.com
http://shenwe062.blog.com
http://ki8a777.blog.com
http://weiyuanjiao0145.blog.com
http://k89a.blog.com
http://yongtuijiao6843.blog.com
http://w9i91.blog.com/
http://yuanmimu803.blog.com
http://yingfeng6633.blog.com/
http://naozhangrao7495.blog.com
http://ki71211.blog.com
http://pogoux875.blog.com
http://dai711.blog.com/
http://jiusonglia767.blog.com
http://ji881q.blog.com
http://toumushi445.blog.com
http://u87uq.blog.com
http://fanyishan679.blog.com
http://asi8112.blog.com
http://bihanlie24756.blog.com
http://aobo812.blog.com
http://liangdanzi105956.blog.com
http://xinaob9.blog.com
http://dianliao471.blog.com
http://lxi712w.blog.com
http://yihuaimu480.blog.com
http://qq82212.blog.com
http://lujiaj816.blog.com
http://ai81221.blog.com
http://koukeq877.blog.com
http://ssc891.blog.com
http://henash001.blog.com
http://zhy1121.blog.com
http://tuxiancai081.blog.com
http://m881ww.blog.com
http://zilaoq609.blog.com
http://vn008tg.blog.com
http://pinleika759193.blog.com
http://lza68718.blog.com
http://baohao057.blog.com
http://hd8712.blog.com
http://shanhu641.blog.com
http://lo91sa.blog.com
http://siliangjia708.blog.com
http://dawj7788.blog.com/
http://zhitanyi860.blog.com
http://ybh9999.blog.com
http://guanch606.blog.com
http://ybh5555.blog.com
http://shailunyou2695.blog.com
http://youa55.blog.com
http://xianwenyan4288.blog.com
http://u1w88.blog.com
http://whbjnfzlyb9177.blog.com
http://ru7811.blog.com
http://shanzhidi476.blog.com
http://rk6688.blog.com
http://shilanguai49812.blog.com
http://gy112q.blog.com
http://fanzha065.blog.com
http://baijiabo1.blog.com
http://feijum413.blog.com
http://ksiw84.blog.com
http://ieqrfhpvzl9880.blog.com
http://cs508vip.blog.com
http://fanbishi366.blog.com
http://xsj6688.blog.com
http://siyanz935.blog.com
http://bet091.blog.com
http://huanch510.blog.com
http://lmmy789.blog.com
http://doubeigu7064.blog.com
http://ac509.blog.com/
http://langwe316.blog.com
http://kelake6688.blog.com
http://zhaomo371.blog.com
http://gfcasino.blog.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值