7/2作业

来源:互联网 发布:java web前后端交互 编辑:程序博客网 时间:2024/06/04 17:51

数组的概念:

所谓数组,是相同数据类型的元素按一定顺序排列的集合。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

特点:

·数组是可以保存一组数据的一种数据结构,它本身也会占用一个内存地址,因此数组是引用类型

数组一旦定义好就不可以修改长度,如果要修改就必须重新定义一个新数组或者引用其他的数组,因此数组的灵活性较差

定义格式

字符串数组:
1、String[] str=new String[5];
2、String[] str=new String[]{"a","b"};
3、String[] str={"a","b"};
整形数组:
1、int[] i=new int[5];
2、int[] i=new int[]{0,1};
3、int[] i={0,1};

其他数组定义的方法类似

一维数组的初始化

JAVA中的一维数组态初始化,如:
int[] a = {1,2,3}
与动态初始化:
int[] a = new int[3];
for(int i=0;i<3;i++){
a[i] = i+1;}

如何引用数组元素:

数组的下标是指数组中每个元素的索引值,索引从0开始,下标值可以是变量,也可以是常数。

数组初始化就是对数组元素进行赋值,数组初始化分为动态初始化和静态初始化。

数组动态初始化,指为已经创建好的数组元素进行赋值。

数组静态初始化,指在声明数组并创建数组的同时对每个元素进行赋值,一次性初始化所有元素

在创建的类中,声明并创建整数类型数组m,进行赋值。声明并创建字符型类型数组c,进行赋值。

for循环遍历数组:

int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9};

for(int i=0;i<11;i++){

      System.out.println(num[i]);

}

Java的内存分配:

 Java程序运行在JVM(Java  Virtual MachineJava虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提。

 栈:保存局部变量的值,包括:a.用来保存基本数据类型的值;b.保存类的实例,即堆区对象的引用(指针)。也可以用来保存加载方法时的帧。

        堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。

 垃圾回收器的回收机制:

Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但是任何一种垃圾回收算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。
  大多数垃圾回收算法使用了根集(root set)这个概念;所谓根集就是正在执行的Java程序可以访问的引用变量的集合(包括局部变量、参数、类变量),程序可以使用引用变量访问对象的属性和调用对象的方法。垃圾回收首先需要确定从根开始哪些是可达的和哪些是不可达的,从根集可达的对象都是活动对象,它们不能作为垃圾被回收,这也包括从根集间接可达的对象。而根集通过任意路径不可达的对象符合垃圾收集的条件,应该被回收。