首页 > 编程语言 >java_day4_数组、方法

java_day4_数组、方法

时间:2024-09-24 20:12:13浏览次数:11  
标签:arr java int day4 元素 数据类型 数组 new

一、数组

一维数组

数组:是一块连续固定大小的内存空间,有着索引的概念

定义数组的语句格式:
    数据类型[] 数组名;【推荐】
    数据类型 数组名[];

如果只是定义一个数组的话,没有给初始化值,相当于一个变量没有值,是不能够直接使用的
如何对一个数组进行初始化?
    1、动态初始化:我们自己给定数组的大小,数组中的默认值由JVM来赋值
    2、静态初始化:我们自己给元素值,由JVM根据我们给的值数量来设置数组的大小

动态初始化语句定义格式:
    数据类型[] 数组名 = new 数据类型[元素的个数];
    数组的静态初始化:
        数据类型[] 数组名 = new 数据类型[]{元素1,...};
        举例:int[] arr1 = new int[]{11,22,33,44,55};
        简化写法:
            数据类型[] 数组名 = {元素1,...};
    1、当基本数据类型当作参数传递的时候,传递的是具体的数值,不会对原本的变量值进行修改影响
    2、当引用数据类型当作参数传递的时候,传递的是地址值,方法内部可能会对地址值对应的堆内存空间中的数值进行修改。

二维数组

二维数组:元素是一维数组的数组
语句定义格式1:
    数据类型[][] 数组名 = new 数据类型[m][n];
    举例:int[][] arr = new int[2][3];
    表示创建了一个元素是int类型的二维数组,其中二维数组中有两个一维数组,每一个一维数组中的元素个数是3。

语句定义格式2:
    数据类型[][] 数组名 = new 数据类型[m][];
    举例:int[][] arr = new int[2][];
    arr[0] = new int[]{11,22,33,44};
    arr[1] = new int[]{100,200};

 语句定义格式3:
    数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,...},{元素1,...},...};
    举例:int[][] arr = new int[][]{{11,22,33,44},{100,200}};
    简化写法:数据类型[][] 数组名 = {{元素1,元素2,...},{元素1,...},...};
       举例:int[][] arr = {{11,22,33,44},{100,200}};

 今后可能会遇见的写法:
1、int[] arr[] = {{11,22,33,44},{100,200}};  √
2、int arr[][] = {{11,22,33,44},{100,200}};  √
3、int [] [] arr = {{11,22,33,44},{100,200}}; √
4、int[][] arr = new int[][]{{11,22,33,44},{100,200}}; √【规范写法】
5、int[][] arr = new int[2][]{{11,22,33,44},{100,200}}; ×
public class ArrayDemo1 {
    public static void main(String[] args) {
        //定义一个存储int类型元素的数组
        //数据类型 变量名 = 初始化值;
        int[] arr = new int[3];
        /*
            左边:
                int: 表示该数组中元素的数据类型,需要一致
                []: 表示一个一维数组
                arr:是数组名,符合标识符变量的命名规则
            右边:
                new:将来看到new,表示在堆内存中开辟一个空间
                int: 表示该数组中元素的数据类型,需要一致
                []: 表示一个一维数组
                3: 表示该数组最大只能存储3个int类型的元素
         */

        System.out.println(arr); // [I@4554617c 地址值【16进制】
        //数组有索引的概念,从左向右,索引下标从0开始编号,我们可以通过这个索引下标来定位到具体位置的元素
        //语法格式:数组名[索引]
        //获取数组中的第一个元素
        int i = arr[0];
        System.out.println(i);
        //获取数组中的第二,三个元素
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //我们以后使用数组的时候,肯定是希望将我们自己元素值放在数组中
        //将数组第一个元素值进行修改
        arr[0] = 100;
        System.out.println(arr[0]);

    }
}

二、方法

 方法的定义:
    语句定义格式:
        修饰符 返回值类型 方法名(参数类型 参数名,...){
            方法实现逻辑代码;
            return 返回值;
        }

名词解释:
    修饰符:public static  这两天只需要记住一个固定写法即可,后面学习过程中会改变这个修饰符
    返回值类型:将来调用者调用完方法后所得到的内容
    方法名:符合标识符的命名规则,将来通过方法名来确定调用的方法类型
    参数:
        形式参数【形参】:指的是在方法定义的小括号中的参数名
        实际参数【实参】:指的是将来实际调用方法时所传入的具体的值
    方法实现逻辑代码:调用方法要干的事情
    return:用于结束整个方法,将结果返回给调用者。
    返回值:将来方法调用完,需要返回给调用者的值。

需求:定义一个求两个int类型的数之和的方法

注意:
    1、方法和方法之间是平级关系,方法不能嵌套定义
    2、方法不调用不执行
    3、方法调用的时候,只需要传值就可以,不需要写数据类型
    4、若方法有返回值的话,需要使用变量接受该返回值,或直接使用
    5、如果方法有明确的返回值,一定要有return带回一个值,且类型和定义时返回值类型保持一致【或父子关系】
//需求:定义一个求两个int类型的数之和的方法
public class FunctionDemo1 {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println(sum(a,b));
    }

    public static int sum(int a,int b){
        int c = a+b;
        return c;
    }
}

标签:arr,java,int,day4,元素,数据类型,数组,new
From: https://www.cnblogs.com/w-ll/p/18429925

相关文章

  • 2024.9.24- java开学测
    1、定义student类,其中包括五个私有变量(stunumber,name,age,sex,score)。各成员的含义如下:变量stunumber为字符串类型String,用于存储学生的学号(有8位数字组成)。变量name为字符串类型String,用于存储学生的姓名。变量age为int类型,用于存储学生的年龄。变量sex为boolean类型,用于存储学......
  • java基础篇之反射(简单详细,快速入门)
    @[TOC]希望本文能帮助你增加对反射的理解反射的简单叙述及相关性质反射的源头——Class类反射的主要应用反射的简单叙述及相关性质能够分析类能力的程序为反射,反射机制的功能极其强大,下面我们就来简单举个例子publicclassStudent{privateStringname;......
  • Java学习笔记(上)——动力节点老杜(某站2000万播放)
    此文章是本人大一学习java时记的笔记,原视频在https://www.bilibili.com/video/BV1Rx411876f,配套服用更佳!一.JAVA开发环境的搭建1.常用的Dos命令1.1win+r打开Dos命令窗口1.2什么是Dos命令在最初的计算机中没有图形界面,也就是说通过Dos命令窗口可以完全完成文件的新建、......
  • JavaEE——多线程
    接着上篇博客我们已经学习了进程的相关概念,了解到进程里面的相关重要属性,那么这篇博客呢我们要学习一个新的知识点——线程!一、引入进程的目的首先引入进程这个概念,是为了解决“并发编程”这样的问题。因为CPU再往小了做,比较困难了,这是因为CPU进入了多核心的时代,要想进一......
  • JavaEE——多线程Thread 类及常见方法
    目录 一、Thread(Stringname)二、是否后台线程isDeamon()三、是否存活isAlive()四、run()方法和start()方法的区别五、中断线程法一:法二:六、线程等待join()七、线程休眠sleep()一、Thread(Stringname)定义:这个东西是给线程(thread对象)起一个名字。起一个......
  • Java:排序算法
    Java中有很多种排序算法,每种算法都有其特点,适用于不同的场景。下面列举一些常见的排序算法,并简要介绍其特点:冒泡排序(BubbleSort)原理:通过重复遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素,这意......
  • 信息学奥赛复赛复习02-CSP-J2019-02-结构体、无构造函数、有构造函数、初始化列表构造
    PDF文档公众号回复关键字:2024092412019CSP-J题目2公交换乘[题目描述]著名旅游城市B市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过......
  • Java BeanUtils使用介绍
    ‌JavaBeanUtils是一个广泛使用的Java工具类,提供了一系列方法来简化JavaBean对象之间的属性复制和操作。‌使用JavaBeanUtils可以方便地实现对象之间的属性复制、属性设置和获取、类型转换等功能。以下是使用JavaBeanUtils的基本步骤和注意事项:1.添加依赖‌:首先,你需要在项目......
  • python中多维数组的cumsum的逆
    我想知道如何在Python中对多维数组进行累积和的逆运算。例如,我们可以通过PMy获得给定二维数组的累积数组T问题是,我如何从importnumpyasnpT=np.array([[1,3,2],[5,5,6],[1,8,3]])P=np.cumsum(np.cumsum(T,axis=0),axis=1)print(P)#Pisthe......
  • java解析xml
    参考资料水平有限,欢迎交流千问ai阿伟的反射知识学习泛型知识学习软件设计模式(java版)程细柱目标xml<?xmlversion="1.0"encoding="UTF-8"?><conf><farm>SGFarm</farm><student><name>李四</name>&......