Java基础学习笔记(二)数组与方法

JAVA数组与方法学习(黑马课程以及二哥的java进阶之路)


前言

掌握数组和方法的概念和应用

一、数组

1.为什么要用数组

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

2.静态化定义数组

在这里插入图片描述

3.动态化定义数组

在这里插入图片描述
在这里插入图片描述

4.数组的访问与遍历

(1)
在这里插入图片描述
(2)所谓遍历数组,就是借助循环结构,以数组长度为界,遍历数组索引。

5.数组的案例

(1)要求录入6个评委的打分,录入完毕后直接输出选手的平均分

package com.Array;

import java.util.Scanner;

public class arrayTest1 {
    public static void main(String[] args) {
     //要求录入6个评委的打分,录入完毕后直接输出选手的平均分
        double[] scores=new double[6];
        Scanner sc=new Scanner(System.in);
        for (int i=0;i<scores.length;i++){
            System.out.println("请您输入第"+(i+1)+"个评委的分数");
            double score=sc.nextDouble();
            scores[i]=score;
        }
        double sum=0;
        for(int i=0;i<scores.length;i++){
            sum+=scores[i];
        }
        System.out.println("选手最终得分为"+sum/scores.length);
    }
}

(2)随机排名
在这里插入图片描述

package com.Array;
import java.util.Random;
import java.util.Scanner;
public class arrayTest2 {
    public static void main(String[] args) {
        //完成随机排名
        //为什么不用静态的方式定义数组,
        // 因为我们最后需要的是顺序被打乱后的数组,静态方式导致后续需要重新定义一个数组
        int[] codes=new int[5];
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<codes.length;i++){
            System.out.println("请输入第"+(i+1)+"位员工的工号");
           int code =sc.nextInt();
           codes[i]=code;
        }
          Random r=new Random();
        for(int i=0;i<codes.length;i++){
            //每遍历到一个数组,都随机一个数组索引范围内的值,
            // 然后让当前遍历的数据与该索引位置处的值交换
            int index=r.nextInt(5);
            //借助中间变量
            int temp=codes[index];
            codes[index]=codes[i];
            codes[i]=temp;

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

        }

    }
}

6.数组的执行原理

首先介绍java内存分配
在这里插入图片描述
在这里插入图片描述

以数组为例,栈主要存放数组的引用地址,堆内存中存放具体的数值。
在这里插入图片描述
假如说存在赋值的情况,比如int[] arr2=arr1; 此时说明数组2的值为数组1所代表的地址,即他们两个数组都指向堆中的同一组数据,也就是说,只要堆中这组数据有所变动,那么两个数组的结果值同时改变。这也就是多个变量指向一个数组的情况。
在这里插入图片描述
在这里插入图片描述
20240304

二、JAVA方法

1.方法的定义与使用

在这里插入图片描述

在这里插入图片描述
使用代码的好处是提高了代码的复用性,让整个代码更有逻辑。
同时为了更加贴合业务逻辑的需求,需要设计合理的方法形式。
在这里插入图片描述

2.方法使用需要注意的问题

在这里插入图片描述

3.方法案例

(1)判断输入的数是奇数还是偶数

package com.method;
import java.util.Scanner;
public class methodDemo1 {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要判断的数字");
        int number=sc.nextInt();
        judge( number);
    }
    public static void judge(int number){
        if(number%2==0){
            System.out.println("是偶数");
        }
        else{
            System.out.println("是奇数");
        }

    }
}

(2)打印int类型的数组内容

在这里插入图片描述

package com.method;
public class methodDemo2 {
    public static void main(String[] args) {
    int[] arr={10,30,50,70};
    printArray(arr);
    }
    public static void printArray(int[] arr){
        System.out.println("[");
        for(int i=0;i<arr.length;i++){
            System.out.println(i==arr.length-1?arr[i]:arr[i]+",");
        }
        System.out.println("]");
    }
}

(3)比较两个数组是否一样
在这里插入图片描述

package com.method;
public class methodDemo3 {
    public static void main(String[] args) {
      int[]arr1=null;
      int []arr2=null;
        System.out.println(equals(arr1,arr2));
    }
    public static boolean equals(int[] arr1, int[] arr2) {
        if (arr1 == null && arr2 == null) {
            return true;
        }
        if (arr1 == null || arr2 == null) {
            return false;
        }
        if (arr1.length != arr2.length) {
            return false;
        }
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {
                return false;
            }
        }
        return true;
    }
}

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

在这里插入图片描述

在这里插入图片描述


三、JAVA的参数传递机制

1.基本类型的参数传递

以这段代码中a的值为例
在这里插入图片描述
比较重要的一点是,在change方法中的a的初始值,只是将main方法中的a值copy了一下,而不是更改。再从栈的角度可以看出,change方法执行完成之后出栈,留下的main方法里边只有a=10
在这里插入图片描述
在这里插入图片描述

2.引用类型的参数传递

在这里插入图片描述
需要注意的是,在引用类型的值传递时,我们copy的是地址,而数组中的值存在于堆中,方法存在栈中,堆中的值变了,因此最后数组的值也发生了改变。

四、方法重载

在这里插入图片描述
关于顺序不同的理解比如说某个方法 sum(int a,double b);与 sum(int b,double a);是不被认可的,只跟数据类型的顺序有关,应该是 sum(double a,int b) ;跟变量名称无关。
在这里插入图片描述

四、Return关键字的使用

在这里插入图片描述
在这里插入图片描述
20230305

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础学习笔记 # 一、Java简介 Java是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle)于1995年首次发布。它具有跨平台的特性,可以在不同的操作系统上运行。Java语言被广泛应用于开发各种类型的应用程序,包括桌面应用、Web应用、移动应用等。 # Java基本语法 ## 1. 变量与数据类型 Java是强类型语言,每个变量必须先声明后使用。Java提供了多种数据类型,包括基本数据类型(整数、浮点数、字符、布尔值)和引用数据类型(类、接口、数组)。 ## 2. 运算符 Java提供了多种运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种数学或逻辑运算。 ## 3. 控制流程 Java提供了多种控制流程语句,包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)、跳转语句(break语句、continue语句)等,用于控制程序的执行流程。 ## 4. 方法和类 Java中的方法用于封装一段可重复使用的代码,可以带有参数和返回值。类是Java程序的基本组织单位,包含了属性和方法。可以使用关键字class定义一个类,通过实例化类的对象来调用其方法。 # 三、面向对象编程 Java是一种面向对象的编程语言,面向对象编程的核心概念包括封装、继承和多态。 ## 1. 封装 封装是将数据和行为打包成一个类,通过访问修饰符(public、private等)控制对类的成员的访问权限。 ## 2. 继承 继承允许一个类继承另一个类的属性和方法,并且可以通过重写来修改或扩展继承的方法。 ## 3. 多态 多态允许通过父类类型的引用来引用子类对象,实现对不同子类对象的统一调用。 # 四、异常处理 Java提供了异常处理机制,用于处理程序中的错误情况。异常分为可检查异常(checked exception)和不可检查异常(unchecked exception),可以使用try-catch语句来捕获和处理异常。 # 五、Java标准库 Java标准库提供了大量的类和接口,用于完成各种常见的任务。其中包括输入输出、集合、多线程、网络编程等功能,可以大大简化开发过程。 以上是我学习Java基础笔记总结,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值