java基礎(六)javac原理
--1.彙編
.source Message.java 表示這個程式碼的原始檔是Message.java
.class public Message 表示這是一個類且公有的類名是Message
.super java/lang/Object 表示這個類的父類是Object
.method public <init> ()V 表示這是一個公有方法,沒有引數,返回值型別是Void <init>表示構造
---棧操作指令
dup 將當前的棧頂元素複製一份,並壓入棧中
dup_x1 複製棧頂數值並將兩個複製值壓入棧頂
pop 從當前棧頂出來一個元素
aload 將當前本地變數n放入棧頂中,變數n是一個引用
aload_0 強當前本地變數0放入棧頂中,變數0是一個引用
dload 將當前本地變數n放入棧頂中,變數n是一個double型別
fload 將當前本地變數n放入棧頂中,變數n是一個float型別
iinc 將指定int型變數增加指定值
相關推薦
java基礎(六)javac原理
--1.彙編 .source Message.java 表示這個程式碼的原始檔是Message.java .class public Message 表示這是一個類且公有的類名是Message .super java/lang/Object 表示這個類的父類是Obj
Java基礎--forEach實現原理
針對list的forEach // 原始碼 import java.util.ArrayList; import java.util.List; public class ListTest { public static void main(String
java基礎-集合底層原理分析
java集合框架主要包括兩種型別的集合容器:一、Collection儲存一個元素的。它又包含三個子型別:List、Set、QueueList:可以儲存重複的資料、有序的List常用的類是ArrayLis
Java基礎六:Java中Volatile關鍵字詳解
一、基本概念 先補充一下概念:Java 記憶體模型中的可見性、原子性和有序性。 可見性: 可見性是一種複雜的屬性,因為可見性中的錯誤總是會違揹我們的直覺。通常,我們無法確保執行讀操作的執行緒能適時地看到其他執行緒寫入的值,有時甚至是根本不可能的事情。為了確保多個
Java基礎之Synchronized原理
![](https://img2020.cnblogs.com/blog/686418/202006/686418-20200630151944391-1320178406.png) 思維導圖svg: https://note.youdao.com/ynoteshare1/index.html?id=eb
Java基礎之HashMap原理分析(put、get、resize)
在分析HashMap之前,先看下圖,理解一下HashMap的結構 ![圖片](https://images.cnblogs.com/cnblogs_com/kezhuang/1846266/o_200912094424企業微信20200912054321.png) 我手畫了一個圖,簡單描述一下HashMa
java基礎(六章)
while nbsp 開關 while循環 次數 tro 判斷 進行 一次 一、for循環的使用場合 l while循環——先判斷,再循環 while(1、條件表達式){ //2、循環操作 //3、更改循環條件表達式 } l do…while——先循
Java基礎學習筆記十六 集合框架(二)
first 哈希 cat etag 基於 col 容器 處的 新元素 List List接口的特點: 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那麽集合中,元素的存儲就是按照11、22、33的順序完成的。 它是一個帶有索引的集合,通過索引就
Java基礎------生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)?
參考 數組 rand 定義 ole ava length log post 問題描述:生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)? 參考代碼如下: import java.util.Arrays;import java.util.Random
JAVA基礎學習之路(六)數組與方法參數的傳遞
就是 .com 另一個 AS oid span 參數 spa nbsp 通常,向方法中傳遞的都是基本數據類型,而向方法中傳遞數組時,就需要考慮內存的分配 public class test2 { public static void main(String a
java基礎 第十六章(連接數據庫)
ID 循環 exec manage () result creat AS 新的 連接數據庫(JDBC接口) 步驟如下: 先到數據庫jar包。 1.加載驅動 Class.forName("包路徑"); 例:Class.forName("com.mysql.jd
Java基礎知識回顧之六 ----- IO流
.net 是否 簡單 取數據 高效 它的 .cn 回顧 們的 前言 在上一篇文章中,回顧了Java的多線程。而在本篇文章中主要介紹Java IO的相關知識。 IO的介紹 什麽是IO? IO的名稱又來是Input與Output的縮寫,也就是輸入流和輸出流。輸入流用於從源讀取
Java基礎學習(六) 網絡編程簡介
exc 個數 intern 時間 能夠 兩臺 接受 void connect 基礎知識:1、osi分層模型和TCP/IP分層模型對應關系 2、七層模型與協議的對應關系 網絡層 ------------ IP(網絡之間的互聯協議) 傳
java基礎學python(六)---------------Matplotlib
Matplotlib庫 import matplotlib.pyplot as plt plt.plot([4,1,6,3,8,5]) plt.ylabel("num") plt.savefig(“text”,dpi=600)#dpi:每英寸中包含點的數量,儲存為png檔案,檔案 &n
java基礎學習總結(二十四):slf4j作用及其實現原理
簡單回顧門面模式 slf4j是門面模式的典型應用,因此在講slf4j前,我們先簡單回顧一下門面模式, 門面模式,其核心為外部與一個子系統的通訊必須通過一個統一的外觀物件進行,使得子系統更易於使用。用一張圖來表示門面模式的結構為: 門面模式的核心為Facade即門面
java基礎學習總結(十六):程式碼優化
程式碼優化的目標是: 1、減小程式碼的體積 2、提高程式碼執行的效率 程式碼優化細節 (1)儘量指定類、方法的final修飾符 帶有final修飾符的類是不可派生的。在Java核心API中,有許多應用final的例子,例如java.lang.Strin
java基礎學習總結(十):可變長度引數以及foreach迴圈原理
一、語法糖 語法糖是一種幾乎每種語言或多或少都提供過的一些方便程式設計師開發程式碼的語法,它只是編譯器實現的一些小把戲罷了,編譯期間以特定的位元組碼或者特定的方式對這些語法做一些處理,開發者就可以直接方便地使用了。這些語法糖雖然不會提供實質性
JAVA基礎複習(六)泛型和集合
1、泛型的優點是能在編譯時檢測出錯誤,一旦編譯器認為泛型型別是安全使用的,就會將它轉換為原始型別,泛型類或方法允許使用者指定可以和這些類或方法一起工作的物件型別 2、泛型型別必須是引用型別,不能使用int、double等基本型別來替代泛型集合 3、泛型集合類的構造方法和普通類相同,定義一個泛
java基礎類庫學習(六.6)物件序列化
前言 物件序列化:允許把記憶體中的物件轉換成平臺無關的二進位制流,從而把這種二進位制流持久的儲存自磁碟上,通過網路將這種二進位制流傳輸到網路的另一個節點,其他程式一旦獲得了這種二進位制流,都可以將這種二進位制流恢復成原來的java物件 物件的序列化是指將一個java物件寫入io流中,
java基礎類庫學習(六.5)輸入輸出流體系
前言 輸入輸出流的4個抽象基類InputStream/OutputStream Reader/Writer 4個訪問檔案的節點流:FileInputStream/FileReader FileOutputStream/FileWriter 處理流的用法: