一、可变参数

可变参数是jdk1.5新特性

1.1、可变参数的格式

数据类型...变量名

//                    数据类型...变量名
public static void sum(int...arr){ }

1.2、可变参数要注意的细节

1.如果一个函数的形参上使用上可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数
    2.可变参数实际上是一个数组对象
    3.可变参数必须位于形参的最后一个参数
    4.一个函数最多只有一个可变参数,因为可变参数要位于形参的最后一个位置上

1.3、例子

方法1:

 package com.dhb.pattern;

 /**
* @author DSHORE / 2018-6-13
* 此方法是使用原始的方法
*/
//需求:定义一个函数做加法运算(函数要做多少个数据的加法功能?是不确定的)
public class Demo3 {
public static void main(String[] args) {
int[] arr = {,,,,,,,};
sum(arr);
}
public static void sum(int[] arr){
int sum=;
for (int i : arr) {//增强for循环 遍历数组
sum+=i;
}
System.out.println(sum);//返回结果:56
}
}

方法2:

 package com.dhb.pattern;

 /**
* @author DSHORE / 2018-6-13
* 此方法使用的是可变参数
*/
//需求:定义一个函数做加法运算(函数要做多少个数据的加法功能?是不确定的)
public class Demo3 {
public static void main(String[] args) {
sum(,,,,,,);
}
// 形参类型...变量名
public static void sum(int...arr){//可变参数
int sum=;
for (int i : arr) {
sum+=i;
}
System.out.println(sum);//返回结果:60
}
}

方法二的拓展

 package com.dhb.pattern;

 /**
* @author DSHORE / 2018-6-13
*/
//需求:定义一个函数做加法运算(函数要做多少个数据的加法功能?是不确定的)
public class Demo3 {
public static void main(String[] args) {
sum("",,,,,,,);
}
// 形参类型...变量名
public static void sum(String s,int...arr){//可变参数
int sum=;
for (int i : arr) {
sum+=i;
}
System.out.println(sum);//返回结果:60
}
}
//说明:结果依然是60,String类型的“12”并没有参与加法运算 详细说明,请看上方的“可变参数注意细节

二、自动装箱和自动拆箱

 八种基本数据类型          包装类型
整型:
        byte                     Byte
        short                    Short
        int                        Integer
        long                      Long
浮点型:
        float                      Float
        double                   Double
boolean(布尔型):
        boolean                 Boolean
字符型:
        char                      Character

 package com.dhb.pattern;

 /**
* @author DSHORE / 2018-6-13
*
*/
public class Demo4 {
public static void main(String[] args) { //自动装箱:自动把java的基本数据类型转换为对象类型数据
int temp=;//基本数据类型
Integer b=temp; //把temp存储的值赋给了b变量(b变量是Integer包装类型)
System.out.println(b);//返回结果:10 //自动拆箱:把引用数据类型的数据转为基本数据类型数据
Integer c=new Integer();
int d=c;
System.out.println(d);//返回结果:13 }
}

附录:

 package com.dhb.pattern;

 /**
* @author DSHORE / 2018-6-13
*
* jdk1.5新特性之-----自动装箱与自动拆箱
*/
public class Demo4 {
public static void main(String[] args) {
String str="";
//字符串转为int类型数据,可以把字符串转为对应的数字
int i=Integer.parseInt(str);
System.out.println(i);//返回结果:12 //把数字转为字符串
System.out.println("把整数转成对应的字符串:"+Integer.toString(i));//返回结果:12 注:这个12是字符串,而不是整数 //把整数转为对应的进制类型形式
System.out.println("10的二进制:"+Integer.toBinaryString());//返回结果:1010
System.out.println("10的十六进制:"+Integer.toHexString());//返回结果:a //可以把字符串当成对应的数据帮你进行数据转换
String data="";
int a=Integer.parseInt(data,);
System.out.println("a的值:"+a);//返回结果:2 //自动装箱:自动把java的基本数据类型转换为对象类型数据
int temp=;//基本数据类型
Integer b=temp; //把temp存储的值赋给了b变量(b变量是Integer包装类型)
System.out.println(b);//返回结果:10 //自动拆箱:把引用数据类型的数据转为基本数据类型数据
Integer c=new Integer();
int d=c;
System.out.println(d);//返回结果:13 Integer e=;
Integer f=;
System.out.println("同一个对象吗:"+(e==f));//返回结果:true
Integer g=;
Integer w=;
System.out.println("同一个对象吗:"+(g==w));//返回结果:false
/* 解析:Integer类内部维护了一个缓冲数组,该缓冲数组存储-128~127
* 这些数据在一个数组中,如果你获取的数据落入到这个范围之内的,那么就直接从缓冲区中获取对应的数据.
*/
}
}

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9177485.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

java基础40 可变参数、自动装箱和自动拆箱的更多相关文章

  1. 【Java基础】可变参数

    下面是一个简单的小程序: import java.util.Arrays; class lesson6 { public static void main(String[] args) { ,,,,, ...

  2. JAVA基础_可变参数

    自JAVA1.5以来,在JAVA中出现了可变参数一说,其针对的情况是对多个不确定的相同类型的元素进行同一类操作的情形. 可变参数有点类似与重载的概念,但是其中的可变参数是被隐式的转换成数组来进行处理的 ...

  3. java基础(九) 可变参数列表介绍

    一.可变参数简介 在不确定参数的个数时,可以使用可变的参数列表. 1. 语法: 参数类型...(三个点) 例如: void printArray(Object...) 注意: 每个方法最多只有一个可变 ...

  4. JAVA基础补漏--可变参数

    使用场景:当参数列表数据类型已确定,但参数的个数不确定,就可以用可变参数 格式: 修饰符 返回值类型 方法名(数据类型...变量名){} 原理:可变参数底层为一数组,可根据变量个数的不同,创建不同长度 ...

  5. java基础(八) 深入解析常量池与装拆箱机制

    引言   本文将介绍常量池 与 装箱拆箱机制,之所以将两者合在一起介绍,是因为网上不少文章在谈到常量池时,将包装类的缓存机制,java常量池,不加区别地混在一起讨论,更有甚者完全将这两者视为一个整体, ...

  6. Java连载77-Integer常用方法、Integer、int、String三者相互转化、自动装箱、自动拆箱

    一.关于Integer中常用的方法 package com.bjpowernode.java_learning; ​ public class D77_1_ { public static void ...

  7. Java语法糖2:自动装箱和自动拆箱

    前言 一开始想学学自动拆箱和自动装箱是被这个名字吸引到,听上去好像很高端的样子,其实自动拆箱.自动装箱是很简单的内容. 自动拆箱和自动装箱 Java为每种基本数据类型都提供了对应的包装器类型.举个例子 ...

  8. Java中的可变参数以及foreach语句

    Java中的可变参数的定义格式如下: 返回值类型  方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型  变量名称 :数据名称){ ... } public ...

  9. Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用

    ylbtech-Java-Runoob-高级教程-实例-方法:14. Java 实例 – Varargs 可变参数使用 1.返回顶部 1. Java 实例 - Varargs 可变参数使用  Java ...

随机推荐

  1. java多线程 -- Condition 控制线程通信

    Api文档如此定义: Condition 将 Object 监视器方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对 ...

  2. 【纪中集训2019.3.23】IOer

    题目 描述 你要在\(m\)天内,刷\(n\)道题,每天可以刷的题的数目不限: 第\(i\)天可以刷的题目的种类是\(ui+v\): 两种刷题的方案不同当且仅当某天刷题的数量不同或者依次刷题的种类不同 ...

  3. WinterCamp2017吃饭睡觉记

    noip考完后励志好好学习进HE队然后Au,就这样每天勤奋刻苦发愤图强不知不觉就到冬令营了. 除了我之外的大佬们都是以上经历. 我呢……一个很爱浪的蒟蒻. 冬令营到了,伟大的CCF本着报一个录一个的原 ...

  4. Qt ------ QPainter 和控件组件的重绘

    使用 QPainter 修改 QPaintDevice 的子类,如果 QPaintDevice 的子类也是 QWidget 的子类,比如自定义QWidget子类.QLabel等,需要把 QPainte ...

  5. Python 字符串前面加u,r,b的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...

  6. 对faster rcnn 中rpn层的理解

    1.介绍 图为faster rcnn的rpn层,接自conv5-3 图为faster rcnn 论文中关于RPN层的结构示意图 2 关于anchor: 一般是在最末层的 feature map 上再用 ...

  7. IOS的__bridge

    使用 __bridge 关键字来实现id类型与void*类型的相互转换.看下面的例子. id obj = [[NSObject alloc] init]; void *p = (__bridge vo ...

  8. JS中浮点数精度误差解决

    问题出现 0.1 + 0.2 = 0.30000000000000004 问题分析 对于浮点数的四则运算,几乎所有的编程语言都会有类似精度误差的问题,只不过在 C++/C#/Java 这些语言中已经封 ...

  9. Mongodb 笔记03 查询、索引

    查询 1. MongoDB使用find来进行查询.find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件.空的查询会匹配集合的全部内容.要是不指定查询,默认是{}. 2. 可以 ...

  10. oracle表结构和数据导出时的一些勾选项说明

    使用pl/sql developer导出oracle数据库的表结构和表数据时,有一些勾选项供用户选择,需要用户根据实际情况进行勾选或取消. 导出方法如下:一.只导出表结构1.使用pl/sql deve ...