zoukankan      html  css  js  c++  java
  • 4.6Java数组概述和特点

    4.6Java数组概述和特点

    数组的概念

    定义:

    • 相同类型数据的有序集合---整型数组、浮点型数组...

    特点:

    • 相同类下的若干数据

    • 按照一定先后次序排列组合而成

    • 每个数据称为一个元素

    • 每个元素可以通过一个索引(下标)来访问它们---每个元素的索引下标是有序的

    数组的三个基本特点:

    特点:

    • 长度是确定的。数组一旦被创建,它的大小就是不可以改变的

    • 其元素必须是相同类型,不允许出现混合类型

    • 数组类型可以是任何数据类型,包括基本类型和引用类型

    数组的重要特点:
    • 数组就是对象

    • 数组变量属于引用类型

    • 数组中每个元素相当于对象的成员变量---默认遵守对象成员变量的规则

    数组的声明

    格式:

    type[] arr_name; //推荐使用这种方式
    type arr_name[];
    //创建一个数组
    type[] arr_name = new type[分配的空间大小];
    int[] arr = new int[5]; //a这个数组能装五个整数,默认值为成员变量的数值默认类型
    //还有一种赋值的写法
    int[] a = new int[]{1,2,3,4};
    //写法比较
    int[] arr;
    arr = {1,2,3,4}; //编译错误,没有初始化对象!!!

    实例:

    package cn.Lucifer.arrays;

    /**
    * 测试数组的声明
    * @author Lucifer
    */
    public class TestNo1 {
       public static void main(String[] args) {
           /*
           声明一个整数的类型的数组
            */
           Integer[] arr01;
           /*
           给数组分配空间,声明数组的长度
            */
           arr01 = new Integer[10];
           String arr02[] = new String[5]; //声明一个String类型的数组
           User[] arr03 = new User[3]; //这个的意思是可以放三个User对象的数组
           /*
           这个时候这个数组是空的,大小也没有定义出来
           再JVM里面这个时候并没有为这个数组分配空间
            */
           /*
           数组的赋值
            */
           arr01[0] = 13; //数组的0号索引位的值为13,内存里面的0号所以的空间的值为13
           arr01[1] = 12; //通过索引下标赋值。索引下标:0,1,2,3,4,5,6,7,8,9
    //       arr01[10] = 100; //编译能通过但是执行会报错---下标越界。索引下标的范围:从0开始到数组.length结束
           /*
           循环赋值
            */
           for(int i = 0; i < arr01.length; i++){
               arr01[i] = 10*i;
               System.out.println(arr01[i]);
          }
           /*
           这个length是一个方法
           通过循环初始化数组然后打印出结果
            */
      }
    }

    //创建一个User类
    class User{
       private Integer id;
       private String name;

       /*JavaBean*/
       public void setId(Integer id){
           this.id = id;
      }

       public Integer getId(){
           return this.id;
      }

       public void setName(String name){
           this.name = name;
      }

       public String getName(){
           return this.name = name;
      }
    }

    声明数组时内存的变化如图:

    数组可以是数据类型也可以是对象,如果是对象的话分配空间的意思是该空间内能存储多少个对象

    对象数组声明与赋值实例:

    package cn.Lucifer.arrays;
    import cn.Lucifer.arrays.User;

    public class TestNo2 {
       public static void main(String[] args) {
    //       User arr03[] = new User[3]; //声明一个User类数组,给数组分配空间,开辟三个空间
           arr03[0] = new User(1001,"Lucifer"); //数组空间的0号索引位创建一个对象
           arr03[1] = new User(1002,"Harden");
           arr03[2] = new User(1003,"James");
    //       UserNo2 u2 = new UserNo2();


           //遍历数组
           for(int j = 0; j < arr03.length; j++){
    //           System.out.println(u2.toString(arr03[j]));
               System.out.println(arr03.getClass());
          }
      }
    }

    //新建一个类重写toString方法
    class UserNo2{
       /*重写toString方法,不能再一个方法下重写另一个方法*/
       @Override
       public String toString(){
           return "这是一个地址";
      }
    }

     

    It's a lonely road!!!
  • 相关阅读:
    Java匹马行天下之JavaSE核心技术——工具类
    微信小程序
    在express3里用ejs模版引擎时,如何使其支持'.html'后缀
    node
    webstorm常用快捷键
    Meta标签中的format-detection属性及含义
    使用console进行 性能测试 和 计算代码运行时间
    JS获取浏览器URL中查询字符串的参数
    jspm 简介
    vue2.0 keep-alive最佳实践
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14626315.html
Copyright © 2011-2022 走看看