远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)
  • JavaSE

    • Java_SE之Java_SE平台与JDK
    • Java_SE_第二讲:原生数据类型
    • Java_SE_第三讲:原生数据类型使用陷阱
    • Java_SE_第四讲:运算符
    • Java_SE_第五讲:运算符续
    • Java_SE_第六讲:流程控制语句
    • Java_SE_第七讲:流程控制续
    • Java_SE_第八讲:理解面向对象程序设计
    • Java_SE_第九讲:面向对象之封装
    • Java_SE_第十讲:面向对象之封装续
    • Java_SE_第十一讲:面向对象之封装续二
    • Java_SE_Lesson_1:面向对象高级
    • Java_SE_Lesson_2:多态与static和final关键字
    • Java_SE_Lesson_3:接口、单例模式、包与访问控制
    • Java_SE之Object类详解
    • Java_SE之String类及其源代码剖析
    • 包装类与数组
    • 冒泡排序、交换排序与快速排序
    • Java数组的查找方式及二分查找
    • 常量与Java集合框架简介
    • 常用的Java开发IDE
    • ArrayList深入分析
    • LinkedList源代码深入剖析
    • 数据结构中的基本结构分析
    • 《Java语言新特性》

  • 开源框架

  • Linux

  • Struts2

  • Hibernate

  • Webservice

  • 分布式

  • 分布式框架

  • 后端开发
  • JavaSE
terwer
2022-10-17

包装类与数组

  1. 包装类(Wrapper Class)。

    针对原生数据类型的包装。 包装类(8 个)都位于 java.lang​ 包下。

    java 中的 8 个包装类分别是:Byte,Short,Integer,Long,Float,Double,Character,Boolean。

    他们的使用方式都是一样的,可以实现原生数据类型和包装类额双向转换。

  2. 数组(Array):相同类型 数据的集合叫做数组。

  3. 如何定义数组:

    type[] 变量名 = new type[数组中元素的个数 ]; 
    
    1

    按照下列方式定义长度为 10 的数组:

    int[] a = new int[10]; // 或者
    int a[] = new int[10];
    
    1
    2
  4. 数组中的元素索引是从 0 开始的。对于数组来说,最大的索引 == 数组的长度 - 1 。

  5. 定义数组的第三种方式:

    type[] 变量名 = new type[]{逗号分隔的初始化值列表}
    
    1
  6. Java 中的每个数组都有一个 length 属性,他表示数组的长度。

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

  1. 两个数组的比较不能使用 ==​ ,也不能使用 equals​ ,要使用 Arrays.equals​ 。

    int[] a = {1, 2, 3};
    int[] b = {1, 2, 3};
    System.out.println(a==b);
    System.out.println(a.equals(b));
    System.out.println(Arrays.equals(a, b));
    
    // false
    // false
    // true
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  2. ​int a[] = new int[10]​ ,其中 a 是一个引用。它指向了上次的数组对象的首地址,数组中每个元素都是 int 类型,其中仅放数据值本身。

    ​

  3. 下列代码的内存布局

    Person[] p = new Person[3];
    
    p[0] = new Person(10);
    p[1] = new Person(20);
    p[2] = new Person(30);
    
    1
    2
    3
    4
    5

    ​

  4. 二维数组。二维数组是一种平面的二维结构,本质上是数组的数组。

    例如下列数组,实际的存储

    int[][] i = new int[2][3];
    
    System.out.println(i instanceof Object);
    System.out.println(i[0] instanceof Object);
    System.out.println(i[0] instanceof int[]);
    
    // true
    // true
    // true
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    ​

  5. 二维数组中初始化为偶数

    int idx = 0;
    for (int k = 0; k < 2; k++) {
        for (int j = 0; j < 3; j++) {
            i[k][j] = 2 * (idx + 1);
            idx++;
        }
    }
    
    for (int[] ints : i) {
        for (int anInt : ints) {
            System.out.println(anInt);
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    如图:

    ​

  6. 二维数组的定义和初始化

    /*
    int[][] a = new int[3][];
    a[0] = new int[2];
    a[1] = new int[3];
    a[2] = new int[1];
    */
    
    // int[][] a = new int[][3];
    
    int[][] a = new int[][]{{1, 2, 3}, {4, 5}};
    
    for (int[] ints : a) {
        for (int anInt : ints) {
            System.out.print(anInt + " ");
        }
        System.out.println();
    }
    
    // 1 2 3 
    // 4 5 
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
  7. Arrays

    Arrays.equals

  8. System.arrayCopy

  9. 三维数组。type[][][] a = new type[2][3][4]

编辑 (opens new window)
#数组#包装#二维#使用#定义#类#class#array
上次更新: 2023/02/22, 13:47:25
Java_SE之String类及其源代码剖析
冒泡排序、交换排序与快速排序

← Java_SE之String类及其源代码剖析 冒泡排序、交换排序与快速排序→

最近更新
01
解决css部分border被圆角切掉之后圆角的边框消失问题
03-18
02
使用TypeScript开发一个自定义的Node-js前端开发脚手架
03-08
03
Github-Actions使用release-please实现自动发版
03-06
更多文章>
Theme by Vdoing | Copyright © 2011-2023 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式