- 浏览: 515481 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (114)
- C基础 (1)
- C指针 (0)
- C语言库函数相关 (1)
- Linux (2)
- Linux网络编程 (1)
- PostgreSQL (0)
- Redis (2)
- Java Web (2)
- JAVA基础 (35)
- Ubuntu (8)
- Android (2)
- MySQL (3)
- 日志 (1)
- 书虫 (1)
- 数据结构 (0)
- 算法 (0)
- 开发工具 (1)
- 转载 (13)
- 英语 (18)
- tomcat启动脚本分析 (3)
- Oracle基础 (4)
- tomcat源码分析 (3)
- tomcat (1)
- Java相关 (1)
- Oracle基本原理--Oracle体系结构 (0)
- Oracle基本原理--表 (0)
- Oracle基本原理--索引 (0)
- Oracle基本原理--事务 (0)
- Oracle开发--SQL (1)
- Oracle基本原理--PL/SQL (0)
- Oracle基本原理--常用函数 (0)
- Oralce管理--用户及权限管理 (0)
- Oracle管理--安装调试 (0)
- Oracle管理--备份恢复 (0)
- Oralce管理--数据迁移 (0)
- Oracle管理--闪回 (0)
- Oracle管理--故障处理 (0)
- Oracle优化原理--统计信息 (0)
- Oracle优化原理--执行计划 (0)
- Oracle优化原理--诊断工具 (0)
- Oracle优化原理--深入理解表 (0)
- Oracle优化原理--深入理解索引 (0)
- Oracle优化原理--表连接原理 (0)
- Java--OOP (0)
- Java--异常 (0)
- Java--泛型 (0)
- Java--集合 (0)
- Java--IO (0)
- Java--枚举类型 (0)
- Java--注释 (0)
- Java--多线程 (0)
- Java--XML (0)
- Java--JDBC (3)
- Servlet (0)
- JSP (0)
- JSTL (0)
- 设计模式 (0)
- DAO与MVC (0)
- Javascript (2)
- Ajax (0)
- JQuery (0)
- HTML/CSS (0)
- 前端相关 (1)
- HTTP (0)
- TCP/IP (0)
- GO基础 (0)
最新评论
-
jsonmong:
推荐一个开发平台,采用的是插件化的设计思想,效果很不错的。ht ...
构建Java Web开发环境 -
wxm198427:
首先表示辛苦了!我想问个问题:我的是windows 7 x64 ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
握着橄榄枝的人:
我之前按照你的update mysql.user set pa ...
Windows7下MySQL5.5.20免安装版的配置 -
confident_f:
安装了32的客户端后,用plsql导入导出表有问题,生成不了d ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
confident_f:
安装数据库的时候第9步卡住了 是怎么回事呢?
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤
从JDK1.5开始,Java允许使用可变参数为方法指定数量不确定的参数。
如果在定义方法时,在方法的参数列表的最后一个类型后增加三点(...),则表明该参数可以接受多个参数值,多个参数值被当成数组传入。
例如:
运行结果:
可变参数其实就是一个数组参数,即以下两个方法签名的效果一样:
这两种形式都包含了一个名为args的参数,在这两个方法的方法体内都可以吧args当成数组处理。
但区别是调用这两个方法时存在差别:
对于采用可变参数形式定义的方法,调用方法时更加简洁,可以传入多个参数,也可以传入一个数组:
对于采用数组参数形式定义的方法,调用方法时必须传入一个数组:
例如:
还有一点需要指出:数组形式的参数可以处于参数列表的任何位置,一个方法中可有多个数组形参;但可变参数只能处于参数列表的最后,且一个方法中最多只能有一个可变参数。
如果在定义方法时,在方法的参数列表的最后一个类型后增加三点(...),则表明该参数可以接受多个参数值,多个参数值被当成数组传入。
例如:
public class VariableParameter { public static void main(String[] args){ System.out.println(add(1, 2)); System.out.println(add(1, 2, 3)); } public static int add(int x, int ... args){ int sum = 0; sum += x; //for(int i = 0; i < args.length; i++){ for(int i: args){ //sum += args[i]; sum += i; } return sum; } }
运行结果:
3 6
可变参数其实就是一个数组参数,即以下两个方法签名的效果一样:
//采用可变参数定义方法 public static int add(int x, int ... args); //采用数组参数定义方法 public static int add(int x, int[] args);
这两种形式都包含了一个名为args的参数,在这两个方法的方法体内都可以吧args当成数组处理。
但区别是调用这两个方法时存在差别:
对于采用可变参数形式定义的方法,调用方法时更加简洁,可以传入多个参数,也可以传入一个数组:
add(1, 2); add(1, 2, 3); add(1, new int[]{2, 3});
对于采用数组参数形式定义的方法,调用方法时必须传入一个数组:
add(1, new int[]{2, 3});
例如:
public class VariableParameter { public static void main(String[] args){ System.out.println(add(1, 2)); System.out.println(add(1, 2, 3)); System.out.println(add(1, new int[]{2, 3})); } public static int add(int x, int ... args){ //public static int add(int x, int[] args){ int sum = 0; sum += x; //for(int i = 0; i < args.length; i++){ for(int i: args){ //sum += args[i]; sum += i; } return sum; } }
还有一点需要指出:数组形式的参数可以处于参数列表的任何位置,一个方法中可有多个数组形参;但可变参数只能处于参数列表的最后,且一个方法中最多只能有一个可变参数。
发表评论
-
foreach循环
2013-06-24 16:15 1435从JDK1.5开始,Java提供了一个更简单的循环:forea ... -
泛型(core java 笔记)
2013-06-18 16:18 20241.为什么引入泛型 package generic; ... -
两个程序的说明
2010-10-19 09:26 11321、程序1的结果是: clas ... -
构造器初始化
2010-10-18 14:42 1481可以用构造器来进行初始化。在运行时刻,可以调用方法或执行某些动 ... -
成员初始化
2010-10-18 07:55 1198Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对 ... -
线程的死锁
2010-10-11 19:21 1468当两个线程相互等待对方释放同步监视器时就会发生死锁,Java虚 ... -
线程的同步
2010-10-11 19:00 1249一个经典的关于线程安全性的问题:银行取钱问题。 银行取钱的基 ... -
java网站收集
2010-10-10 18:13 1231JAVA开发者最常去的25个英文网站:http://www.i ... -
控制线程
2010-10-10 16:06 19891、线程睡眠:sleep 如果我们需要让当前正在执行的线程暂 ... -
线程的状态
2010-09-28 19:00 1001线程从创建到执行完毕的整个过程称为线程的生命周期,在整个生命周 ... -
Java中Thread类的start()和run()的区别
2010-09-27 15:33 40821、start()方法来启动线程,真正实现了多线程运行,这时无 ... -
Java中创建线程的两种方法
2010-09-26 10:18 5613在Java中创建线程有两种方法:继承Thread类和实现Run ... -
创建String对象过程的内存分配小结
2010-09-23 20:32 2746常量池(Constant Pool):指的是在编译期被确定,并 ... -
Java堆和栈的区别 经典总结(转载)
2010-09-18 16:48 1242栈与堆都是Java用来在Ram中存放数据的地方。 与C++不 ... -
Java初学者都必须理解的七大问题
2010-09-18 10:36 1098问题一:我声明了什么 ... -
关于计算java程序运行时间(转载)
2010-09-18 09:22 1092//第一种,伪代码 long startTime= ... -
for循环的优化
2010-09-17 20:29 2112在程序中经常用到for循环,当一些算法实时性要求非常高时,对f ... -
详细解析Java中抽象类和接口的区别(转载)
2010-09-17 10:16 1077在Java语言中,abstract class和inter ... -
集合类(四):Map集合
2010-09-16 20:26 21215、Map集合 Map集合为映射类型,映射与集和列表有明显的区 ... -
集合类(三):Set集合
2010-09-16 19:43 28744、Set集合 Set集合为集类型,集是最简单的一种集合,存放 ...
相关推荐
主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下
keil C51可变参数讲解,自定义允许访问可变长度参数列表的函数。
delphi实现类C可变参数函数
va_start 可变参数 va_end
自己在网上整理的一点关于可变参数的知识 希望对你有帮助
C语言 可变参数及printf函数的实现
C语言学习开发者,了解函数可变参数,可用于学习科研和工作面试
个人学习笔记,简单的实例加明了的说明,看了就应该能自己写出可变参数函数。
C++中可变参数函数的源码,文件很小,但可以供参考用,还特地写了一个类作为可变参数函数的参数。可以直接编译。
大家可能对于C#调用C++已经比较熟悉,这个小例子是C#调用C++的含有可变参数的例子,用到了C#的一些不常用的关键字。
利用可变参数实现简单的printf函数 编写了两种实现方法, 1,用stdarg.h自带的va_start,va_arg等函数实现 2,根据可变参数的原理实现 主要是用于加深对可变参数的理解 vc6.0 测试通过
这篇文档是作者在做项目过程中总结的C语言中一些可变参数的用法,非常值得一看,阐述透彻,极力推荐!!!!!
C/C++定义可变参数函数,演示程序,教你怎么写一个参数可变的函数
C语言中可变参数的用法,描述C语言中各种参数的使用
C语言可变参数的使用,相关教程链接:http://blog.csdn.net/tennysonsky/article/details/53818527
10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可...
介绍c 语言中的宏,井号,可变参数的使用
通过可变参数函数实现printf()函数功能,可将其应用于单片机,ARM裸机等的串口输出中去,并且新增了[%b:实现二进制输出,原来printf函数不能实现的功能]。也可将其使用的液晶的字符类驱动中去。
可变参数stdarg.h使用方法(例题) va_list用法 va_start已经 va_end
主要讲了c语言中可变参数宏的使用,以及它在嵌入式系统中的应用