从零开始的java学习Day03----------基础篇(方法、数组)

方法

其实java中的方法就是其他语言中的“函数”,自己写的有特定功能的代码块,后面用的时候可以随时调出来用。

格式:
修饰符 返回类型 方法名(参数类型 参数名1,参数类型 参数名2...{
     方法体语句;
     return 返回值;
}
  • 修饰符:目前就用 public static ,其他的以后再补充
  • 返回值类型:就是功能结果的数据类型
  • 方法名:符合命名规则即可,自己取,见名知意,后面调用的时候会用到
  • 参数:实际参数和形式参数(实际参数:实际参与运算的;形式参数:方法定义上的,用于接收后续实际参数,被替代)
  • 方法体语句:实际完成功能的代码块(自己写)
  • return:结束方法用,之前有提到过
  • 返回值:就是该方法的返回结果,写在return后
    (一旦方法有确定明确的返回类型,一定要在return后有返回值,如果return写在了if里面,也会造成报错,因为if有条件判断,不会是100%执行,包括编译的时候,一些变量赋值在if,编译时不会判断if,造成变量未被赋值,编译失败)
    (方法调用的的时候,不要再传递数据类型 )

方法的调用

直接调用
输出调用
赋值调用

void类型只能进行直接调用

方法不调用不执行,main方法被虚拟机自动调用执行

  • 有明确返回值的方法单独调用一般没意义,需配合实际使用调用(例如赋值调用,输出调用),方法的调用注意匹配数据类型
方法重载

方法名可以相同,只要参数个数和参数类型不同即可,JVM可以自动识别及匹配(注:与返回值无关)

数组

数组定义格式:

  1. 数据类型[] 数组名;
  2. 数据类型 数组名[];

上述两种效果上一样,但是念法上有小区别,推荐使用第一种。

初始化数组
  • 动态初始化 只指定长度,由系统给出初始化值
    数据类型[] 数组名=new 数据类型[数组长度];

  • 静态初始化 给出初始化值,由系统决定长度

数据类型[] 数组名 =new 数据类型[]{元素1,元素2,元素3,…};
缩写格式:数据类型[] 数组名={元素1,元素2,元素3,…};
数据具体值能确定用第二种,只知道需要存取的值的数量就用第一种

  • new是一个关键字,表示创建数组

数组是引用数据类型

获取数组

  • 获取数组中的元素:数组名[索引]
    (注:索引(角标/下标)其实就是每个元素的编号,从0开始,最大索引是数组的长度-1)
  • 数组名.length(返回数组的长度,可以直接用于的循环体的条件中,不能清楚数组长度时)

Java内存空间(了解)

  • 栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行,存放局部变量(方法定义中后者方法声明上的变量)
  • 堆:存储对象或者数组,new来创建的,都存储在堆内存
  • 方法区:存储可以运行的class文件
  • 本地方法区:JVM在使用操作系统功能的时候使用,和我们开发无关
  • 寄存器:给CPU使用,和我们开发无关。
堆内存的特点
  • A:每一个new出来的东西都有地址值
  • B:每个变量都有默认值(整形是0,浮点是0.0,char是’\u0000’是一个不可见字符,布尔是false,引用数据类型是null)(静态方式也有默认值,只是初始化就被覆盖了)
  • C:堆里的数据使用完毕回被清除,但不是立即删除,垃圾回收器空闲时删除
注意

可以通过赋值,将一个数组的地址赋值给另一个地址,此时两个数组指向同一个地址,也就是说,被赋值数组。长度及内容都会变为赋值数组(数组堆内存中的长度定义后不可变的,这里是将一个数组覆盖了一个数组,将他的地址替换,原来数组在堆内存中的地址如果没有其他数组指向他会直接消失) ,此时,改变任意一个数组的值,两个数组都将发生改变(因为两个数组都共用一个堆内存中的数据)
示例

int[] a = new int[10];
int[] b = new int[20];
b = a;
a[0] = 1;
a[1] = 2;
for (int i = 0; i < b.length; i++) {
  System.out.print(b[i] + " "); //输出为:1 2 0 0....
}
System.out.println();
System.out.println("b数组长度是" + b.length); //输出为:b数组长度是10

数组之间未进行赋值前,地址都是不同的,就算数组名、长度、内容全部一样(在不同的方法里定义的),数组的地址也不会相同。

二维数组(了解)

定义格式

数据类型[][] 数组名;
数据类型[] 数组名[];
数据类型 数组名[][];

初始化格式
  1. 数据类型[][] 数组名=new 数据类型[一维数组数量][一维数组长度];
    注:此种方法,二位数组为一个矩形,每个一维数组长度一样

  2. 数据类型[][] 数组名=new 数据类型[一维数组数量][];
    注:此种方法,一维数组长度未赋值,可后续再动态赋值,同一维数组赋值格式,此时每组一维数组长度可能会不同

    • int[][] i=new int[5][]; //定义一个一维数组个数为5的二位数组,一维数组长度为空
    • int[0]=new int[2]; //为索引为0的一维数组做初始化,此索引的数组长度为2
    • int[1]=new int[3]; //为索引为1的一维数组做初始化,此索引的数组长度为3
  3. 数据类型[][] 数组名=new 数据类型{{元素1,元素2,…},{元素1,元素2,…},{元素1,元素2},…}静态初始化,同一维数组,区别是大括号里套大括号,大括号里每一个大括号代表这个二维数组里有多少个一维数组,可以同一维数组那样写简化格式。

二维数组的遍历

int[][] arr2={{1,2,3},{2,4,5}{6,6,6,6,}{2,3,1,2,2,3}} //定义一个二维数组,并赋值
for(int i=0;i<arr2.length;i++) //遍历这个二维数组的一维数组
{ for(int j=0;j<arr[i].length;j++) //遍历这个二维数组的每个一维数组中的值
{System.out.println(arr[i][j]);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值