• 跟着刚哥梳理java知识点——数组(七)


    数组:数组是多个相同类型数据类型的集合,实现对这些数据的统一管理。

    元素:数组中的元素可以是任何数据类型,包括基本数据类型引用类型。

    特点:属于引用类型,数组型数据是对象object,数组中的每个元素相当于对象的成员变量。

    数组定义:

      1、静态初始化声明数组:

      ① String[] names = new String[]{"gangge","pijiu","paopao"};
    
      ② String[] names = {"gangge","pijiu","paopao"};

       注意第②种写法不能写成String[] names; names = {""gangge","pijiu","paopao"};

      2、动态初始化声明数组: 

        String[] names = new String[4];

    数组调用:通过数组元素的下角标的方式来调用,从0开始。例如:names[0]  

    数组长度:通过length属性,length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

    数组遍历:for循环或者for增强

    for(int i=0;i<names.length;i++)
    ② for(String n:names)

    数组默认值:创建数组以后,不显式的赋值会有自己的默认值

      1、基本数据类型

        ① 对于4个整形byte、short、int、long:默认值是0

        ② 对于2个浮点型float、double:默认值是0.0

        ③ 对于char类型:默认值是空格

        ④ 对于boolean类型:默认值是false

      2、引用类型,默认类型是null

    数组的Equals:

      数组的比较可以使用equals吗?

      public static void main(String[] args)
      {
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};
        System.out.println(a.equals(b));
      } 

      输出结果:false

      为什么呢?因为数组的equals方法没有重写object对象的equals方法,那怎么办呢?一个解决方案是自己写方法,另一种方法是使用数组的工具辅助类java.util.Arrays。

    java.util.Arrays常用方法:

      ① boolean equals(array1,array2):比较两个数组是否相等。

      ② void sort(array):对数组进行升序排序(使用快速排序)。

      ③ String toString(array):将数组转换成一个指定格式的字符串。(格式:[元素1,元素2,元素3])

      ④ void fill(array,val):把数组的所有元素赋值成val。

      ⑤ int binarySearch(array,val):查询元素val在数组array中下标。

    数组的内存结构:

      

      :存放局部变量,对象的引用。栈的特点先进后出的,所以第一个进去的会被压到最下面。

      :new出来的东西都放在堆空间,堆的特点是先进先出的。

      看第一个数组如何在内存中声明的:

        int[] scores = new int[4];
        scores[0] = 89;
        scores[1] = 90;

        ① 在栈中声明了一个变量scores。

        ② 在堆中开辟一个4个连续int类型的空间并且给所有的空间附上默认值0。

        ③ 把栈中scores变量指向堆中刚刚开辟的4个连续int类型的空间首地址(是一个16位进制数字)。

        ④ scores[0] = 89;按照索引找到第一个元素,将其值修改成89。

        ⑤ scores[3] = 90;按照索引找到第四个元素,将其值修改成90。

    看一个题目:
    1 // 静态初始化数组
    2 String[] names = { "Michael", "Orson", "Andrew" };
    3 // 动态初始化数组
    4 String[] animal = new String[4];
    5 // 让animal 指向 namens 数组所引用的数组
    6 names = animal;
    7 
    8 System.out.println(names.length);
    9 System.out.println(animal.length);

    输出结果:4 4

     
  • 相关阅读:
    在IIS7.5中ASP.NET调用cmd程序拒绝访问决绝方法小记
    WindowsCE project missing Microsoft.CompactFramework.CSharp.targets in Visual Studio 2008
    Windows 10预览版14316开启Bash命令支持
    批量文件重命名工具
    多说使用ua-parser-js显示浏览器和系统信息
    Hexo主题实现多级分类显示
    MS SQL Server 数据库分离-SQL语句
    Windows应用程序快捷方式创建工具
    第三方登录插件.NET版XY.OAuth-CSharp
    Microsoft Visual Studio 2008 未能正确加载包“Visual Web Developer HTML Source Editor Package” | “Visual Studio HTM Editor Package”
  • 原文地址:https://www.cnblogs.com/hzg110/p/6546472.html
Copyright © 2020-2023  润新知