`
eriol
  • 浏览: 401127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中从方法中返回多个值

    博客分类:
  • Java
阅读更多
有些时候,我们需要从一个方法中返回多个值。那么在Java中该怎么实现呢?

在Java中,你无法控制参数传递的方式,Java中所有的参数传递都是按值传递: 
  • 简单类型,将参数的值传递给函数; 
  • 对象类型,将参数的地址传递给函数。 

正因为传递对象类型参数时,你传递的是对象的地址,或者叫引用(reference),这时函数就可以改变该地址上的那个对象。所以,如果你要修改某个地址上的值(或者说,要向这个地址返回一个值),那么将它按对象类型传递都可以了。但需要注意的是,Java不能让这个传递给函数的参数指向另一个地址,原因是,参数的地址是复制给函数中的局部变量的,函数一结束,它就不复存在。

与C++不同的是:在Java中,可以安全地返回局部变量的引用(地址),而不用担心生存期的问题。这样,“返回多个值”的问题,在Java中变得更简单了,只需要用一个类来封装要返回的多个值,然后返回该类的实例。 
分享到:
评论

相关推荐

    java 返回多个值的问题

    由于某些项目需要知道一个函数处理中需要返回函数的处理状态,同时 也想知道函数处理的数据,这是我们就需要...那么怎么解决返回多个参数值呢? 解决方式就是用HashMap来保存返回的结果.这样就可以解决多个返回值的问题

    java中如果需要返回多个值怎么办

    NULL 博文链接:https://hw1287789687.iteye.com/blog/2271510

    java实现从方法返回多个值功能示例

    主要介绍了java实现从方法返回多个值功能,结合实例形式分析了集合类、封装对象、引用传递三种实现方法,需要的朋友可以参考下

    java读取excel文件生成矩阵

    java读取xls中的数据,每个对象对应多个属性值,根据每个对象的属性值来生成一个二维矩阵

    JList多选值的获取

    JList多选值的获取, 由JList组件实现的列表框有3种选取模式,设置方法为通过JList类的setSelectionMode(int selectionMode)方法,该方法的入口参数可以通过ListSelectionModel类中的静态常量设置。

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java调用存储过程同时返回值和多个table

    java调用存储过程,支持获取return值,output返回值,以及查询的表数据,表数据允许有多个查询结果集

    java常用工具类的使用

    该类的大部分构造器和方法都已经过时,但是该类使用非常方便,因此目前使用还很普遍,该类的另一个主要功能是,在数据库操作中,它允许将毫秒值表示为SQL DATE值,是数据库操作中java.sql.Date的父类。关于数据库...

    java实现mqtt的发送和订阅

    java实现mqtt的发送和订阅,代码中有详细的注释,是分服务端和客户端来测试的,并有断开重连的处理!

    java8 利用reduce实现将列表中的多个元素的属性求和并返回操作

    主要介绍了java8 利用reduce实现将列表中的多个元素的属性求和并返回操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    java中存储过程的使用

    java中存储过程的使用,通过实例说明 建立一个向表中插入记录的存储过程 存储过程有返回值的使用 返回书本的名字和出版社,返回的是多个值

    java多线程编程之从线程返回数据的两种方法

    从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪

    跟我学Java-day09-方法重载、Debug调试.pdf

    方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 多个方法在同一个类中 多个方法具有相同的方法名 多个方法的参数不相同,类型不同或者数量不同 注意: 重载仅对应方法的...

    JAVA面试题最全集

    一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...

    java 面试题 总结

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 15、error和exception有什么区别? error 表示恢复不是...

    java联想(中文)

    14.1.4 制作多个线程 14.1.5 Daemon线程 14.2 共享有限的资源 14.2.1 资源访问的错误方法 14.2.2 Java如何共享资源 14.2.3 回顾Java Beans 14.3 堵塞 14.3.1 为何会堵塞 14.3.2 死锁 14.4 优先级 14.4.1 线程组 ...

    Thinking in Java简体中文(全)

    14.1.4 制作多个线程 14.1.5 Daemon线程 14.2 共享有限的资源 14.2.1 资源访问的错误方法 14.2.2 Java如何共享资源 14.2.3 回顾Java Beans 14.3 堵塞 14.3.1 为何会堵塞 14.3.2 死锁 14.4 优先级 14.4.1 线程组 ...

    java中redis工具类

    删除缓存,可以传一个值 或多个 普通缓存获取 普通缓存放入 普通缓存放入并设置时间,time要大于0 如果time小于等于0 将设置无限期 递增,传参指定要增加几(大于0) 递减,传参指定要减少几(小于0) 设置hashSet,获取...

Global site tag (gtag.js) - Google Analytics