java 方法与数组基础使用详解

目录
  • 一、方法的使用
    • 1、方法的定义
    • 2、方法重载
  • 二、数组的定义和使用
    • 1、数组的基本概念
      • (1)数组的创建
      • (2)数组的初始化
      • (3)数组的遍历
    • 2、数组是引用类型(JVM的内存分布)
    • 3、引用变量
    • 4、数组拷贝函数
    • 5、二维数组的for.each遍历

一、方法的使用

1、方法的定义

java中的方法就相当于C语言中的函数

方法的语法格式

//方法的定义

修饰符  返回值类型  方法的名称(【参数类型 参数】){

方法体代码;

【return 返回值】;

}

【注意事项】

  • 修饰符:现阶段直接使用public static 固定搭配
  • 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void
  • 方法名字:采用小驼峰命名
  • 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
  • 方法体:方法内部要执行的语句
  • 在java当中,方法必须写在类当中
  • 在java当中,方法不能嵌套定义
  • 在java当中,没有方法声明一说

2、方法重载

如果多个方法的名字相同,参数列表不同,则称该方法被重载。

public class TestMethod {
    public static void main(String[] args) {
        add(1, 2);    //调用函数add(int,int)
        add(1.5, 2.5);//调用函数add(double,double)
        add(1, 3, 5);//调用函数add(int,int,int)
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
    public static double add(int x, int y, int z) {
        return x + y + z;
    }
}

【注】

  • 方法名必须相同
  • 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  • 与返回值类型是否相同无关

二、数组的定义和使用

1、数组的基本概念

(1)数组的创建

T[ ] 数组名 = new T[N];

T:表示数组中元素的类型

N:表示数组的大小

int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组
double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组
String[] array3 = new double[3]; // 创建一个可以容纳3个字符串元素的数组

(2)数组的初始化

动态初始化:在创建数组时,直接指定书中元素的个数

int[] array = new int[10];  //默认值为0

静态初始化:在创建时不直接指定数据元素个数,直接将元素内容指定。

语法格式:T[ ] 数组名 = {data1,……,datan};

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = new String[]{"hell", "Java", "!!!"};

【注意】

  • 静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。
  • 静态初始化时, {}中数据类型必须与[]前数据类型一致。
  • 静态初始化可以简写,省去后面的new T[]。
  • 数组也可以按照如下C语言个数创建,不推荐。
  • 如果不确定数组当中内容时,使用动态初始化,否则建议使用静态态初始化。
  • 如果没有对数组进行初始化,数组中元素有其默认值。

(3)数组的遍历

  • 通过for循环来遍历,在数组中可以通过length来获取数组长
  • 使用for-each遍历数组
int[] array={1,2,3};
for(int x:array){
    System.out.println(x);
};
//遍历array中元素,将元素放在x中进行打印
  • 将数组以字符串的形式进行打印
Array.toString(array);//将数组以字符串的形式进行输出

2、数组是引用类型(JVM的内存分布)

方法区(Method Area)和堆(Heap)为所有线程所共享,每个线程拥有独立的虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)以及程序计数器。

  • 程序计数器 (PC Register): 用来保存下一条执行的指令的地址
  • 虚拟机栈(JVM Stack): 用来保存方法执行相关的一些信息:局部变量、操作数栈、动态链接、返回地址以及其他的一些信息。当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了。
  • 本地方法栈(Native Method Stack): 虚拟机栈的作用类似. 只不过保存的内容是Native方法的局部变量。
  • 堆(Heap):使用 new 创建的对象都是在堆上保存。堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销毁。
  • 方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据. 方法编译出的的字节码就是保存在这个区域 。

3、引用变量

  • 引用变量的0值为null,引用为空值时,不指向任何对象
  • 引用变量虚拟机栈中存储的是其在堆中空间的起始地址,通过改地址可以去操作对象。

举例如下:

public static void func() {
   int[] array1 = new int[3];
   array1[0] = 10;
   array1[1] = 20;
   array1[2] = 30;
   int[] array2 = new int[]{1,2,3,4,5};
   array2[0] = 100;
   array2[1] = 200;
   array1 = array2;
   array1[2] = 300;
   array1[3] = 400;
   array2[4] = 500;
   for (int i = 0; i < array2.length; i++) {
       System.out.println(array2[i]);
   }
}
  • 创建数组array1,没有设置初始值,因此其为0;
  • 通过下标修改数组array1中元素为10、20、30;
  • 创建数组array2,初始值为1、2、3、4、5;
  • 通过下标方式将数组array2中前两个元素设置为100、200;
  • array1=array2,既让array1去引用array2引用的数组的空间,此时array1和array2其实是一个数组;
  • 通过array1将2、3号元素修改为300、400;通过array2修改4号元素为500;
  • 此时打印array2的结果应为:100、200、300、400、500

4、数组拷贝函数

完全拷贝(Array.copyof)

int[] arr={1,2,3,4,5};
int[] newarr=Array.copyof(arr,arr.length);
  • copyof方法在进行数组拷贝时,创建了新的数组
  • 此时arr和newarr引用的不是同一个数组

范围拷贝(Array.copyofRange)

int[] newarr1=Array.copyofRange(arr,int i,int j);

拷贝从 i 下标的 j -1 下标的数组元素;

5、二维数组的for.each遍历

int[][]arr={{1,2,3,4},{5,6,7,8},{3,6,2,3}};
for(int[] tmp:arr){
   for(int x:tmp){
       System.out.println(x);
   }
}

二位数组就是特殊的一维数组

到此这篇关于java 方法与数组基础使用详解的文章就介绍到这了,更多相关java 方法与数组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java 判断数组是否相等的方法示例

    以下实例演示了如何使用 equals ()方法来判断数组是否相等: import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { int[] ary = {1,2,3,4,5,6}; int[] ary1 = {1,2,3,4,5,6}; int[] ary2 = {1,2,3,4}; System.out.println("数组 ary 是否与数组 a

  • Java中对象数组的使用方法详解

    本文实例讲述了Java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. 2 用new产生新的对象,并分配内存空间给它. 下面介绍4种方式来定义对象数组 方式一:静态方式 Person p1[] = { new Person(), new Person(), new Person() }; 方式二:动态初始化化 Person p2[]; p2 = new Person[

  • Java方法及数组相关原理解析

    方法 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合.我们设计的方法,最好保持方法的原子性,就是一个方法只完成1个功能,有利于后期的扩展. 方法重载 重载就是在一个类中,有相同的函数名称,但参数不同的函数 重载规则: 方法名称必须相同 参数列表必须不同(个数不同.类型不同.参数排序顺序不同) 方法返回值类型可相同也可不相同 仅仅返回类型不同不足以成为方法的重载 实现原理: 方法名称相同时,编译器会根据调用方法的参数个数.参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则

  • java 方法与数组基础使用详解

    目录 一.方法的使用 1.方法的定义 2.方法重载 二.数组的定义和使用 1.数组的基本概念 (1)数组的创建 (2)数组的初始化 (3)数组的遍历 2.数组是引用类型(JVM的内存分布) 3.引用变量 4.数组拷贝函数 5.二维数组的for.each遍历 一.方法的使用 1.方法的定义 java中的方法就相当于C语言中的函数 方法的语法格式 //方法的定义 修饰符  返回值类型  方法的名称([参数类型 参数]){ 方法体代码: [return 返回值]: } [注意事项] 修饰符:现阶段直接

  • java二维数组基础知识详解

    目录 1. 查找 2. 顺序查找 3. 二分查找 4. 多维数组 4.1 二维数组 175 4.2 二维数组细节 5. 二维数组的使用方式 176 6. 二维数组的动态初始化 1.先声明:类型 数组名[][]; 再定义(开辟空间) 数组名 = new 类型[大小][大小] 2.动态初始化-列数不确定 178 7. 二维数组的静态初始化 179 8. 二维数组练习 180 8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和 1. 查找 1) 顺

  • Java 方法的重载与参数传递详解

    目录 方法重载概述 方法重载特特点 方法重载练习 方法参数传递 方法参数传递(基本类型) 方法参数传递(引用类型) 方法重载概述 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载 * 多个方法在同一个类中 * 多个放方法具有相同方法名 * 多个方法的参数不相同,类型不同或数量不同 方法重载特特点 * 重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式 * 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否

  • Java 方法的定义与调用详解

    目录 1.方法概述 2.方法的定义和调用 2.1 方法定义 2.2 方法调用 2.3 方法的调用过程 2.4 方法练习 3.带参数方法的定义和调用 3.1带参数方法定义 3.2带参数方法调用 1.方法概述 什么是方法 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有图书功能的代码集 注意: 方法必须先创建才可以使用,该过程称为方法定义 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用 2.方法的定义和调用 2.1 方法定义 格式: public stat

  • Java填充替换数组元素实例详解 原创

    有时候,我们会需要对数组中的元素进行填充和替换,下面我们来研究研究,怎么进行填充和替换的. 数组中的元素定义完成后,可通过 Arrays 类的静态方法 fill() 来对数组中的元素进行替换,该方法通过各种重载形式可完成任意类型的数组元素的替换. fill() 方法有两种参数类型,下面以 int  型数组为例介绍 fill() 方法的使用方法. (1) fill(int[] a, int value) 该方法可将指定的 int 值分配给 int 型数组的每个元素. a:要进行元素替换的数组: v

  • Java方法的参数传递机制实例详解

    本文实例讲述了Java方法的参数传递机制.分享给大家供大家参考,具体如下: 参数传递机制 对于程序设计语言来说,一般方法(函数)的参数传递有两种:按值传递和按引用传递. 按值传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的一个副本.因此,如果方法修改了该参数,仅改变副本,而原始值保持不变.按引用传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的内存地址,而不是值的副本.因此,如果方法修改了该参数,调用代码中的原始值也随之改变. 需要注意的是,方法可以修改按引用传递的参数对应

  • Java基础之详解HashSet的使用方法

    Java HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合. HashSet 允许有 null 值. HashSet 是无序的,即不会记录插入的顺序. HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的. 您必须在多线程访问时显式同步对 HashSet 的并发访问. HashSet 实现了 Set 接口. HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类. 添加元素 HashSet

  • java list,set,map,数组间的相互转换详解

    java list,set,map,数组间的相互转换详解 1.list转set Set set = new HashSet( new ArrayList()); 2.set转list List list = new ArrayList( new HashSet());  3.数组转为list List stooges = Arrays.asList( "Larry" , "Moe" , "Curly" ); 此时stooges中有有三个元素.注意

  • Java 生成随机字符串数组的实例详解

    Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List<String>之后,往其中添加十条随机字符串 2.每条字符串的长度为10以内的随机整数 3.每条字符串的每个字符都为随机生成的字符,字符可以重叠 4.每条随机字符串不可重复 将涉及到的知识有: String.StringBuffer.ListArray.泛型.Collections.sort.foreach.Random等相关知识,算是

  • Java中由substring方法引发的内存泄漏详解

    内存溢出(out of memory ) :通俗的说就是内存不够用了,比如在一个无限循环中不断创建一个大的对象,很快就会引发内存溢出. 内存泄漏(leak of memory) :是指为一个对象分配内存之后,在对象已经不在使用时未及时的释放,导致一直占据内存单元,使实际可用内存减少,就好像内存泄漏了一样. 由substring方法引发的内存泄漏 substring(int beginIndex, int endndex )是String类的一个方法,但是这个方法在JDK6和JDK7中的实现是完全

随机推荐