Eclipse中的快捷鍵快速生成常用代碼(例如無參、帶參構造,set、get方法),以及Java中重要的記憶體分析(棧、堆、方法區、常量池)

来源:http://www.cnblogs.com/shangxinfeng/archive/2017/03/25/6617636.html
-Advertisement-
Play Games

(一)Eclipse中的快捷鍵: ctrl+shift+f自動整理選擇的java代碼 alt+/ 生成無參構造器或者提升信息 alt+shift+s+o 生成帶參構造 ctrl+shift+o快速導入包 alt+shift+s+r tab+enter-->shift+tab+enter 快速生成ge ...


(一)Eclipse中的快捷鍵: 

            ctrl+shift+f自動整理選擇的java代碼

        alt+/ 生成無參構造器或者提升信息
        alt+shift+s+o 生成帶參構造
        ctrl+shift+o快速導入包
        alt+shift+s+r tab+enter-->shift+tab+enter 快速生成get set方法
        ctrl+f11快速運行代碼

               說明:快捷鍵可以快速幫我們生成代碼,減少開發的時間,提高效率,記住幾個主要的就可以,其他的可以在Eclipse的編輯器中右鍵滑鼠,在彈出的菜單項中選擇sourse,在它的子菜單項中選擇

 

(二)Java中數據類型

          Java數據類型分為:基本數據類型和引用類型

        基本數據類型分為:數值型  布爾型  字元型

        引用類型:Class 介面 數組等(除了基本數據類型的都是引用類型)

        

 

 

(三 )Java中記憶體分析 

        1.首先記憶體分為2大部分:棧(局部變數都在棧裡面,空間連續)和堆(new關鍵字 出來的對象,空間不連續)

                       2.堆的話:分為普通的堆(存放new出來的對象)和方法區(類載入器載入到的類的代碼,static方法和變數,常量池(字元串常量)等)

         3.首先我們先定義一個簡單的類:

 

     說明:People類,有2個屬性,一個引用類型String,還有一個基本數據類型int,在構造器中初始化,構造器當然還是有返回值,返回的是這個對象地址,this關鍵字指向將要實例化的對象,this關鍵字和super關鍵字都是類中方法的隱式參數,可以在方法中直接使用,super關鍵字是指向它的直接父類對象的引用

        4.在類中寫一個main方法,程式的入口:

 

         首先類載入器會載入People類還有該類中用到的其他類,存放在堆中的方法區中,People p=new Peolpe();

         

        說明:p是個局部變數存放在棧裡面,裡面存放的是4個位元組的空間地址。new People()表示在堆中以類的模板創建一個對象,由於是無參構造,它的成員變數,引用類型的就為null,基本數據類型的在某種意義下就是0。

        在往下看

        p.name=new String()和p.age=18在記憶體中的分析

        

        說明:通過p引用找到堆裡面的對象,在找到它的String name屬性,讓它指向在堆中新new出來的字元串對象,而int age屬性,是直接存放18這個值,所以說,基本數據類型存值,引用類型存放空間地址,在說一說二位數組,看下麵代碼

        

        畫出一下它的記憶體圖:

        

 

 

         說明:首先的話,a指向堆裡面的有2個引用屬性的對象,然後該對象2個引用屬性分別指向另外2個數組,由於二位數組各個項沒有賦值,根據是int類型,預設值就為0,如果是引用類型,那麼就是null

       5.當然還有方法,在new出來的對象中的普通方法,就是不帶static關鍵字的方法,它也有地址,指向方法區的類代碼中的該方法,實現調用,然後該方法中有參數的話,就會在棧中開闢一個空間存放該局部變數,若是基本數據類型的參數,就存放值,若是引用類型數據類型的參數就存放空間地址,然後通過該空間地址來找到它所指向的對象,來進行方法的操作

        6.就是方法區中帶static的方法和變數,它們是從屬於類的,可以通過類名.直接調用該方法,不依賴對象

        7.就是常量池中的字元串常量:舉個例子

       

 

             說明:”我是字元串“就是在常量池中的字元串常量,畫出它的記憶體分析圖

             

            畫出記憶體圖就知道了,str1==str2返回值為什麼為true,因為它們指向同一個地方,存放的空間地址是一樣,所以返回true

       8.關於繼承的記憶體分析圖就不畫了,其實很簡單,在子類的構造器中預設有super()這一行代碼,調用父類的構造器,這就是為什麼在創建子類對象的時候,會先創建父類對象,如果調用了一個方法,在子類中沒有,就會去父類中找,使用屬性也是一樣

            9.關於引用類型為null,當然不是為空,也是指向堆中的一個記憶體空間的。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 下圖為測試結果: ...
  • 昨天沒有更新,特此來說明下原因,昨天回到家時已經甚晚,正逢公司這幾天項目比較緊張(bug多,趕需求,看著bug單齊刷刷的轉過來,心都顫抖了一下),沒有及時準備素材,今天又加了一天班(現在還在公司,偷個空隙趕緊發博,哈哈哈),所以昨晚沒有更博。 今天在改bug的時候發現瞭如圖的小問題,來分享一下,主要 ...
  • matplotlib實際上是一套面向對象的繪圖庫,它所繪製的圖表中的每個繪圖元素,例如線條Line2D、文字Text、刻度等在記憶體中都有一個對象與之對應。為了方便快速繪圖matplotlib通過pyplot模塊提供了一套和MATLAB類似的繪圖API,將眾多繪圖對象所構成的複雜結構隱藏在這套API內 ...
  • 轉自:http://blog.csdn.net/wushiwude/article/details/55101631 一、前言 dubbo的使用,其實只需要有註冊中心,消費者,提供者這三個就可以使用了,但是並不能看到有哪些消費者和提供者,為了更好的調試,發現問題,解決問題,因此引入dubbo-adm ...
  • 從一開始就讓我們簡化這次的討論。你有兩類你能夠繼承的函數:虛函數和非虛函數。然而,重新定義一個非虛函數總是錯誤的(Item 36),所以我們可以安全的把這個條款的討論限定在繼承帶預設參數值的虛函數上。 1. 虛函數是動態綁定的,而預設參數是靜態綁定的 在這種情況下,這個條款的驗證就相當直接了:虛函數 ...
  • Restful是一種架構style,目前常說的有restful web service, resultful http。現在熱搜榜的微服務,大多數會採用Restful方式。 JAX-RS 作為一個Restful 風格WebService規範,目前已發展到了2.0版本,目前比較常用的兩個版本是JAX- ...
  • 用戶與訂單時一對多關係,再加上商品信息的話,訂單與商品之間就是多對多關係了 sql DROP DATABASE IF EXISTS testdb; USE testdb; / 用戶表,記錄用戶信息;用戶與訂單為一對多關係:一個用戶可擁有多個訂單 / DROP TABLE IF EXISTS ; CR ...
  • 緣起 因為一個月的短暫停留,我在給朋友搞事情,所以Yii系列的文章耽擱了很長時間,現在又重拾當時的知識,給大伙好好擼下這一系列的博客 提起Yii,雖然是國外的開發者搞的,但是它的作者是華人,這才是讓我們引以為豪的,如果以後有機會薛強回國大力發展PHP事業,我肯定回去他麾下搞事情,為PHP在國內的發展 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...