1、数据类型的基本分类

        8大基础数据类型:boolean、char、byte、short、int、long、float、double

        3大引用数据类型:类、接口、数组

2、数据类型在java内存中的分配

        ①基础数据类型在被创建时,直接在栈上存储了具体信息;

        ②引用数据型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

        使用基础数据类型效率会更高。

3、JAVA中不同数据类型作为参数传入函数并在函数中被修改时,主函数中的数据变化

        ①java的基本数据类型作为参数传入函数中并在函数中被修改时,如果没有返回值则其在主函数中不会被修改。

        这是因为在函数中修改时是重新创建了值进行改动。

注:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

        ②数组是引用数据类型,在参数传递时相当于给的是地址值,所以在函数中修改时会根据地址值指向存储。

        因此在函数中修改传入的数组,在主函数中该数组的值就会发生对应的变化。

注:引用传递是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

        ③对于基本数据类型的包装类,在修改值时经历了拆箱和装箱,而装箱的源码中可以看出新建了一个对象,方法中改变引用对象的地址后是不会改变原有对象所指向的地址的。

 

public static Integer valueOf(String s, int radix) throws NumberFormatException {
         return Integer.valueOf(parseInt(s,radix));
     }    public static Integer valueOf(int i) {
         if (i >= IntegerCache.low && i <= IntegerCache.high)
             return IntegerCache.cache[i + (-IntegerCache.low)];
         return new Integer(i);
     }

        因此在函数中修改传入的包装类,在主函数中该包装类的值不会发生对应的变化。