zoukankan      html  css  js  c++  java
  • JavaSE知识-05(数组)

    数据类型[] 数组名 = new 数据类型[数组的长度];
    int [] arr = new int[5]; //动态初始化,可以存储5个int类型的数据

    系统给出默认初始化值,整数类型(byte,short,int,long)都是0
    浮点类型(float,double)都是0.0
    布尔类型(boolean)是false 字符类型(char)是'u0000'

    char在内存中占两个字节,是16个二进制位
    u0000,每一个0代表的是16进制的0,那么四个0就是代表16个二进制位


    [代表是数组,几个代表几维
    I代表int类型
    @是固定的
    1db9742代表是16进制的地址值


    • 存储局部变量:定义在方法声明上和方法中的变量


    • 存储new出来的数组或对象

    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
    或简化为 数据类型[] 数组名 = {元素1,元素2,...};
    int[] arr = new int[]{11,22,33,44,55};
    此种形式可以先申明后赋值,即等价于
    int[] arr; arr = {11,22,33,44,55};
    或简化为int[] arr={11,22,33,44,55};
    //静态初始化

    数组操作异常

    • ArrayIndexOutOfBoundsException:数组索引越界异常
      原因:你访问了不存在的索引,下标越界
    • NullPointerException:空指针异常
      原因:数组已经不再指向堆内存,而你还用数组名去访问元素
      int[] arr ={1,2,3};
      arr = null;
      System.out println(arr[0]);

    数组元素反转(就是把元素对调)

    class Demo10_Array {
    	public static void main(String[] args) {
    		int[] arr = {11,22,33,44,55};
    		reverseArray(arr);
    		print(arr);
    	}
    	public static void reverseArray(int[] arr) {
    		for (int i = 0;i < arr.length / 2 ; i++) {
    			//arr[0]和arr[arr.length-1-0]交换
    			//arr[1]和arr[arr.length-1-1]交换
    			//arr[2]和arr[arr.lentth-1-2]
    			//...
    
    			int temp = arr[i];
    			arr[i] = arr[arr.length-1-i];
    			arr[arr.length-1-i] = temp;
    		}
    	}
    	public static void print(int[] arr) {
    		for (int i = 0;i < arr.length ;i++ ) {				//遍历数组中的每一个元素
    			System.out.print(arr[i] + " ");					//打印在控制台
    		}
    	}
    }
    

    二维数组

    • 格式: int[][] arr = new int[3][2];推荐
      表示有3个一位数组,每个一维数组有2个元素.
      其它格式也可表示:
    • 数据类型 数组名[][] = new 数据类型[m][n];
    • 数据类型[] 数组名[] = new 数据类型[m][n];

    数组的默认初始化值是null

    二维数组的遍历

    • 外循环控制的是二维数组的长度,其实就是一维数组的个数。
    • 内循环控制的是一维数组的长度。
    class Test1_Array {
    	public static void main(String[] args) {
    		int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
    		for (int i = 0;i < arr.length ;i++ ) {			//获取到每个二维数组中的一维数组
    			for (int j = 0;j < arr[i].length ;j++ ) {	//获取每个一维数组中的元素
    				System.out.print(arr[i][j] + " ");
    			}
    			System.out.println();
    		}
    	}
    }
    
  • 相关阅读:
    一个校园互联网实验室的纳新试题(试题整理)
    用CI框架向数据库中实现简单的增删改查
    CodeIgniter框架学习要点
    一个理解PHP面向对象编程(OOP)的实例
    为什么在需要使用‘template as a disambiguator’
    被忽略的class“特殊成员”—转换函数
    C++风格cast的优先级
    printf当前正在处理的格式化符是什么
    C++中模板特殊化(speicialization)的偏序关系及make规则选择
    PhysX中raycast和sweep对block和touch的处理逻辑
  • 原文地址:https://www.cnblogs.com/albieh/p/12189647.html
Copyright © 2011-2022 走看看