java语法基础四学习笔记提纲
一、Eclipse的安装与使用
eclipse导入已有工程的步骤
eclipse导入一个源文件乱码问题的解决方法。
eclipse删除一个工程
运行程序,误选了Java透视图,如何调整为Java EE的透视图
创建一个新的workspace,以前的设置会重置。把workspace下的metadata文件夹删了,会重置设置。
在eclipse下查看类库的源码。
创建代码模板
二、数组
1、数组概述
2、注意
数组属于引用数据类型的变量,数组中的元素的类型可以是基本数据类型,也可以使引用数据类型。
创建数组对象会在内存中开辟一整块连续的空间。
数组的长度一旦确定就不可以修改。
3、数组的分类:
按照维数:一维、二维、….、多维
按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组。
4、一维数组的使用
一维数组的声明和初始化
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行。
ids = new int[]{1001,1002,1003,1004};
//动态初始化:数组的初始化和数组元素的赋值操作分开进行。
String[] names = new String[5];
//也是正确的写法
int[] arr4 = {1,2,3,4,5};//类型推断:注意第3行的情况不可以省,要放在同一行才可以。
int a[] = new int[3];
int b[] = new int[]{1,2,3};
//错误写法:总结:就是前面的中括号不能有值,后面的中括号和大括号不能同时有值
int[] arr1 = new int[];
int[5] arr2 = new int[5];
int[] arr3 = new int[2]{1,2,3};
总结:数组一旦初始化完成,其长度就确定了的,就不可修改。
如何调用数组的指定位置的元素
- 通过角标的方式调用
- java中的角标从0开始。
如何获取数组的长度
- 属性:length
- 如何遍历数组
for(int i = 0; i < names.length; i++){
System.out.println(names[i]);
}
数组元素的默认初始值
- 数组元素是整型:0
- 数组元素是浮点型:0.0
- 数组元素是boolean类型:false
- 数组元素是char类型:是0不是’0’,是ASCII码为0。或者是’\u0000’
- 数组元素是引用数据类型时:null
- 数组的内存解析
jvm中的栈、堆、方法区、静态域的概念
5、二维数组的使用
- 概念:对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
数组属于引用数据类型,数组的元素也可以使引用数据类型,一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。
- 二维数组的声明和初始化
int[] arr = new int[]{1,2,3};//一维数组
//静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
//动态初始化1
String[][] arr2 = new String[3][2];
//动态初始化2
String[][] arr3 = new String[3][];
//也是正确的
int[] arr4[] = new int[][]{{1,2,3},{4,5},{6,7,8}};
int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};
int a[][] = new int[4][4];
int b[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
int c[][] = new int[4][];
//错误情况
String[][] arr4 = new String[][4];
String[4][3] arr5 = new String[][];
int[][] arr6 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};
二维数组元素的调用
获取数组的长度
如何遍历二维数组:嵌套for循环
数组元素的默认初始化值
//二维数组的使用
//规定:二维数组分为外层数组元素,内层数组的元素
int[][] arr = new int[4][3];
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等
public class ArrayTest3 {
public static void main(String[] args){
int[][] arr = new int[4][3];
System.out.println(arr[0])//[I@6d06d69c 16进制的地址值
System.out.println(arr[0][0]);//0
System.out.println(arr);//[[I@6d06d69c 16进制的地址值
double[][] arr3 = new double[4][];
System.out.println(arr3[1]);//null
System.out.println(arr3[1][0]);//空指针异常
}
}
总结:针对于初始化方式一:比如如:int[][] arr = new int[4][3];
外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同
针对于初始化方式二:比如:int[][] arr = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错。
二维数组的内存结构
引用类型的变量,存储的值就两种情况,要么是地址值,要么是null;