Java內存機制及構造方法

# 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

相關文章
相關標籤/搜索