数组

   数组: 用来保存同种类型的数据集合;这种集合中的数据是可以重复的

    访问数组集合中的每个值(元素),用数组名加下标的方式:arrayName[index]

其中index的范围为:[0,len)  区间

Java中的数组操作中,可以通过数组对象的属性length来得到元素个数;

   在方法中定义局部变量或块变量时,在使用之前一定要初始化(首次赋值);

   在C或C++中通常情况下也需要对变量初始化,但不是必须的。但在java或C#这些完全面向对象的语言中,一个变量在使用前必须初始化;

用什么值对变量初始化?

用这种类型的“零”值!

各种基本类型的零值分别是多少?

byte: 0

short:0

int:0

long: 0L,0l

float: 0.0f,.0f

double: 0.0,.0

boolean:false

char:0,’\0’,’\u0000’

在Java中,所有非内置类型的类型,称为对象类型,或非内置类型,或构造类型;

Java中的数组是基本类型吗

不是。它是一种对象类型,一种构造类型;

构造类型对象的“零值”,统一为null;

int[] xs = new int[6];

使用引用xs来指向一个连续的内存块,这个内存块可以存放6个整型元素,每个块中是否有值,可能有三种情况:

1、     有垃圾值存在

2、     像对待简单变量,不进行初始化

3、     对每个元素进行了初始化,用0(正确)

在Java中,没有垃圾值这个概念;

在Java中,定义的局部变量不会自动初始化,但数组对象中的每个元素会初始化;

java中简单内存分析:


一维数组的特点和优势:

特点:

1、     是一种线性结构,通过数组名加下标访问

2、     它有且只能有一个首元素,首元素前没有前趋元素;

3、     它有且只能有一个尾元素,尾元素后没有后继元素;

4、     中间元素,有且只能有一个前趋元素和一个后继元素;

优势:

1、     访问方便,随机(任意下标)访问;

不足之处:

1、     一旦数组被定义,长度就不能改变。会在堆区给这个数组分配内存,在可见范围内,内存不会释放,内存块也不能增加和删减;

2、     删除和插入时效率很低;

数组的不足之处,由哪些数据结构可以须弥补?

链表:删除和插入节点效率非常高;

能否存在一种数据结构,涵盖了数组和链表两种结构的优势,而没有其不足?

树->二叉树

采用二叉树时,在查找某个元素是否存在时,采用二分法查找,如果元素数为n,则最多的查找次数为:log2(n)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值