Java内存机制

作者: 佐半边的翅膀 | 来源:发表于2019-03-16 10:39 被阅读2次

    Java内存机制

    java把内存分为两种,一种是堆内存一种是栈内存。

    栈内存存放的是基本数据类型变量和引用数据类型变量。

    堆内存存放的是new创建的对象和数组。在堆分配的的内存,由java中的垃圾回收器来自动回收。

    java中只存在值传递,基本数据类型的传递是基本数据类型的值,引用数据类型传递的是地址。一个栈只能指向一个堆,但是一个堆可以被多个栈引用。

    注意

    栈: 自动分配连续的空间,后进先出。放置的是局部变量,线程不共享。

    堆: 放置的是new出来的对象。

    方法区:又叫静态存储区,存放的是类的代码信息,静态static变量 以及常量值。线程共享

    public class Student {

        String name;  //名字

        int age;  //年龄

        Computer com; //电脑对象,也是作为属性存在

        public void study(){

            System.out.println(this.name+"在学习!");

        }

        public void sayHello(String name){

            System.out.println(this.name+"对"+name+"说:hello");

        }

    }

    public class Computer {

        String brand;//品牌

        int cpuSpeed; //运行速度

    }

    package com.yunsi.storeause6.d0314;

    public class TestStudent {

        public static void main(String[] args) {

            Student stu = new Student();

            stu.name="张三";

            stu.age=10;

            //调用方法

            stu.study();

            stu.sayHello("李四");

            Computer computer = new Computer();

            computer.brand="联想";

            computer.cpuSpeed=100;

            //将computer赋值给stu的属性 com

            stu.com=computer;

            System.out.println("****"+stu.com+"-----"+stu.com.brand);

        }

    }

    构造方法

    构造方法的作用:为了方便参数的传递,允许在新建对象的时候,同时对这个对象的一些属性进行初始化。

    构造方法分为两种:

    (1) 无参构造方法 public 类名(){

    (2) 有参构造方法 public 类名(参数类型1 参数名称1,参数类型2 参数名称2){}

    构造方法如何修饰?

    (1)允许没有修饰

    (2)访问的修饰: public, protected, private

    (3)不能有以下非访问性质的修饰: abstract, final, native, static

    注意:

    (1)每个类都必须有构造方法,如果你不写任何构造方法,则系统会默认提供一个无参构造方法。你也可以自己写构造方法。

    (2)构造方法调用必须通过new语法,构造函数在创建对象的时候自动调用。

    (3)如果类中已经定义了有参构造方法,则系统不会默认分配无参方法,如果需要调用无参构造,则必须显式定义。

    (4)一个类可以有多个构造函数,构造方法不能被继承

    相关文章

      网友评论

        本文标题:Java内存机制

        本文链接:https://www.haomeiwen.com/subject/dqmjmqtx.html