package com.qianfeng.test;
import java.util.function.IntBinaryOperator;
/*
* 数组:用来存储数据的
* 数组的解释:是一种引用数据类型,可以同时存储多个相同类型的数据
* 引用数据类型的变量中存储的是地址,并且是十六进制的数据。简单数据类型存储的是数值
*
* 特点:数据的内存空间是连续的,数组内的元素如果没有赋值,会有默认值,简答数据类型 默认值是0
*
* 缺点:这个空间一旦被创建出来就不能再被改变
*
* new:每new一次,会在堆中开辟一块新的空间。两个数组之间没有关系互不影响
* new出来的空间都在堆里面
*
*/
public class Demo5 {
public static void main(String[] args) {
int a = 5;
// 创建一个可以存三个int型数据的数组,并将地址保存在arr变量中.
/*
* 构成: new +数据类型 +【元素的个数】
*
* new 的功能:1.开辟内存空间 2.将当前数组的地址返回,默认当前数据的地址就是首元素的地址 int [3]中的int
* :存储的值是什么类型,这里就写什么类型
*
* int + [] :代表存储的是int型 数据,int[]是一个整体,代表int型的数组类型。 = 后面是数组(实体),注意:后面的[]与前面的意义不同
*
* arr 是局部变量,是引用数据类型
*
*/// int[] arr = new int[3];
// 给元素赋值 -- 通过下标
// 构成:数组的名字+【下标的值】,先通过arr里面保存的地址找到对应的数组,再通过下标找到对应的元素完成赋值
// arr[0] = 3;
// arr[1] = 5;
// arr[2] = 6;
// System.out.println(arr[2]);/*
* 注意点:数组下标越界 System.out.println(arr[10]);
*//*
* 其他创建数组的方式: 方式一:创建数组的同时完成了初始化 要求:int 后面的 [] 里面什么都不能写,数组的大小默认就是后面{}中元素的个数
*
* int [] arr1 = new int []{1,2,3,4};
*
* 方式二: int [] arr2 = {2,3,4};
*
*//*
* 遍历:
*/
// for (int i = 0; i < arr.length; i++) {
// //arr.length 获取数组的长度(元素的个数)
// System.out.println(arr[i]);
// }// 实例一:求三个数的最大值:
// int[] arr = { 4, 2, 7, 1 };
// int max = getMax(arr);
// System.out.println(max);// 实例二:实现两个值得交换
int[] arr = { 4, 5 };
//change(arr[0],arr[1]);
//可以将数组本身直接当做参数传递
//但是直接写大括号的形式不可以直接作为参数
//chang(new int []{3,4})
change(arr);
System.out.println(arr[0]+" "+arr[1]);
}// public static int getMax(int[] arr) {
// int max = 0;
// for (int i = 0; i < arr.length; i++) {
// if (arr[i] > max) {
// max = arr[i];
// }
// }
// return max;
// }//值传递
public static void change(int a, int b) {
a = a^b;
b = a^b;
a = a^b;
}//地址传递, 址传递时,如果函数内部的引用的指向发生了改变,就不能影响外部得值
public static void change(int [] arr) {
arr[0] = arr[0]^arr[1];
arr[1] = arr[0]^arr[1];
arr[0] = arr[0]^arr[1];
}}
java_学习4 数组的学习
猜你喜欢
转载自blog.csdn.net/fang1025780636/article/details/81253616
今日推荐
周排行