文章目录
数组
一维数组的静态初始化
- 数组是一种容器,可以用来存储同种数据类型的多个值(有隐式转换)
- 数组初始化:在内存中,为数组容器开辟空间,并将数据存入容器的过程
完整格式:数据类型[ ]数组名=new 数据类型[ ]{元素1 ,元素2 ,…}
简化格式:数据类型[ ]数组名={元素1 ,元素2 ,…} - 数组的地址值:表示数组在内存中的位置
地址值的含义:
例:[D@776ec8df
① [ :表示当前是一个数组
② D :表示当前数组里面的元素都是double类型的
③ @ :表示一个间隔符号(固定格式)
④ 776ec8df :才是数组真正的地址值(十六进制)
数组元素访问:
索引:也叫下标,角标
索引特点:从0开始,逐个+1增长,连续不间断
数组的遍历
package demo1;
public class arr {
public static void main(String[] args) {
int []a={1,2,3,4,5};
//利用循环改进代码
//开始条件:0
// 结束条件:数组的长度-1(最大索引)
//在Java中,关于数组的一个长度属性:length
//调用方式:数组名.length
System.out.println(a.length);//输出数组的长度
//拓展:自动的快速生成数组的遍历方式
//数组名.for
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
一维数组的动态初始化
动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值
格式:数据类型[ ] 数组名 = new 数据类型 { 数组长度 }
拓展:数组默认初始化值的规律
整数类型:默认初始化值0
小数类型:默认初始化值0.0
字符类型:默认初始化值‘/u0000 ’ 空格
布尔类型:默认初始化值false
引用数据类型:默认初始化值null
一维数组动态初始化和静态初始化的区别
动态初始化:手动指定数组长度,由系统给出默认初始化值。
特点:只明确元素个数,不明确具体数值,推荐使用动态初始化。
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。
特点:需求中已经明确了要操作的具体数据,直接静态初始化即可。
数组元素中的首尾交换
package demo1;
public class ArrTest1 {
public static void main(String[] args) {
//交换数值元素的首尾
//定义数组
int[] arr ={1,2,3,4,5};
//利用循环交换数据
for (int i = 0,j=arr.length-1; i < j; i++,j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+" ");
}
}
}
Java内存分配
拓展:当两个数组指向同一个小空间时,其中一个数组对小空间中的值发生了改变,那么其他数组再次访问的时候都是修改之后的结果了。
方法
方法是程序单元中最小的执行单元
例:main方法,主方法
public static void main(String[ ] args){
}
用法:重复的代码,具有独立功能的代码可以抽取到方法中
方法的格式
把一些代码打包在一起,用到的时候就调用
方法定义:
把一些代码打包在一起,该过程称为方法定义。
方法调用:
方法定义后并不是直接运行的,需要手动调用才能执行,该过程称为方法调用。
方法的定义格式
方法的定义格式:
public static 返回值类型 方法名(参数){
方法体;
return返回值;
}
最简单的方法定义
带参数的方法定义
注意:方法调用时,参数的数量与类型必须与方法定义中的小括号里面的变量一一对应,否则程序会报错。
- 实参:全称实际参数,方法调用中的参数
- 形参:全称形式参数,是指方法定义中的参数
方法调用时,形参和实参必须一一对应,否则程序会报错
带返回值方法的定义
方法的注意事项
- 方法不调用就不执行。
- 方法与方法之间是平级关系,不能互相嵌套。
- 方法的编写顺序和执行顺序无关。
- 方法的返回值类型为void,表示该方法没有返回值, 没有返回值的方法可以省略return语句不写。 如果要编写return,后面不能跟具体的数据。
- return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
return关键字
- 方法没有返回值:可以省略不写。如果书写,表示结束方法。
- 方法有返回值:必须要写。表示结束方法和返回结果。
方法的重载
- 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。
- 每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。
- 简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。
参数不同:个数不同、类型不同、顺序不同。
java虚拟机会通过参数的不同来区分同名的方法
顺序不同可以构成重载,但是不建议
方法的内存
二维数组
静态初始化
- 格式:数据类型[ ] [ ] 数组名 =new 数据类型[ ] [ ]{元素1,元素2,…};
- 范例: int[ ][ ] arr = new int[ ][ ]{{11,22},{33,44}}
- 简化格式:数据类型[ ] [ ]数组名={{元素1,元素2},{元素1,元素2}};
- 范例:int[ ] [ ]arr={{11,22},{33,44}};
- 范例:int arr[ ] [ ]={{11,22},{33,44}};
动态初始化
二维数组动态初始化格式:
数据类型[ ][ ] 数组名 = new 数据类型[ m][ n];
m表示这个二维数组,可以存放多少个一维数组。
n表示每一个一维数组,可以存放多少个元素。
二维数组内存图