欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Java 知识点汇总(三)

Java 知识点汇总(三)

2025/4/17 5:23:46 来源:https://blog.csdn.net/2202_75381448/article/details/146905796  浏览:    关键词:Java 知识点汇总(三)

Java语法的学习笔记

 下面放复习的文档链接,如果有需要可以前往下载获取,这个仓库还有关于mysql、hadoop、python等的复习部分,并且每个文档有着对应的代码部分,链接如下:

https://gitee.com/zhang-huile/LearnForJob/tree/master/java/javasepro

目录

Java语法的学习笔记

一、java 流程控制

二、java 分支结构

1.if 分支是什么?

2.if分支写法有几种?

3.注:

4.switch分支

5.if 、switch 的比较 ,以及各自适合什么场景。

6.目标:搞清楚 switch 使用时的几点注意事项

7.switch穿透性能解决什么问题?

三、java 循环结构

1.for循环在开发中的常见场景

2.for循环的语法和执行流程

3.while循环的语法和执行流程

for 与 while 相同点:

for 与 while 不同点:

5.什么时候使用for循环,什么时候使用while循环?

6.案例:纸张折叠成珠穆朗玛峰的高度。

7.do-while循环格式 和执行流程

8.三种循环的小结:

9.死循环

10.循环嵌套

11.跳转关键字

四、案例技术:生成随机数

1.random的使用

2.random生成随机数需要几步?

3.如何生成 65- 91 之间的随机字数?

4.猜数字的游戏

五、数组

1.数组是什么?

2.数组的定义

3.如何访问数组的元素?

4.访问数组的长度如何获取?

5.数组的最大索引是多少?

6.如果访问数组时,使用的索引超过了数组的最大索引会出什么问题?

7.数组的遍历

8.如何遍历数组?

9.案例:

10.动态初始化数组:

11.两种数组定义的方式各自适合什么场景?

12.案例:

13.java内存分配介绍

14.一个Java程序,主要看JVM中包含的哪几部分内存区域?

15.简单说说 int a = 20; int[] arr = new int[3]; 这两行代码的执行原理?

16.多个数组变量,指向同一个数组对象的原因是什么?需要注意什么?

17.如果某个数组变量存储的是null,会发生什么情况?

六、专项训练

1.数组求最值

2.数组反转

3.随机排名

七、DeBug的使用

1.DeBug的作用

八、方法

1.方法是什么?

2.方法定义时几个注意点:

3.方法的好处

4.方法要执行必须怎么办?

5.方法的其他形式

6.方法使用时常见的问题

8.案例:

(1)求 1-n的和。

(2)判断一个整数时奇数还是偶数。

9.方法在计算机中的执行原理

九、java的参数传递机制 (重要)

1.java的传递机制都是值传递

2.引用类型的传递

3.基本类型和引用类型的参数在值传递的时候有什么不同?

4.案例:

十、方法的重载

1.方法的重载

2.注意事项:

3.案例:

4.补充:return关键字在方法中单独使用

5. return ; 跳出并立即结束所在方法的执行


一、java 流程控制

        1. 顺序结构:程序从上到下依次执行各个语句,只有前一个语句执行完毕后,才会执行下一个语句。

        2. 选择结构:程序根据判断条件来执行不同的语句,只有满足条件的语句才会执行,否则会跳过该语句。

        3. 循环结构:程序根据循环条件重复执行语句,直到满足循环条件为止。

二、java 分支结构

1.if 分支是什么?

        可以根据条件,选择执行某段程序执行

2.if分支写法有几种?

        一般有三种写法:

1.ifif(条件表达式){//执行的代码
}2.if...elseif(条件表达式){//执行的代码
}else{//执行的代码
}3.if...elseif(条件表达式){//执行的代码
}else if(条件表达式){//执行的代码
}else{
//执行的代码
}

3.注:

        if(条件){},()后不能跟; , 否则{}中的代码不受if控制

        如果if语句的{}中只有一行代码的情况,{}可以省略不写 (但是不推荐省略)

4.switch分支

        通过比较值来决定执行哪条分支。

        switch分支的执行流程。

                (1)先执行表达式的值,再拿着这个值去与case后的值进行匹配。

                (2)与哪一个case匹配,就执行哪一个case中的代码,遇到break就退出switch分支。

                (3)如果没有匹配到任何一个case,就执行default中的代码。

        注意:switch分支只能匹配int、char、byte、short、String类型的值。

语法:

switch(表达式){case 值1://执行的代码break;case 值2://执行的代码break;default://执行的代码}

5.if 、switch 的比较 ,以及各自适合什么场景。

        if适合于条件判断,switch适合于多分支条件判断。

        当前条件是区间时,应该使用if;当前条件是单个值时,应该使用switch。

6.目标:搞清楚 switch 使用时的几点注意事项

        表达式类型只能是 byte、short、int、char、JDK5开始支持枚举类型 ,JDK7开始支持字符串类型,不支持double、float、long类型。

        case给出的值不允许重复,且只能是字面量,不能是变量。

        正常使用switch的时候,不要忘记写brake , 否则会发生穿透现象。

7.switch穿透性能解决什么问题?

        当存在多个case分支的代码相同时,可以把相同的代码放到一个case块中,其他case块都通过穿透性穿透到该case块执行代码即可,简化代码

三、java 循环结构

1.for循环在开发中的常见场景

        减少代码的重复编写、灵活的 控制程序的执行流程。

2.for循环的语法和执行流程

for(初始化表达式; 循环条件表达式; 迭代表达式){//循环体}

        执行流程:

                1.首先执行初始化表达式,初始化循环控制变量。

                2.然后判断循环条件表达式是否成立,如果成立,则执行循环体,否则退出循环。

                3.在每次循环体执行完毕后,执行迭代表达式,并重新判断循环条件表达式是否成立,如果成立,则继续执行循环体,否则退出循环。

                4.直到循环条件表达式不成立,循环结束。

3.while循环的语法和执行流程

while(循环条件表达式){//循环体}

        执行流程:

                1.首先判断循环条件表达式是否成立,如果成立,则执行循环体,否则退出循环。

                2.在每次循环体执行完毕后,再判断循环条件表达式是否成立,如果成立,则继续执行循环体,否则退出循环。

                3.直到循环条件表达式不成立,循环结束。

                4.while循环和for循环的区别

for 与 while 相同点:

        1.都可以实现循环功能。

        2.都可以设置循环条件。

        3.都可以设置循环次数。

for 与 while 不同点:

        1.for循环可以简化循环代码,可以设置循环变量,可以提前退出循环。

        2.while循环可以灵活控制循环次数,可以提前退出循环。

        3.for循环可以提前退出循环,而while循环只能在循环体中判断是否退出循环。

5.什么时候使用for循环,什么时候使用while循环?

        一般情况下,for循环比while循环更加简洁,更加适合控制循环次数的场景。

但是,在一些特殊的场景下,while循环更加适合,比如:

        1.循环次数不确定,需要一直循环。

        2.循环次数比较多,使用while循环可以节省代码。

        3.循环次数比较少,使用for循环可以提高代码的可读性。

        即:知道循环次数,使用for循环;循环次数不确定,使用while循环。

6.案例:纸张折叠成珠穆朗玛峰的高度。

        需求:世界最高峰珠穆朗玛峰的高度是:8848.86米=88488860毫米,假如我有一张足够大的纸,它的厚度时0.1毫米。

        问:纸张折叠多少次,可以折成珠穆朗玛峰的高度。答案如下(两个方法):

public class WhileTest4 {public static void main(String[] args) {double high = 8848860;int count = 0;double paperThickness = 0.1;//定义while循环,控制纸张进行折叠。while (paperThickness <= high) {paperThickness += paperThickness;count++;}System.out.println("需要折叠的次数是 " + count);System.out.println("最终纸张的厚度是 " + paperThickness);System.out.println("___________________________-");int count1 = 0;double paperThickness1 = 0.1;for (;paperThickness1 <=8848860;count1 ++){paperThickness1 += paperThickness1;}System.out.println("需要折叠的次数是 " + count1);System.out.println("最终纸张的厚度是 " + paperThickness1);}
}

7.do-while循环格式 和执行流程

格式:

do{//循环体}while(循环条件表达式);

        执行流程:

        1.首先执行循环体。

        2.在每次循环体执行完毕后,再判断循环条件表达式是否成立,如果成立,则继续执行循环体,否则退出循环。

        3.直到循环条件表达式不成立,循环结束。

特点:

        先执行后判断,直到满足循环条件才执行循环体。

8.三种循环的小结:

        for 循环 和 while 循环 (先判断后执行) do-while 循环 (先执行后判断)

        for和while循环的执行流程是一样的,功能上并无区别,for能做的while也能做。

        区别:在for循环中,控制循环的变量只能在循环中使用,而在while和do-while循环中,控制循环的变量可以在循环外使用。

9.死循环

        可以一直执行下去的一种循环,如果没有干预不会停下来。

        死循环的三种写法:

(1) for ( ; ; ) {// 循环体 ,将一直执行}(2) while (true) {// 循环体 ,将一直执行 //经典写法}(3) do {// 循环体 ,将一直执行}while (true);

        死循环的作用:

        1. 死循环可以用来做一些特殊的功能,比如死循环等待用户输入,死循环等待服务器响应。

        2. 死循环可以用来做一些死循环检测,比如死循环检测网络是否正常。

10.循环嵌套

        循环中又包含循环的结构,称为循环嵌套。

        特点:外层循环一次,内层会循环完成指定次数。

11.跳转关键字

        break:跳出当前循环。

        continue:跳过当前循环,直接进入下一次循环。

注意:

        1.break只能用于结束所在循环,或者结束switch分支的执行。

        2.continue只能在循环中进行使用。

四、案例技术:生成随机数

1.random的使用

        随机数的生成是java中非常常用的功能,java.util.Random类提供了生成随机数的方法。

语法:

Random random = new Random();int num = random.nextInt(100); //生成0-99之间的随机整数

        注意:

        1.nextInt()方法可以生成指定范围内的随机整数,包括最小值和最大值。

        2.nextInt(n)方法的作用是生成0-n-1之间的随机整数。

        3.nextInt()方法的返回值是int类型,范围是0-2147483647。

        因为:random生成的随机数是 0 ~ n-1 , 而需要 1 ~ n 的随机数,所以需要加1。

        即:num = random.nextInt(100) + 1;

2.random生成随机数需要几步?

        随机数的生成过程:

                1.创建Random对象。

                2.调用nextInt()方法,传入最大值。

                3.获取随机数。

3.如何生成 65- 91 之间的随机字数?

        65 - 91 => -65 => (0 - 26) +65

                即:num = random.nextInt(27) + 65;

4.猜数字的游戏

        随机生成一个1-100之间的数字,玩家需要猜测这个数字,每猜一次,系统会提示玩家猜的数字是大了还是小了,

        直到猜对为止。

代码见 RandomTest2.java 和 如下

package com.zhl.random;import java.util.Random;
import java.util.Scanner;public class RandomTest2 {public static void main(String[] args) {//猜数字 1-100Random r = new Random();Scanner sc = new Scanner(System.in);int RightNum = r.nextInt(100)+1;do {System.out.print("请输入你猜测的数字:");int guess = sc.nextInt();if (guess == RightNum){System.out.println("恭喜你猜对了!");break;  //退出循环,结束游戏}else if(guess > RightNum){System.out.println("猜大了!");}else{System.out.println("猜小了!");}}while(true);}
}

五、数组

1.数组是什么?

        数组就是一个容器,用来存储一批同样类型的数据。

2.数组的定义

        有两种方式定义数组:静态初始化和动态初始化。

        1.静态初始化:

                静态初始化就是在定义数组的时候,就初始化了数组中的元素。

        语法格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...,元素n};

        简化格式:数据类型[] 数组名 = {元素1,元素2,...,元素n};

例如:int[] arr = {1,2,3,4,5};

        之后,可以使用数组名[下标]的方式,访问数组元素。下标从0开始,到数组长度-1结束。

注:数组变量名中存储的是数组在内存中的地址信息,数组是一种引用数据类型。

        什么类型的数组必须存放什么类型的数据。

3.如何访问数组的元素?

        数组的元素可以通过下标访问,下标从0开始,到数组长度-1结束。

        语法格式:数组名[索引]

4.访问数组的长度如何获取?

        数组的长度可以通过数组名.length来获取。

arr.length;

5.数组的最大索引是多少?

        数组的最大索引是数组长度-1。前提是数组的元素个数大于0。

        数组名.length-1;

6.如果访问数组时,使用的索引超过了数组的最大索引会出什么问题?

        执行程序会出Bug , 出现一个索引越界的异常提示。

7.数组的遍历

        遍历:就是一个一个访问一遍容器中的元素。

8.如何遍历数组?

for (int i = 0; i < age.length; i++) {System.out.println(age[i]);}

9.案例:

        某个部门的5个员工的销售额分别是 16 、 20 、 25 、 3 、 100 ,请计算出他们部门的总销售额。

        静态初始化:

double[] sales = {16,20,25,3,100};double sum = 0;for (int i = 0;i < asles.length; i++){sum += sales[i];}System.out.println("总销售额:" + sum);

10.动态初始化数组:

        动态初始化就是在运行时,根据需要,动态地分配内存给数组,并初始化数组中的元素。

        语法格式:数据类型[] 数组名 = new 数据类型[数组长度];

例如:int[] arr = new int[5];

之后,可以使用数组名[索引] = 值; 的方式,对数组元素进行赋值。

11.两种数组定义的方式各自适合什么场景?

        静态初始化适合数组的元素值个数和值已知的场景,例如:考试成绩、班级学生人数等。

        动态初始化适合数组的元素个数已知,值未知的场景,例如:学生信息、商品信息等。

12.案例:

        需求:某唱歌比赛,需要开发一个系统:可以录入6名评委的打分,录入完毕后,立即输入平均分作为选手得分。

        分析:1.因为开始不知道评委打的分数,所以需要用动态初始化的方式定义数组。double[] scores = new double[6];2.通过Scanner 录入评委的打分 。Scanner sc = new Scanner(System.in);3.因为六个评委,需要采用循环for (int i =0 ; i < scores.length; i++){System.out.print("请输入第" + (i+1) + "名评委的打分:");scores[i] = sc.nextDouble("");}
4.计算平均分double sum = 0;for (int i = 0; i < scores.length; i++){sum += scores[i];}double average = sum / scores.length;System.out.println("平均分:" + average);

13.java内存分配介绍

        主要先看下面三个:

        方法区:存储类信息、常量、静态变量、编译器编译后的代码等。字节码文件先加载到这里。

        堆:存储对象实例,包括数组。new出来的东西会在这块内存中开辟空间并产生地址。

        栈:存储局部变量、方法调用、返回地址等。方法运行时所进入的内存,变量也是在这

14.一个Java程序,主要看JVM中包含的哪几部分内存区域?

        方法区

        栈内存

        堆内存

15.简单说说 int a = 20; int[] arr = new int[3]; 这两行代码的执行原理?

        a是变量,直接放在栈中,a变量中存储的数据就是20这个值。

        new int[3]是创建一个数组对象,会在堆内存中开辟区域存储3个整数。

        arr是变量,在栈中,arr存储的是数组对象在堆内存中的地址值。

注:基本类型变量存储的是具体的值,而引用类型变量存储的是引用地址值。

16.多个数组变量,指向同一个数组对象的原因是什么?需要注意什么?

        多个数组变量指向同一个数组对象,是因为数组在堆内存中开辟的区域是唯一的,所以多个数组变量指向同一个数组对象,可以节省内存。

        多个变量修改的都是同一个数组对象,会影响到其他变量的值,所以需要注意。

17.如果某个数组变量存储的是null,会发生什么情况?

        如果某个数组变量存储的是null,说明这个数组还没有被初始化,不能直接访问数组元素。

        可以输出这个变量,但是不能用这个数组去访问数据或访问长度。否则会报空指针错误。

六、专项训练

1.数组求最值

在循环中用一个变量记录当前的最大值或最小值,然后在循环中不断比较更新,最后输出这个值。

建议变量的值定为数组中的第一个。

package com.zhl.Demo;public class Test1 {public static void main(String[] args) {//求最值int[] sales = {16,20,25,3,53,63,61,21,78,89,35,19};int max = sales[0];for(int i = 0; i < sales.length; i++){if(sales[i] > max){max = sales[i];}}System.out.println("最大值为:"+ max);}
}

2.数组反转

见Demo中的Test2

(1) 前后交换进行反转

(2)通过另外一个数组存储反转后的结果,然后进行赋值达到目的。

package com.zhl.Demo;public class Test2 {public static void main(String[] args) {//数组反转int[] sales = {16,20,25,3,53,63,61,21,78,89,35,29};int l = sales.length;int[] tem = new int[l];for (int i = 0; i < l;i++){//数组最后一位的索引是-1tem[i] = sales[l-i-1];}//将tem数组的值赋给sales数组sales = tem;//打印查看是否反转成功for (int i = 0; i < l;i++){System.out.print(sales[i] + " ");}System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");//方法二 通过中间变量  进行前后交换int[] arr = {1,2,3,4,5};for (int i = 0,j = arr.length-1; i < j; i++,j--){//arr[i] arr[j] 进行交换//定义一个中间变量 tempint temp = arr[i];arr[i] = arr[j];arr[j] = temp;}//打印查看是否反转成功for (int i = 0; i < arr.length;i++){System.out.print(arr[i] + " ");}}
}

3.随机排名

有五名人员进行汇报演讲,现采取随机排名的方式进行汇报。请依次录入五名员工的工号,然后展示一组随机的排名。

36 、27 、 18 、 45 、 32

思路:遍历索引,每遍历一个,然后随机生成一个位置的索引与当前遍历的索引交换顺序,达到随机的效果。

package com.zhl.Demo;import java.util.Random;
import java.util.Scanner;public class Test3 {public static void main(String[] args) {/*随机排名有五名人员进行汇报演讲,现采取随机排名的方式进行汇报。请依次录入五名员工的工号,然后展示一组随机的排名。36 、27 、 18 、 45 、 32思路:遍历索引,每遍历一个,然后随机生成一个位置的索引与当前遍历的索引交换顺序,达到随机的效果。*///1.定义一个动态初始化数组用于存储工号。int[] arr = new int[5];Scanner sc = new Scanner(System.in);//2.输入五名员工的工号for(int i=0;i<arr.length;i++){System.out.println("请输入第"+(i+1)+"名员工的工号:");int code = sc.nextInt();arr[i] = code;}//3.遍历索引,每遍历一个,然后随机生成一个位置的索引与当前遍历的索引交换顺序,达到随机的效果。Random r = new Random();for(int i=0;i<arr.length;i++){int j = r.nextInt(arr.length); // 生成一个随机位置的索引//交换int temp = arr[i];  // 临时变量先记录当前遍历的元素arr[i] = arr[j];    // 当前遍历的元素与随机位置的元素交换arr[j] = temp;      // 随机位置的元素与临时变量交换}//4.展示随机的排名System.out.println("随机排名:");for(int i=0;i<arr.length;i++){System.out.println((i+1)+"名:"+arr[i]);}}
}

七、DeBug的使用

1.DeBug的作用

        调试是程序开发过程中必不可少的环节,通过调试可以找出程序中的错误,提高程序的质量。

基本使用。

        断点调试:在程序运行到某一行代码时,暂停程序,查看变量的值,并可以修改变量的值,以便于查看程序运行的情况。

八、方法

1.方法是什么?

        方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复使用。

语法格式:修饰符 返回类型 方法名(参数列表){方法体;return 返回值;}

2.方法定义时几个注意点:

        方法的修饰符:暂时都使用 public static 修饰。

        如果方法申明了具体 的返回值类型,内部必须使用return语句返回对应类型的数据。

        形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用","隔开,且不能给初始值。

3.方法的好处

        代码复用:可以将一些相同的功能封装成一个方法,在不同的地方调用,减少代码的重复。

        隐藏细节:方法可以隐藏实现细节,使代码更加简洁,提高代码的可读性。

        提高效率:方法可以提高代码的效率,减少重复代码的编写,提高代码的可维护性。

4.方法要执行必须怎么办?

        方法要执行,必须先调用,调用的方法体才会执行。

调用方法的语法格式:方法名(参数列表);

5.方法的其他形式

        方法定义时:需要按照方法解决的实际业务需求,来设计合理的方法形式解决问题。

        (1)如果方法不需要接收数据?不需要返回数据?应该怎么办,要注意什么?

                方法不接收数据,则形参列表可以不写;方法不需要返回数据,则申明返回值为void。

                方法没有申明返回值类型,则内部不能使用return语句,否则编译报错。

                方法没有形参列表,则调用时不能传入参数值,否则会报错。

6.方法使用时常见的问题

        1.方法在类中的位置放前方后无所谓,但一个方法不能定义在另一个方法里

        2.方法的返回值类型写void(无返回申明)时,方法内不能使用return语句,否则编译报错,若写了返回值类型,则方法内必须有return语句

        3.return语句的下面,不能编写代码,属于无效的代码,执行不到这,会报错,无意义。

        4.方法不调用不会执行,调用时,传给方法的参数必须严格匹配方法的参数情况。

        5.调用有返回值的方法,有三种方式:

                1、可以定义变量的接收结果

                2、或者直接输出调用

                3、甚至直接调用。

        6.调用无返回值的方法只有一种方式:直接调用。

        7.设计方法的技巧,主要关注三方面:

                1.方法是否需要接收数据进行处理?

                2.方法是否需要返回数据?

                3.方法主要处理的业务(编程能力)。

8.案例:

(1)求 1-n的和。

        分析:

        需要接收n的数据,需要返回计算结果。 结果和下一个在一起

(2)判断一个整数时奇数还是偶数。

        分析:

        需要接收一个整数,需要返回一个布尔值。 布尔值代表是否为奇数。(包含上一个的代码)

package com.zhl.method;public class MethodTes4 {public static void main(String[] args) {//目的:掌握方法设计的技巧System.out.println("1到5的和为:"+add_1_n_sum(5));System.out.println("6是否是奇数:"+judge(6));System.out.println("7是否是奇数:"+judge(7));judge1(6);judge1(7);}public static int add_1_n_sum(int n){return (n * (n + 1)) / 2;}public static boolean judge(int n)   {boolean flag;if (n % 2 ==0){flag = false;}else{flag = true;}return flag;}//或者可以这样写public static void judge1(int n){if (n % 2 ==0){System.out.println(n+"是偶数");}else{System.out.println(n+"是奇数");}}
}

9.方法在计算机中的执行原理

        方法在调用的时候,是进入到栈内存中运行的。

        栈:是先进后出的内存结构,存储局部变量、方法调用、返回地址等。

九、java的参数传递机制 (重要)

1.java的传递机制都是值传递

        所谓值传递:指的是在传输实参给方法的形参的时候:传递的都是实参变量中存储的值的副本,而不是引用。

        举例:

int a = 10;int b = a;a = 20;System.out.println(b); // 输出结果:10

        说明:

        传递的是a的副本,而不是a的引用。

        传递的是值,而不是地址。

        注意:

        对于基本数据类型,传递的是值,对于引用数据类型,传递的是引用,即数据的地址。

        实参:方法定义内部的变量

        形参:以方法为例,就是方法定义时的变量。

2.引用类型的传递

        引用类型的传递:指的是在传递实参给方法的形参的时候:传递的都是实参变量中存储的地址的副本,而不是引用。

3.基本类型和引用类型的参数在值传递的时候有什么不同?

        基本类型:传递的是值,实参变量中存储的值的副本。

        引用类型:传递的是引用,实参变量中存储的地址的副本。

4.案例:

        (1)输出一个int类型的数组,要求输出格式为:

                [1,2,3,4,5]

        分析:

        需要一个接收一个Int类型的数组,然后输出,不需要返回值。

package com.zhl.memory;public class ArrayDemo1 {public static void main(String[] args) {// 目标 :掌握普通变量、数组在计算机中的执行原理 ,java程序在计算机中的执行过程int a = 20;System.out.println(a);int[] arr = new int[]{13,25,67};System.out.println(arr);}
}

        (2)比较两个数组是否一样?

                int[] arr1 = {1,2,3,4,5}

                int[] arr2 = {1,2,3,4,5}

package com.zhl.memory;public class ArrayDemo2 {public static void main(String[] args) {//目标:认识多个变量指向同一个数组对象的形式,并掌握其注意形式int[] arr1 = {11,13,57};//把int类型的数据变量arr1赋值给int类型数组变量arr2int[] arr2 = arr1;//地址相同System.out.println(arr1);System.out.println(arr2);//因为指向同一个地址,当一个被改后,另外一个数组也被修改arr2[1] = 99;System.out.println(arr1[1]);//注意:如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象。arr1 = null;System.out.println(arr1);//访问数据时,则会报错,NullPointerException,因为没有数据可访问。//System.out.println(arr1[1]);//System.out.println(arr1.length);//也会报错}
}

十、方法的重载

1.方法的重载

        在一个类中,出现多个方法的名称相同,但是他们的形参列表是不同的,那么这些方法就称为方法重载了。

2.注意事项:

        在一个类中,只要有一些方法的名称相同,形参列表不同,那么他们就是方法重载了,其他的都不管(修饰符,返回值类型)

        形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

3.案例:

        开发一个武器系统,功能需求如下:

                (1)可以默认发一枚导弹。

                (2)可以指定地区发射一枚武器。

                (3)可以指定地区发射多枚武器。

package com.zhl.overload;public class MethodTest2 {public static void main(String[] args) {//目的掌握重载方法的应用场景fire();fire("美国");fire("美国",99);}/*开发一个武器系统,功能需求如下:(1)可以默认发一枚导弹。(2)可以指定地区发射一枚武器。(3)可以指定地区发射多枚武器。*/public static void fire(){System.out.println("向漂亮的地方,发射一枚导弹");}public static void fire(String area){System.out.println("向"+area+"发射一枚武器");}public static void fire(String area,int count){System.out.println("向"+area+"发射"+count+"枚武器");}}

4.补充:return关键字在方法中单独使用

        return关键字在无返回值的方法中,作用是:立即跳出并结束当前方法的执行,并将返回值返回给调用者。

5. return ; 跳出并立即结束所在方法的执行

        break ; 跳出当前循环,结束循环

        continue ; 跳出当前循环,继续下一次循环

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词