JAVA基礎學習筆記(三)

1. 面向對象和面向過程

面向過程

以事務為核心的編程思想,分析出解決問題的步驟,然后用程序按照順序去實現它,面向過程適合簡單的、不需要協作的事務。

面向對象

兩者關系

都是解決問題的思維方式,都是代碼組織的方式。兩者相輔相成,宏觀面向對象,微觀處理還是面向過程。

什么是對象

內存中是一堆代碼塊,表示一些相關聯的數據

對象和類

類可以看做是對象的模板/抽象。

public class SxStudent {
    //屬性定義
    int id;
    String name;
    int age;

    //定義方法
    void study(){
        System.out.println("Study..");
    }

    public static void main(String[] args){
        SxStudent stu = new SxStudent();
        stu.study();
    }
}

面向對象的內存分析

Java虛擬機內存可以分為三個區域:

  • 棧stack
  • 堆heap
  • 方法區method area

1.描述的是方法執行的內存模型,每個方法被調用都會創建一個棧幀(存儲局部變量、操作數、方法出口等)
2.JVM會為每個線程創建一個棧,用于存放該線程執行方法的信息(實際參數、局部變量等)
3.棧屬于線程私有,不能實現線程間的共享
4.棧的存儲特性是“先進后出,后進先出”(子彈夾)
5.棧是由系統自動分配,速度快。棧是一個連續的內存空間。

1.用于存儲創建好的對象和數組
2.JVM只有一個堆,被所有線程共享
3.是一個不連續的內存空間,分配靈活,速度慢

方法區

1.JVM只有一個方法區,被所有線程共享
2.方法區實際也是堆,只是用于存儲類、常量相關的信息
3.用來存放程序中永遠是不變或唯一的內容

面向對象的內存分析
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在一個方法內部定義的變量都存儲在棧中,當這個函數運行結束后,其對應的棧就會被回收,此時,在其方法體中定義的變量將不...
    Y了個J閱讀 4,435評論 1 14
  • 一:java概述: 1,JDK:Java Development Kit,java的開發和運行環境,java的開發...
    慕容小偉閱讀 1,825評論 0 10
  • 整理來自互聯網 1,JDK:Java Development Kit,java的開發和運行環境,java的開發工具...
    Ncompass閱讀 1,552評論 0 6
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,686評論 0 11
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,726評論 0 11