可变参数、自动装箱与自动拆箱

    xiaoxiao2021-03-25  18

    一、可变参数: 1、需求: 定义一个函数做加法功能(函数做几个数据的加法功能是不确定)。 方式一:函数重载,但是只要多一个参数就要重写一次方法,太麻烦。 方式二:数组 方式三:可变参数

    2、可变参数的格式: 数据类型… 变量名

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

    二、自动装箱与自动拆箱 1、java是面向对象 的语言,任何事物都可以使用类进行描述,sun就使用了一些类描述java中八种基本数据类型数据。

    基本数据类型 包装类型 byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character

    2、基本数据类型数据有了对应的包装类型的好处:

    public class Demo7 { public static void main(String[] args) { String str = "12"; //字符串转换成int类型数据。 可以把字符串转换成对应的数字 int i = Integer.parseInt(str); System.out.println(i+1); //把数字转换成字符串 System.out.println("把整数转换成对应的字符串:"+i+""); System.out.println("把整数转换成对应的字符串:"+Integer.toString(i)); //把整数转换成对应的进制形式 System.out.println("10的二进制(字符串形式):"+ Integer.toBinaryString(10)); System.out.println("10的八进制(字符串形式):"+ Integer.toOctalString(10)); System.out.println("10的十六进制(字符串形式):"+ Integer.toHexString(10)); //可以把字符串当成对应的进制数据帮你转换,查看源码发现最大为三十六进制,不能再大了。 String data = "10"; //二进制 int a = Integer.parseInt(data, 2); System.out.println("a="+a); //三进制 int a2 = Integer.parseInt(data, 3); System.out.println("a2="+a2); //集合: 集合是可以存储任意对象类型数据的容器。 ArrayList list = new ArrayList(); list.add(1); list.add(2); list.add(3); //那为什么存入基本数据类型数据不报错呢?原因如下: //自动装箱: 自动把java的基本数据类型数据转换成对象类型数据。 int temp = 10; //基本数据类型 //JDK1.5之前的写法(没有自动装箱的功能): //Integer b = new Integer(temp); Integer b = temp; //把a存储的值赋予给b变量。 //自动拆箱: 把引用类型的数据转换成基本类型的数据 Integer c = new Integer(13); //JDK1.5之前的写法(没有自动拆箱的功能): //int d = c.intValue(); int d = c; System.out.println(d); //引用的数据类型 Integer e = 127; Integer f = 127; System.out.println("同一个对象吗?"+(e==f)); // 查看Integer源码中的IntegerCache: // Integer类内部维护了缓冲数组,该缓冲数组存储的-128~127 这些数据在一个数组中。 // 如果你获取的数据是落入到这个范围之内的,那么就直接从该缓冲区中获取对应的数据。 Integer e2 = 128; Integer f2 = 128; System.out.println("同一个对象吗?"+(e2==f2)); } }
    转载请注明原文地址: https://ju.6miu.com/read-26658.html

    最新回复(0)