Java数组

基本数据类型

  • 整型(Integral Types):byte、short、int、long
  • 浮点型(Floating Point Types):float、double
  • 字符型(Character Types):char
  • 布尔型(Boolean Types):boolean
  • 空值类型(Void Type):void基本数据类型在内存中占用的空间大小是固定的,不能被改变。

引用数据类型

  • 类、数组、接口、枚举、注解、记录

一维数组中数据类型默认值

  • 整型(int)数组的默认值为0
  • 浮点型(float)数组的默认值为0.0
  • 字符型(char)数组的默认值为空字符('\u0000')

\u0000是一个Unicode转义字符,代表空字符。在Unicode编码中,\u0000的十进制表示为0,也被称作空字符或NULL字符。它在编程中通常用于表示一个无效或空的值。

  • 布尔型(boolean)数组的默认值为false(false是因为false在计算机中默认对应0,true对应1)
  • 双精度浮点型(double)数组的默认值为0.0

二维数组中数据类型默认值

数组的使用步骤

一维数组

复制代码
       // 一维数组
//      动态数组  定义,初始化
        int[] prices = new int[5];
//        静态数组
//      int[] prices = new int[] {1,2,3}
//        调用
        prices[0] = 1;
        prices[1] = 1;
        prices[2] = 8;
        prices[3] = 10;
        prices[4] = 5;
//        遍历数组
        for(int i = 0; i < prices.length;i++){
         System.out.println(prices[i]);
        }
一维数组内存解析

数组变量放在栈中,数组值放在堆中

不同数据类型数组

相同数据类型数组

二维数组

复制代码
//        二维数组
//        定义和初始化
//        动态数组
        int[][] arr = new  int[3][4];
//        静态数组
//       int[][] arr = new  int[][]{{1,2,3},{2,3},{9,8}};
//       调用
//       打印数组长度
        arr[1][2]=1;
        System.out.println(arr[0]);//打印其地址
        System.out.println(arr[1][2]);

        int[][] arr1 = new int[][]{{1,2},{2,3},{9,8}};
// 遍历数组
        int i,j;
        for(i = 0; i < arr1.length; i++ ){
            for (j = 0; j < arr1[i].length; j++ ){
                System.out.println(arr1[i][j]+"\t");
            }
            System.out.println(); // 在每行的结束添加一个新行,使得输出更清晰
        }

二维数组赋值方式

  1. 逐个元素赋值:

    int[][] arr = new int[3][4];
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[0][2] = 3;
    arr[0][3] = 4;
    arr[1][0] = 5;
    arr[1][1] = 6;
    arr[1][2] = 7;
    arr[1][3] = 8;
    arr[2][0] = 9;
    arr[2][1] = 10;
    arr[2][2] = 11;
    arr[2][3] = 12;

  2. 使用循环赋值:

    int[][] arr = new int[3][4];
    for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
    arr[i][j] = i * j; // 或者其他您需要的赋值方式
    }
    }

  3. 使用数组字面量赋值:

    int[][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

二维数组内存解析

数组常见算法

数值型数组特征值统计

平均值、最大值、最小值、总和等

数组元素的反转

数组对称位置的元素互换。

数组的扩容与缩容
数组的元素查找

待学 对应视频70


上面所有方法都可以用Arrays工具类实现

Arrays工具类的使用

复制代码
    public static void main(String[] args) {
        int[] arr1 = new  int[]{12,23,24,9};
        int[] arr2 = new  int[]{12,23,24,9};
//  调用Arrays中的equals方法
        boolean isEquals = Arrays.equals(arr1,arr2);

        System.out.println(isEquals);
//    调用toString方法,打印数组元素
        System.out.println(Arrays.toString(arr1));

结语

我是南城余!欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!

相关推荐
To_OC4 小时前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode
小bo波8 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking8 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
用户938515635079 小时前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法
To_OC10 小时前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑
javascript·算法·排序算法
饼干哥哥11 小时前
Reddit VOC调研太慢?搭一个AI专家团队半小时洞察任何品类|以猫用饮水机为例
人工智能·算法·ai编程
张不才11 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
地平线开发者12 小时前
Transformer模型部署之性能优化指南
算法
地平线开发者12 小时前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子
算法·自动驾驶
shepherd11113 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构