Java中的数组

数组是由同一类型对象护着基本数据组成。

数组是对象,先定义数组名字,用动态的方式分配数组空间,再初始化的。

每个数组都有一个成员变量length,即含有元素的个数。

Java中数组的创建和使用

数组声明->创建->元素初始化->使用数组

1. 数组引用的声明

-无需指明元素个数,也不为数组元素分配内存空间

-必须初始化以后才能使用,不然就是空引用。

-两种数组声明方式:Type[] arrayName;  或者 Type arrayName[];

2.创建数组(使用动态分配的方法)

-用关键字new构成数组的创建表达式,制定数组类型和元素个数。元素个数可以是常量或者变量(只要变量已经取得值了就行)。例如:int[] ai; ai=new int[10];

-也可以将数组的声明和创建一并执行:int ai[]=new int [10];

-也可以在一条语句中创建多个数组:String[] s1=new String[3],s2=new String[8];

3.数组元素初始化

-如果定义时不初始化,是不会有垃圾数据的,数值型自动初始化为0;引用类型自动变为空引用(null)?(什么意思?);boolean类型默认值为false;

-初始化方法:声明数组名时,给出数组初值:int a[]={22,33,44,55};



4.数组的使用

-单独使用元素:arrayName[index],index类型必须是int,short,byte,或char

-下标计数从0开始

-元素个数即为数组长度,可以通过arryName.length得到

-数组名是一个引用(即,就是一个名字)例如:


例题1

a1数组在声明时就已经初始化了,一共有五个元素,而a2数组只进行了声明,也就是只是一个引用。当执行a2=a1;语句时,有点像C语言中的指针,a1、a2两个引用都指向了同一个数组。最后两个for循环,无论是通过a1还是a2名称,都是去访问了同一个数组。也就是同一个数组的两个名字。

-当我们真正想要复制一个数组出来,则可以用arraycopy这个方法:


数组的全部或者部分的复制

①数组元素部分复制:arraycopy的参数依次是:源数组,从源数组哪一个位置开始复制,目标数组,目标数组开始复制的位置,一共复制多少个字符。


部分复制

上面插图的最后一句,表明在Java中,字符数组不能够被当做字符串直接输出,而是将字符数组作为初始值,构造一个新的String对象,在进行输出。


以上,一维数组

一下,多维数组(以二维数组为例):


二维数组

-二维数组的声明和构造:

  ①int[][] myArray; //myArray是一个指向二维整数数组的引用,初始值为null(空引用)。使用时还需要初始化(new)。

  ②int[][] myArray=new int[3][5]; //同时构造并初始化引用,只是有了空间,没有初始值,默认均为0。

  ③int[][] myArray={{8,1,2,2,9},{1,9,4,0,3},{1,1,1,3,3}}; //也就是同时引用、构造并初始化数组。

例如:


二维数组长度的问题

-Java中二维数组的长度是指的数量,而非所有元素!

-而每一行都有自己的长度。Java中每一行的长度可以不一样的。例如上述的第一行,长度是3;

输出结果:第一行是二维数组的行数,接下来分别是每一行的元素个数

总的来说,Java中的二维数组就是由一维数组构成的数组!


课后习题疑问:

6. 对于下列代码

String str1=”java”;

String str2=”java”;

String str3 = new String(“java”);

StringBuffer str4 = new StringBuffer(“java”);

以下表达式的值为true的是()

str1==str2

str1==str4

str2==str3

str3==str4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 1 数组No11 数组:存放一组相同类型数据的数据结构 数组本身是引用数据类型,数组中的元素可以是基本数据类型...
    征程_Journey阅读 629评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,505评论 18 399
  • java中的数组 语法: 注意: 数组相当于一个大的容器,里面按顺序存放了很多相同类型的数据元素; 想要获取数组中...
    _信仰zmh阅读 598评论 0 1
  • 每每谈及我的家人,我的生活,我总会说我很幸福。 和我比较亲近的家人,都很关爱我,疼我。因果吧,因为我爸对他们好,尤...
    小仲子阅读 313评论 0 0
  • 一复述发生的事情; 二明确对不起,请求原谅; 三理解对方的感受,具体的感受; 四道明自己违背的原则或道德等; 五表...
    拂晓健行阅读 1,000评论 0 0