JAVA学习day04

然然,哎嘿嘿我的然然

P52 数组

数组声明创建

首先必须声明数组变量,才能在程序中使用

int[] nums;//声明
int nums2[];//这种方法不是常用的,只是兼容C++

Java语言使用new操作符来创建数组

dataType[] arrayRefVar = new dataType[arraySize];//伪代码
nums = new int[10];

给数组元素中赋值

nums[0] = 1;
nums[1] = 2;//没赋值的时候,会有默认值,int是0
nums.length//数组长度

Java内存分析

内存图

在声明的时候在栈有数组

只有new的时候在堆里才会有

一般声明和new会一起

int[] nums2 = new int [10];
int a[][] = new int[2][5];//二维数组

静态初始化

int[] a = {1,2,3,4,5,6,7,8}//静态初始化不可改值
int[][] array = {{1,2},{2,3},{3,4},{4,5}}//二维数组

动态初始化

int[] b = new int[10];//动态初始化
b[0] = 10;//赋值

数组的四个基本特点

  • 其长度是确定的,一旦被创建大小就不可改变
  • 元素必须是相同类型
  • 元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属引用类型,数组也可以看作对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型, 数组对象本身是在堆中的

P57 Arrays类

数组的工具类java.util.Arrays

P58 冒泡排序

    //冒泡排序
    public static int[] sort(int[] array){
        for (int i = 0; i < array.length-1; i++) {

            boolean flag = false;//通过flag标志位减少没有意义的比较

            //内层循环,比较判断两个数,如果第一个数比第二个数大,则交换位置
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j+1] > array[j]){
                    int temp = 0;
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag = true;
                }

            }
            if(!flag){
                break;
            }

        }
        return array;
    }

你可能感兴趣的:(JAVA学习day04)