Java数组与栈内存、堆内存

简介:
package ch4;

/**
 * Created by Jiqing on 2016/11/9.
 */
public class ArrayInRam {
    public static void main(String[] args) {
        int[] a = {5,7,20};
        int[] b = new int[4];
        System.out.println("b数组的长度为:"+b.length);
        for(int i = 0,len = a.length;i<len;i++) {
            System.out.println(a[i]);
        }

        // 循环输出b数组的元素
        for (int i = 0,len = b.length;i<len;i++) {
            System.out.println(b[i]);
        }

        // b引用指向a引用的数组
        b = a;
        System.out.println("b数组的长度为:"+b.length);
        for (int i = 0,len = b.length;i<len;i++) {
            System.out.println(b[i]);
        }

        a[1] = 11;
        System.out.println(b[1]); // 值变了

    }
}

422101-20161109203016092-796905577.png

422101-20161109203025717-746446453.png

package ch4;

/**
 * Created by Jiqing on 2016/11/9.
 */
public class Person {
    public int age; // 年龄
    public double height; // 身高
    public void info() {
        System.out.println("我的年龄是:"+age+",我的身高是:"+height);
    }
}
package ch4;

/**
 * Created by Jiqing on 2016/11/9.
 */
public class Student {
    public static void main(String[] args) {
        Person[] students;
        students = new Person[2];
        Person zhang = new Person();
        zhang.age = 15;
        zhang.height = 158;

        Person lee = new Person();
        lee.age = 16;
        lee.height = 161;

        students[0] = zhang;
        students[1] = lee;
        lee.info(); // 我的年龄是:16,我的身高是:161.0
        students[1].info(); // 我的年龄是:16,我的身高是:161.0
    }
}

422101-20161109203751077-174047419.png
422101-20161109203758842-740827968.png

422101-20161109203805764-1980706154.png

422101-20161109203810874-2108298332.png



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6048370.html,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 Java 编译器
【面试知识】Java内存分配之常量池、堆、栈
【面试知识】Java内存分配之常量池、堆、栈
|
14天前
堆内存
局部变量和成员变量 1.定义的位置不一样【重点】 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 2.作用范围不一样【重点】 局部变量:只有方法当中才可以使用,出了方法就不能再用 成员变量:整个类全都可以通用。 3.默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样 4.内存的位置不一样(了解) 局部变量:位于栈内存 成员变量:位于堆内存 5生命周期不一样(了解)
11 0
|
2月前
|
存储 缓存 算法
深入理解JVM - 对象分配内存
深入理解JVM - 对象分配内存
29 1
|
3月前
|
存储 缓存 算法
对象和数组并不是都是在堆上分配内存的
对象和数组并不是都是在堆上分配内存的
25 0
|
8月前
|
SQL 监控 Java
JVM堆内存释放不及时问题
JVM堆内存释放不及时问题
144 0
|
存储 Java
Java开发——6.内存分配(堆、栈以及参数的值传递+引用传递)
内存分配(堆、栈以及参数的值传递+引用传递)
Java开发——6.内存分配(堆、栈以及参数的值传递+引用传递)
|
存储 JavaScript Java
栈内存和堆内存浅析
栈内存与堆内存 对于 JS 不同类型的数据来说,基本数据类型(string/number/boolean/undefined/null)的值存储在栈内存中,引用数据类型(object)的值存储在堆内存
JVM对象引用与内存分配策略
JVM对象引用与内存分配策略
|
存储 Java
JVM内存分配,深入理解堆 栈 方法区
JVM内存分配,深入理解堆 栈 方法区
133 0
|
Java 编译器 Python
Java对象竟然会在栈上分配内存?(下)
Java对象竟然会在栈上分配内存?
113 0
Java对象竟然会在栈上分配内存?(下)