a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 190|回复: 0

[基础知识] Java学习知识点要求(8)

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
Java学习知识点要求(8)
: K) ]: j1 ~: \  ?12、数组的定义方法,数组的创建,如何得到数组的长度
) Q3 H  @9 k( i+ [3 x【数组也是对象,即是引用型变量,数组没有初始化时不能使用内容的元素。数组元素的下表从0开始,到长度-1为止。】: x- |2 z* F1 _8 y- E# K, ~. a
(1)数组是一种最简单的引用数据类型;数组是一个对象  . V4 Q* C" a# a2 e6 Z
(2)数组的创建一般需要以下步骤: . k- H, n: x; j! v
①数组的声明:/ k) u- c: _8 \5 w- }
        数组声明格式如下: 数据类型 数组名[ ];  或者  数据类型[ ] 数组名;) ^6 K8 t* A3 e" f9 Z) g" f
例如:int Array[];  或者   int Array1[],Array2[];    Y8 b" M( ~% [; o: ]1 k' V% f' W
②数组的初始化
' M9 t+ U! ]) p! P7 ?9 KA:静态初始化/ b, I4 W1 u1 o. E3 v, i7 q6 z2 Q
一维数组静态初始化的形式如下:格式:类型标识符 数组名[]={初值表};
* }% ~1 T9 c0 `* T+ N" [例如:int score[]={65,79,85,60};+ {1 ~  z% J3 c) j( C' A9 X
B:动态初始化
$ c4 [( m% ?6 {% Ga:对于基本类型的数组,若数组已经声明,则动态初始化的格式如下:
& M+ W6 V3 t' \0 W9 w数组名=new 数组元素类型[数组长度];
  C4 q2 H+ t! z( `例:int score[];score=new int[8];: U4 p3 d& ^( R4 j
对于基本类型的数组,若数组没有声明,则可在数组声明的同时用new运算符为数组分配内存空间。
: W1 J6 g( b* D: \! F; b            声明格式如下:  数据类型 数组名[]=new 数组元素类型[数组长度]; . g3 f& d7 j3 T8 I6 a
如  int score[];score=new int[8];等价于:int score[]= new int[8];
  L8 f! }8 }7 }b:对于引用类型的数组,除了对整个数组分配内存空间外,还需对每个数组元素分配内存空间。' j) M0 B8 |/ b& ?
首先为数组分配空间: 数组名=new 类型[数组长度];" q% h, X7 S. w+ Y
为每个数组元素分配空间:数组名[数组长度-1]=new 类型(参数列表);  j7 a0 }4 J4 u/ B5 B
例:String sArray[];
4 y; A; ?2 S% r9 DsArray=new String[3];! J2 O( \& j' Z" `; G) F
sArray[0]=new String(“how”);
+ `8 [1 V; G0 A! W( x6 ^sArray[1]=new String(“are”);% T/ |2 Q( c' u2 V" ^: }& K
sArray[2]=new String(“you”);" U7 c" ~( Q& L5 C$ k
(3)二维数组: M6 y' J1 e* f, D3 }; J5 R
①二维数组的声明   格式:数据类型 数组名[][];  或   数据类型[][] 数组名;
" v8 Z1 ]5 ^5 |& ~6 ^! q例如:int a[][];
5 L+ y) ~# q2 k+ P②二维数组的初始化
# q0 c+ ?& H+ d7 t, Z' \$ Y赋初值初始化数组int Array[][]={{1,2,3},{4,5,6}};
. p3 a# p- l) v; ^; a3 N" }用new初始化
8 r  F5 Q: W3 `+ L直接为每一维分配空间  如:int a[][];a=new int[3][4];或者int a[][]=new int[3][4];
# e* y$ z+ ?; J" x0 D6 S分别为每一维分配存储空间,但须从高维开始
% f# f7 _  X" X; A0 `+ h2 w+ u例如:String s[][]=new String[2][];  @, e3 D5 h( A" h
s[0]=new String[2];
2 I  A4 ~! c! I8 O; g( l, Cs[1]=new String[2];
! m9 o* F3 g9 Ds[0][0]=new String(“Glad”);
2 m4 \) r: d, L* C6 Qs[0][1]=new String(“to”);
  y; X* ~7 S# V, I. d$ vs[1][0]=new String(“meet”);
, {: i" R; s% Hs[1][1]=new String(“you”);! u' \2 `( k3 R8 _
③二维数组的引用  对二维数组中每个元素,引用方式为:数组名[下标1][下标2]
/ u# j( ~. k7 D$ ?(4)注意事项:下标1和下标2都是从0开始,最大值等于每一维的长度减1。! v& x3 c0 W3 v, ~$ j
               数组使用之前要确定大小,可以在程序中根据需要指定其大小(如用表达式计算出大小)。+ ?0 q* v# j7 i8 P
               一旦生成数组,大小不可改变。java不支持变长数组。
, b- ^# p, g: Y% U1 B, @0 Y( g数组的属性— length  代表数组元素的个数
4 ]# O0 t  d6 o" y. ]9 V6 @- L                   数组是一个对象, length为数组的成员变量, 调用它可查看数组长度7 c7 `* d( ]9 X
Java数组作为一种对象类型,可以作为方法的参数,传递的是指向数组的引用。
2 C8 c8 ~$ L2 ~) J) t越界例外:用下标变量访问数组元素(0~N-1),越界时系统会产生例外: ArrayIndexOutOfBoundsException 例外。% O0 c+ [( f% u- n5 v+ x5 p. Z- U) M
(5)复制数组:Java语言为拷贝数组提供了一个特殊的通用方法arraycopy(),它是System类的一个静态成员方法,其使用格式如下:
. d4 h9 G- B" O, I) d! O. MSystem.arraycopy(from,fromIndex,to,toIndex,count);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 19:51 , Processed in 0.232013 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表