首页 > 编程知识 正文

java动态加载的好处(java反射动态重载)

时间:2023-05-04 23:17:20 阅读:68970 作者:3144

一、排列原理和特点

定义:

一组可以存储相同数据类型的变量和集合。

特点如下:

保存相同的数据类型。

定义数组需要固定长度,不能修改。

数组具有边界检查,越界后会抛出索引越界异常。

数组引用数据类型并存储在堆内存中,但存储在堆栈内存中,使得地址值指向堆内存中的变量。

对象数组和基本数据类型的数组在使用上相同。 区别在于,对象数组保存引用,而基本数据类型的数组保存基本数据类型。

二、动态数组概念

动态数组是指一个数组的长度可以无限扩展,达到了无限的长度。 其本质是创建新数组,根据原始数组扩展长度,丢弃原始数组,并将原始数组中的元素复制到新数组中。

三、如何手动实现动态数组

增加元素:

添加元素时确定数组中是否还有空闲空间。

如果有剩下的空间,就直接添加。

如果没有剩下的空间,请转到步骤4。

根据扩展的长度创建新数组。

将原始数组中的数据复制到新数组中。

删除元素:

数组是线性结构,因此通常需要保证元素的连续性。 如果删除的元素不是数组末尾的元素,则删除的元素之后的元素将按顺序进行,以便在末尾有空的元素。 添加新元素时始终位于末尾,这有助于避免查询时出现空指针异常。

四、具体代码实现如下

公共语音建议(dogdog ) {

//判断数组是否添加了很多元素

if(count=dogs.length ) {

//将原始数组的长度加倍

int newLength=dogs.length * 2;

//拷贝从原始数组创建新数组

dogs=Arrays.copyof(dogs,newLength );

}

//添加数组元素

dogs[count]=dog;

出局;

}

//删除数组元素并根据id值删除

公共语音识别元件(Intid ) {

//获取要删除的对象

for(intI=0; I计数; I ) {

if(dogs[I].getid(==id ) ) ) ) ) )。

//(盖)将该要素后面的要素整体向后移动

for(intj=I; j count; j ) {

dogs[j]=dogs[j 1];

//清空数组的最后一个元素

dogs [计数-1]=null;

计数---;

布雷克;

}

}

}

}

详细代码引用地址

五.动态数组总结

改变了形状解决了数组固定长度带来的问题。

使数组成为存储效率高的结构。

频繁扩展会降低性能并导致垃圾对象数组。

添加、搜索和方便,但不适合插入和删除操作。

在ArrayList、Vector等集合中被普遍使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。