Java基础学习(三)

一、一维数组

1.1 初始化的三种方法

动态初始化(2种):

//第一种
int a[] = new int[5];  //创建一个名字为a,存放5个int的数组
//第二种  先声明,再new分配
int a[];     //声明数组 ,现在a是null
a = new int[5];    //分配内存空间,可以存放数据

静态初始化:

int a[] = {1,2,4,6,8};    //知道数组有多少元素,具体值为多少

1.2 值传递、引用传递

值传递:基本数据类型赋值方式为值传递,即y的变化不会影响x,如下所示:

int x = 1;
int y = x;
y = 2;
System.out.println(x); // x = 1
System.out.println(y); // y = 2

引用传递:数组默认情况下是引用传递,赋的值是地址,即arr2的变化会影响arr1,如下所示:

int[] arr1 = {1,2,3};
int[] arr2 = arr1;
arr2[0] = 10;
System.out.println(arr1[0]); // arr1[0] = 10
System.out.println(arr2[0]); // arr2[0] = 10

(该图截取自b站韩顺平Java课程)

1.3 冒泡排序

思想:每一轮排序将最大的数放最后,每排完一轮,将比前一轮少比较一次。如第一轮是将最大数放最后,第二轮将第二大的数放倒数第二的位置......以此类推

代码实现:

int arr[] = {20,16,99,25,66,89,60};
for(int i= arr.length;i >= 0;i--){  //一共要进行几轮排序
  for(int j = 1;j<i;j++){           //一轮排序中要进行几次排序
    if(arr[j-1] >= arr[j]){         //判断,将大数放后面
      int temp = arr[j];            //定义一个临时变量用于存放后面的小数字
      arr[j] = arr[j-1];
      arr[j-1] = temp;
    }
  }
}

二、二维数组

二维数组内存原理示意图:

二维数组指向了一个地址空间,地址空间里面存放了一维数组的地址,一维数组的地址又指向了一个地址空间,实际上是在一维数组的地址空间里面存放具体的数值。

(该图截取自b站韩顺平Java课程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值