原创 jvm-010(張龍老師jvm教程) 接口的初始化

jvm-010 接口的初始化 1、調用接口的常量:編譯器即可確定的常量,不會引發接口的初始化。 public class TestCode05 { public static void main(String[] args) {

原创 提問一個類預加載的問題,百思不得其解

提問之前,先請各位大神確認兩個觀點是否正確: 1、一個類被初始化,該類實現的接口不會被初始化; 2、虛擬機對於類有預加載機制,即判斷到某個類將要被使用的時候,會預先加載它,但是如果類的.class文件缺失或者錯誤,並不會報錯,而是等到該類

原创 jvm-009(張龍老師jvm教程) 類加載的深入解析與重要特性

jvm-009 一、類的加載       類加載的最終產品是位於內存中的Class對象,Class對象封裝了類在方法區內的數據結構,並且向Java程序提供了訪問方法區內該類的數據結構的接口。       類加載器並不需要等到某個類被首次主

原创 jvm-008(張龍老師jvm教程) 初始化加載順序代碼示例分析

jvm-008 一、初始化的執行順序:類的初始化順序是按照代碼邏輯自上而下依次執行的。 代碼1: public class TestCode06 { public static void main(String[] args) {

原创 jvm-006(張龍老師jvm教程) 常量傳播優化和字節碼指令入門

jvm-006 一、常量傳播優化:       常量在編譯階段,如果能確定其數值,會存入到調用類的常量池中。在運行階段,調用類和常量定義的類就沒有任何關係了(可以將定義類的.class文件刪除嘗試,也不會報錯)。因此,常量的調用不會引起定

原创 jvm-007(張龍老師jvm教程) 運行期常量和數組創建的本質分析

jvm-007 一、運行期常量與編譯器常量不同: 對於在編譯器無法確定的常量值,在被調用的時候,會引起常量所在類或者接口的初始化,此時不會觸發常量傳播優化。 代碼示例:   public class TestCode03 {    

原创 jvm-003(張龍老師jvm教程) 大綱分析與工具使用

jvm-003 1、jvm的學習方向 2、jConsole對虛擬機的監測情況 3、jvisualvm對你虛擬的監測情況

原创 jvm-004(張龍老師jvm教程) 深入解析與階段分解

jvm-004 1、在java代碼中,類型的加載、連接、初始化都是在程序運行期間完成的。 2、優點:java是一門靜態語言,在程序運行期間進行類的加載、連接和初始化可以爲java語言提供更大的靈活性(如動態代理),增加了很多的靈活性,爲j

原创 jvm-005(張龍老師jvm教程) 加載連接初始化過程詳解

jvm-005一、java程序對類的使用方式       1:主動使用       2:被動使用二、初始化       所有的java虛擬機的實現,都是在類或接口的首次主動使用時才初始化他們。三、主動使用的7中情況:       1:創建

原创 基於JDK1.6和JDK1.7對String.intern()方法的理解

最近看了深入理解Java虛擬機,對String.intern()方法虛擬機的實現很是不理解,經過查找網上的各類文章,現在總結一部分。 在理解String.intern()方法之前,我覺得首先應該瞭解一下通過創建對象的方式和直接創建字符串的

原创 個人理解的 VO DTO DO PO 的一些看法

    在看到阿里代碼規範時看到這幾個POJO類,查看網上的一些相關內容後,闡述一下自己的觀點,路過的朋友如有異議請指教。     POJO類必然值得jius就是JavaBeans,含有get、set方法的一些實體類,那麼爲什麼下面又區分

原创 Python 中的 __new__(cls)方法詳解

最近在看小甲魚的python視頻,在講到魔法方法__new__時,用了一段例子 class CapStr(str): def __new__(cls, string): string = string.upper

原创 Java-response-文件流下載文件中文名稱丟失或者亂碼問題,針對IE

  /**     public void copyReponseFile(OutputStream out, BufferedInputStream bis, BufferedOutputStream bos,