同一种类型数据的集合,数组就是一个容器
可以自动给数组中的元素从0开始编号,方便操作数组中的元素。
元素类型[] 数组名= new 元素类型[元素个数];
实例: int[] arr=new int[5];
元素类型[] 数组名 = new 元素类型[]{元素1,元素2,...};
int [] arr = new int[] {1,3,5,7,9};
int [] arr2 = {2,4,6,8};
元素类型[] 数组名={元素1,元素2,...};
int[] arr={1,2,3,4};
JVM启动时,会默认划分五块区域的内存,这有点类似于,一个运动场,默认就有各种项目的运动区域一样
局部代码块,限定局部变量的生命周期
堆内存中的每个实体对象都有首地址值
堆内存中的变量都会进行默认初始化,不同的类型初始化的值不一样(eg:整数是0,boolean是false,float为0.0f)
堆内存中无用的对象,不会立刻释放,由JVM中的垃圾回收器定期回收。
public static void sortSelect(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;i<arr.length;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
public static void sortBubble1(int[] arr){
//-1是防止访问越界
for(int i=0;i<arr.length-1;i++){
//-1是防止访问越界,-i是当外循环一次是,内循环减少最后一个的比较
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
public static void sortBubble2(int[] arr){
//-1是防止访问越界
for(int i=arr.length-1;i>=0;i--){
for(int j=0;j<i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
public static int getIndex(int[] arr,int key){
for(int i=0;i<arr.length;i++){
if(arr[i]==key){
return i;
}
}
return -1;
}
//查找的前提是一个已经排序的整数
public static int BinarySearch(int[] arr,int key){
int min=0;//查找起始位置
int max=arr.length-1;//查找结束位置
int mid=(min+max)/2;//当前查找位置
//int mid=(min+max)>>1;//左移一位跟除二是一样的效果
while(arr[mid]!=key){
if(key>arr[mid]){
min=mid+1;
}else if(key<arr[mid]){
max=mid-1;
}
mid=(min+max)/2;
//mid=(min+max)>>1;//左移一位跟除二是一样的效果
if(max<min){
return -1;
}
}
return mid;
}
public static void toHex(int num){
if(num==0){
System.out.println("0");
return ;
}
char[] charArr={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
char[] hexArr = new char[8];
int index = 8;
while(num!=0){
int temp =num&15;
hexArr[--index]=charArr[temp];
num=num>>>4;
}
for(int i=index;i<8;i++){
System.out.print(hexArr[i]);
}
}