广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java方法与数组基础使用详解
  • 799
分享到

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

2024-04-02 19:04:59 799人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

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

一、方法的使用

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 方法与数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java方法与数组基础使用详解

本文链接: https://www.lsjlt.com/news/144899.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java方法与数组基础使用详解
    目录一、方法的使用1、方法的定义2、方法重载二、数组的定义和使用1、数组的基本概念(1)数组的创建(2)数组的初始化(3)数组的遍历2、数组是引用类型(JVM的内存分布)3、引用变量...
    99+
    2022-11-13
  • java数组基础详解
    目录数组一. 数组概述二. 数组声明和创建三. 内存分析1.JAVA内存有:堆,栈,方法区····2.静态初始化:创建+赋值3.动态初始化:前面其实就是动态初始化,是分开写的。没有赋...
    99+
    2022-11-12
  • Java基础之数组详解
    目录前言二.创建数组三.数组的使用四.数组的遍历五.数组作为方法的参数六.数组相关方法Arrays前言 我们了解数组这个概念之前,我们先思考下面几个问题。 如果我们需要两个数据,那么...
    99+
    2022-11-12
  • java基础之方法详解
    目录一、什么是方法二、方法的定义三、方法的调用四、方法的重载五、递归一、什么是方法 Java方法是语句的集合,他们在一起执行一个功能。 1.方法是解决一类问题的步骤的有序...
    99+
    2022-11-12
  • Java基础语法之二维数组详解
    目录一、二维数组二、二维数组的声明与初始化2.1 声明2.2 初始化2.2.1 静态初始化2.2.2 动态初始化三、二维数组的遍历四、二维数组的内存图分析五、数组操作的常见异常六、总...
    99+
    2022-11-12
  • java基础-数组扩容详解
    目录数组与链表的比较:ArrayList:LinkedList:总结数组与链表的比较: 数组通过下标访问的话是O(1) 数组一旦声明 长度就是固定的 数组的...
    99+
    2022-11-12
  • 【Java 基础篇】Java方法引用详解
    文章目录 导言一、方法引用的概念二、方法引用的语法三、方法引用的使用方法四、方法引用的限制和注意事项总结 导言 Java方法引用是Java 8引入的一项重要特性,它提供了一种简洁、可读...
    99+
    2023-09-02
    java jvm 开发语言
  • Java基础之详解HashSet的使用方法
    Java HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录...
    99+
    2022-11-12
  • Reactrouter基础使用方法详解
    目录react-routerbrowserHistoryReachRouterreact-router 1、使用方法 <Router history={hashHistory}...
    99+
    2023-05-17
    React router React router使用方法
  • GoLangbytes.Buffer基础使用方法详解
    目录一、bytes.Buffer的基础知识二、bytes.Buffer类型的值已读计数的作用三、bytes.Buffer的扩容策略四、bytes.Buffer的哪些方法会造成内容的泄...
    99+
    2023-03-19
    GoLang bytes.Buffer Go bytes.Buffer
  • Java基础之方法重写详解
    一、java方法重写 方法的重写是子类根据需求对父类继承的方法进行重新的编写,在重写时,可以使用super方法的方式来保留父类中的方法,注意:构造方法不可以被重写。 创建一个人类,属...
    99+
    2022-11-12
  • Java基础之Stream流原理与用法详解
    目录一、接口设计二、创建操作三、中间操作四、最终操作五、Collect收集Stream简化元素计算 一、接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能...
    99+
    2022-11-13
    Java Stream流 原理 Java Stream流 用法 Java Stream流
  • 【Java 基础】Java 数组、方法极致精讲
    《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 ...
    99+
    2023-09-09
    java jvm 开发语言 后端 算法
  • Java基础09 类数据与类方法
    我们一直是为了产生对象而定义类(class)的。对象是具有功能的实体,而类是对象的类型分类。这是面向对象的一个基本概念。在继承(inheritance)中,我们将类当做可以拓展的主体,这提高了我们对“类”的认识。类本身还有许多值得讨论的地方...
    99+
    2023-06-02
  • Java基础02 方法与数据成员
    在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(object)。对象中的数据成员表示对象的状态。对象可以执行方法,表示特定的动作。此外,我们还了解了类(class)。同一类的对象属于相同的类型(type)。我们可以...
    99+
    2023-06-02
  • java基础之方法和方法的重载详解
    目录一、带参方法1.1 带参方法的定义和调用1.2 带参方法使用注意事项1.3 带参方法的应用1.4 基本数据类型和引用数据类型传参时的区别1.5 方法传参-对象数组二、构造方法2....
    99+
    2022-11-12
  • Java基础学习之构造方法详解
    目录一、构造方法概述二、构造方法的注意事项三、标准类制作一、构造方法概述 构造方法是一种特殊的方法 作用:创建对象Student stu = new Student(); 格式: p...
    99+
    2022-11-13
  • Android基础控件RadioGroup使用方法详解
    RadioGroup是Android中的一个基础控件,用于实现一组单选按钮,同一时间只能选择一个单选按钮。RadioGroup的使用...
    99+
    2023-08-08
    Android
  • Go语言基础数组用法及示例详解
    目录概述语法注意示例 概述 固定长度,数组声明后长度便不能再修改 只能存储一种特定类型元素的序列 语法 编号...
    99+
    2022-11-12
  • Java基础教程之数组的定义与使用
    目录一.数组的基本概念二.数组的声明三.数组的创建及初始化1.数组的创建2.数组的初始化四.访问数组元素 五.for each 循环 六.数组的拷贝 七.数组排序 八.二维数组 总结...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作