Java基础应用
知识网图:
一、引言
本章内容主要介绍java中的基础应用,包括数组,Arraylist,方法以及Debug的使用
二、数组
1.概念
数组是一种数据结构,用于存储一组相同类型的元素(值或变量),且它的大小是固定的。每个元素可以通过索引来访问,索引从0开始计数。数组可以是一维或多维的,多维数组也被称为矩阵。
2.数组的定义格式
第一种格式
数据类型[] 数组名
示例:
int[] arr; double[] arr; char[] arr;
第二种格式
数据类型 数组名[]
示例:
int arr[]; double arr[]; char arr[];
3.数组的初始化
3.1 数组的动态初始化:数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
-
等号左边:
-
int:数组的数据类型
-
[]:代表这是一个数组
-
arr:代表数组的名称
-
-
等号右边:
-
new:为数组开辟内存空间
-
int:数组的数据类型
-
[]:代表这是一个数组
-
5:代表数组的长度
-
3.2 数组的静态初始化:在创建数组时,直接将元素确定。
-
完整版格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
-
简化版格式:数据类型[] 数组名 = {元素1,元素2,...};
4.数组元素访问
4.1 索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
4.2 访问数组元素格式:数组名[索引];
5.数组操作的常见问题:
5.1 索引越界:指定的索引超出数组的长度范围,程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。(解决方案:将错误的索引修改为正确的索引范围即可! )
5.2 空指针异常:arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。(解决方案:给数组一个真正的堆内存空间引用即可!)
6.数组遍历查找
此处不再赘述。
三、Arraylist
1.概念
ArrayList是Java中一个常用的动态数组实现类,它提供了比普通数组更加灵活和强大的功能。ArrayList可以自动扩容,根据需要动态增加元素。它的容量会自动增长,以适应存储元素的需求。ArrayList支持使用索引快速访问元素,并提供了许多常用的操作方法,如添加、删除、修改和查找等。
2.Arraylist与数组的区别:
相同点:都是存储数据的容器
不同点:数组的容量是固定的,无法动态改变,而ArrayList的容量是动态的。数组可以保存基本数据类型,而ArrayList不可以。
3.Arraylist的常用方法:
add(Object element):向ArrayList集合中的添加元素。
size():返回列表中的元素个数。
get(int index):返回列表中指定位置的元素,index从0开始。
add(int index, Object element):在列表的指定位置插入指定元素。
set(int i, Object element):将索引i位置元素替换为元素element并返回被替换的元素。
clear():从列表中移除所有元素。
isEmpty():判断列表是否包含元素,不包含元素则返回 true,否则返回false。
contains(Object o):如果列表包含指定的元素,则返回 true。
remove(int index):移除列表中指定位置的元素,并返回被删元素。
remove(Object o):移除集合中第一次出现的指定元素,移除成功返回true,否则返回false。
四、方法
1.概念
方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
2.方法的定义与调用
2.1 无参方法的定义与调用(先定义后调用)
-
定义格式:
public static void 方法名 ( ) { // 方法体; }
-
调用格式:
方法名();
2.2 带参方法的定义与调用
-
定义格式:
参数:由数据类型和变量名组成 :数据类型 变量名
public static void 方法名 (参数1) { 方法体; } public static void 方法名 (参数1, 参数2, 参数3...) { 方法体; }
-
调用格式:
方法名(参数); 方法名(参数1,参数2);
2.3 方法的通用格式
-
格式:
public static 返回值类型 方法名(参数) { 方法体; return 数据 ; }
注:明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型;明确参数:主要是明确参数的类型和数量
3.形参和实参
3.1 形参:方法定义中的参数 a
public static void method(int a){}
等同于变量定义格式,例如:int number
3.2 实参:方法调用中的参数 b
method(b);
等同于使用变量或常量,例如: 10 number
4.方法的重载
4.1 概念
同一个类中的多个同名方法的参数不同(数量不同或形参数据类型不同)。
示例:
public class MethodDemo {
public static void fn(int a) {
//方法体
}
public static int fn(double a) {
//方法体
}
}
public class MethodDemo {
public static float fn(int a) {
//方法体
}
public static int fn(int a , int b) {
//方法体
}
}
4.2 方法的参数传递
-
基本数据类型的参数,形式参数的改变,不影响实际参数(依据:每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失)
-
对于引用类型的参数,形式参数的改变,影响实际参数的值(依据:引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果 )
五、Debug
1. 概念
Debug是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
2.操作流程
-
如何加断点
-
选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可
-
-
如何运行加了断点的程序
-
在代码区域右键Debug执行
-
-
看哪里
-
看Debugger窗口
-
看Console窗口
-
-
点哪里
-
点Step Into (F7)这个箭头,也可以直接按F7
-
-
如何删除断点
-
选择要删除的断点,单击鼠标左键即可
-
如果是多个断点,可以每一个再点击一次。也可以一次性全部删除
-