数据类型[] 数组名 ,= new 数据类型[数组的元素个数/或称数组的长度],或= new int[]{元素值},或={元素值}
例子:(int[] arr = int[3],&int[] arr = int[]{1,2,3},&int[] arr={1,2,3});
Array
声明与赋值可否分开,上面3种中1、2可以,3不行
声明Int[] arr;赋值arr=new int[3],new int[]{1,2,3};
Syso(arr)—[ I @ 659e0bfd
上面为数组的地址值:对象类型-数组;对象元素类型int;@代表后面是地址值;哈希码值的十六进制格式
通过地址值和编号(即数组下标)共同确定唯一的元素-eg:arr[1];
数组下标越界异常
new-在内存中开辟空间
Math.sqrt();
Math.cbrt();
Math.pow(a,b);
Math.max/min(,);
Java内存
堆:变量(暂时理解),储存内容不用时立即清除,会默认赋予系统初始值
栈:对象,存储的对象不用时某个时间进行回收
方法区、本地方法栈、寄存器
栈-arr与堆,相互联系
数组new int[3],会进入堆,给系统初始值(分别为byte,short,int-0; char-‘\u0000’; long-0L(表明长整型数据); float-0.0F; double-0.0; Boolean-false; 引用-null)
共享:两个引用指向同一块内存空间
数组应用:
遍历,最值,逆序,查找(找对应下标值),排序,扩容
增强for循环:(数组元素类型 变量名:要进行遍历的数组名)
For(int i:arr){
Syso i;
}其输出的是数组的拷贝值
增强For循环只能做遍历不能做其他操作。
转成字符串输出:
Import java.util.Arrays;
Syso(arrays.toString(arr));
新建数组Int[] arr2 = new int[长度表现形式可为arr1.length-1-i];(i从0到x)
顺序数组二分(折半)查找,注意分块min=mid+1(在右面部分)/max=mid-1(在左边部分)(从小到大的情况),且要注意min<=max
Return解决方式可以与flag解决方式差不多,后面细说