zoukankan      html  css  js  c++  java
  • java 堆和栈的区别

    1,在栈中存放的是基本类型变量和对象的引用变量,当一段代码定义一个变量时,java

    就在栈内为这个变量分配内存空间,当超过变量的作用域时,java会自动回收分配的内存。

         局部变量在栈内存

    2,堆内存放的是new创建的对象和数组,有java jvm的垃圾回收器来管理。同时会在栈内

    定义一个特殊变量,让这个变量的取值等于数组或对象在堆内的首地址,这个特殊变量就成了引用变量。

         成员变量在堆内存

    参考:http://www.cnblogs.com/perfy/p/3820594.html

    public static void main(String[] args) {
            int a1 = 10;
            int a2 = a1;
            a1 = 1000;
            System.out.println("a1=: " + a1);
            System.out.println("a2=: " + a2);
            String a3 = new String("10");
            String a4 = new String(a3);
            a3 = "1000";
            System.out.println("a3=: " + a3);
            System.out.println("a4=: " + a4);
        }
    
    运行结果:
    a1=: 1000
    a2=: 10
    a3=: 1000
    a4=: 10
    public class Test {
            public static void main(String[] args) {
                    Test t = new Test();
                    Test.Dog d1 = t.new Dog(1);//若看不懂,只需看成创建了一个Dog类一个实例变量
                    Test.Dog d2 = d1;//把d1赋值个d2,此时d2的age是不是1?
                    d1.age = 10;//重新为d1的age属性赋值成10
                    //打印结果
                    System.out.println("dog1's age = " + d1.age);
                    System.out.println("dog2's age = " + d2.age);
            }
           
          //为了节省空间能一眼看完,此处写成内部类
            class Dog {
                    //为了方便把属性定义为public,实际中最好不要
                    public  int age;
                    public Dog(int age) {
                            this.age = age;
                    }
    
            }
    }
    
    运行结果:都是10
    参考:http://www.cnblogs.com/wangjunxiao/p/5860454.html
    http://www.360doc.com/content/08/0829/08/59141_1587076.shtml
  • 相关阅读:
    CentOS + java
    在 Centos7 用Jexus服务器 运行.Net Core 只需几部
    dotnet core 开发中遇到的问题
    Scratch3.0设计的插件系统(上篇)
    ASP.NET的编译原理
    搭建git服务器
    ubuntu安装Pillow
    MIT线性代数课程总结与理解-第三部分
    关于在ubuntu系统下显卡为goforce1060安装tensorflow(gpu)
    关于Clion中添加makefile相关参数
  • 原文地址:https://www.cnblogs.com/ysloong/p/6389302.html
Copyright © 2011-2022 走看看