一维数组及其练习

1,    单词 :leakage泄露 reveal array:数组 index:索引

Reference:引用 primitive 原始的 optional:可选的 exception:异常 thread 线程(现在执行的程序)

Effective:有效的。Practice练习 todo:待办事项 auto:自动 generate:使形成syub 存根

2,    Alt+\ 提醒ctrl+鼠标放在上面:打开定义,点一下,跳转到方法定义处。

栈的特点:

存储本地变量(局部变量),方法调用完成,本地变量,即可消失。比较小,jvm操作效率高。

堆的特点:

存储new出来的东西,方法调用后,不会立刻消失,jvm会定时的清除不再使用的堆内存。存储空间大。Jvm操作效率低。

14,数组是一种引用数据类型。

图1:一个数组内存分配示意图。

图二:两个数组内存分配示意图。

15:定义及格式以及初始化:

数组: 是一个容器,可以存放同一数据类的多个元素呢。
 * 
 * 数组的定义:
 *    两种格式:
 *    
 *    1: 数据类型[] 数组名 (变量名);
 *    2: 数据类型  数组名[] (变量名[]);
 *    
 *    
 *    举例说明一下:
 *    数组的定义
 *    
 *    
 *   数组的初始化:
 *      动态初始化:
 *        数据类型[] 数组名 = new 数据类型[数组长度];
 *      和静态初始化
 *       数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
 *        静态初始化,还有一种简写形式
 *          数据类型[] 数组名 = {元素1,元素2,…};
静态初始化: 人为的指定每一个数组的元素的值,系统自动的计算数组的长度。
动态初始化: 人为的指定数组的长度,系统自动的分三个空间,并且给数组元素赋初值
            array1 = new int[3];
 
            int array3[] = {1,2,3};
            // 静态初始化,只能在变量定义的时候使用。
//          array2 = {1,2,3};//Array constants can only be used in initializers
1,数组基础练习:  
 

*

 */

public classArrayDemo1 {

 

      public static void main(String[] args) {

 

           //定义一个int类型的数组,来存放三个数字

          

         //数据类型[] 数组名 (变量名);

          

           // 定义一个int类型的数组,名字为array1.

           int[] array1;

          

          

           //第二种形式   数据类型  数组名[](变量名[]);

          

           //定义一个int类型的数组变量,名字为array2。

           int array2[];

          

          

           // 上面两种形式,只是定义了两个数组,但是并没有对数组进行数据的初始化。

          

           // 给数组进行初始化:分配内存空间,并且给数组元素赋值

          

           // 动态初始化: 人为的指定数组的长度,系统自动的分三个空间,并且给数组元素赋初值

           array1 = new int[3];

          

           //静态初始化:人为的指定每一个数组的元素的值,系统自动的计算数组的长度。

           int array3[] = {1,2,3};

           // 静态初始化,只能在变量定义的时候使用。

//        array2 = {1,2,3};//Array constants canonly be used in initializers

          

           // 怎么访问数据的元素?

          

           System.out.println("array1:"+array1);

           //The local variable array2 may nothave been initialized

           //java中数组必须先初始化,才能使用;

           // 本地变量,不赋值不能被使用

//        System.out.println("array2:"+array2);

           System.out.println("array3:"+array3);

          

           //array1:[I@15db9742 数组的内存地址值

          

           //如何显示数组这个容器中的每一个数组元素呢?

           //0 叫做下标号,索引,index,数组有三个元素,标号从0,1,2

           System.out.println(array1[0]);

           System.out.println(array1[1]);

           System.out.println(array1[2]);

//        System.out.println(array1[3]);// 超出了数组的有效范围

           System.out.println("==================");

           //课堂练习:

          

           //定义一个int类型的数组,长度为5,并且赋值为2,4,6,8,10;

           //同时输出数组的地址值,和每一个数组元素中的值?

          

           int[] arr = {2,4,6,8,10};//静态初始化

          

           //输出数组的地址值

           System.out.println("arr:"+arr);

          

           //输出数组的每一个元素值

           System.out.println(arr[0]);

           System.out.println(arr[1]);

           System.out.println(arr[2]);

           System.out.println(arr[3]);

           System.out.println(arr[4]);

          

          

           System.out.println("==================");

           //如果使用动态初始化,该怎么做呢?

          

           int[] arr1 = new int[5];//动态初始化

          

          

           //如何在动态初始化的情况下,给数组元素赋值呢?

          

//        arr1 = {22,4,6,8,10};//错误的

          

           //只能每一个数组元素,单独赋值;语法 :数组名[索引] = 元素的值;

          

           arr1[0] = 2;

           arr1[1] = 4;

           arr1[2] = 6;

           arr1[3] = 8;

           arr1[4] = 10;

          

           //输出数组的地址值

           System.out.println("arr1:"+arr1);

          

          

          

          

           //输出数组的每一个元素值

           System.out.println(arr1[0]);

           System.out.println(arr1[1]);

           System.out.println(arr1[2]);

           System.out.println(arr1[3]);

           System.out.println(arr1[4]);

      }

 

}

2,数组的典型练习:

数组常见操作的练习:
 * 1:数组遍历(依次输出数组中的每一个元素)
 * @author jerry
 *
 */
public class ArrayDemo6 {
 
 
      public static void main(String[] args) {
 
 
            //定义一个数组
            int[] array = {1,2,3,4,5};
            
            //输出所有的元素
//          System.out.println(array[0]);
//          System.out.println(array[1]);
//          System.out.println(array[2]);
//          System.out.println(array[3]);
//          System.out.println(array[4]);
            // 5 写死的方式,不太好
            // 最好的方式应该根据数组,直接返回长度
            // 数组名.length 就返回数组的长度
//          for(int i=0;i<5;i++){
 
//          for(int i=0;i<array.length;i++){
 
//                System.out.println(array[i]);
//          }
            
            //继续改造,使用方法来改造
            //方法的调用
            printArray(array);
            printArray(array);
            printArray(array);
            
      }
      
      /**
       * 定义一个循环打印数组元素的方法
       * @param array  需要输出元素的数组
       */
      public static void printArray(int[] array){
 
            System.out.print("数组的元素 :[");
            
            for(int i=0;i<array.length;i++){
 
                  // 判断当i等于最后一个元素的下标时,
                  if(i!=array.length-1){
 
                        System.out.print(array[i]+",");
                  }
                  else{
 
                        System.out.print(array[i]);
                  }
            }
            System.out.println("]");//输出并&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值