java基礎知識

 

Java

一、談談你對java的理解

  與平臺無關性(一次變異到處運行)java

如何實現?網絡

  → GC(垃圾回收機制。會自動釋放堆內存)併發

  語言特性(泛型,反射,lambda表達式)操作系統

  面向對象(封裝,繼承,多態)對象

  類庫(java自己自帶的一些集合和併發庫,網絡庫,IO等)blog

  異常處理繼承

二、JVM如何加載 .class文件

 

 

      → class loader 根據特定格式,加載class文件到內存內存

  → execution engine 對命令進行解析(完成後即提交到操做系統中執行)開發

  → native interface 融合不一樣開發語言的原生庫爲java所用編譯器

  → runtime data area JVM內存空間結構模型

三、談談反射

Java反射機制是在運行狀態中,對任意一個類,都可以知道這個累的全部屬性和方法;對於任意一個對象,都可以調用他的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱爲java語言的反射機制。

 

 

 

四、類從編譯到執行的過程

  → 編譯器將Robot.java源文件編譯爲Robot.class字節碼文件

  →ClassLoader將字節碼轉換爲JVM中的Class<Robot>對象

  → JVM利用Class<Robot>對象實例化爲Robot對象

 

五、談談ClassLoader(抽象類)

ClassLoader在java中有這很是重要的做用,它主要工做在Class裝載的加載階段,其主要做用是從系統外部得到Class二進制數據流,它是Java的核心組件,全部的Class都是由ClassLoader進行加載的,ClassLoader負責經過將Class文件裏的二進制數據流裝載進系統,而後交給Java虛擬機進行鏈接、初始化等操做。

 

六、ClassLoader的種類

    一、BootStrapClassLoader :C++編寫,加載核心庫java.*,(java.lang.*)

    二、ExtClassLoader :Java編寫,加載擴展庫javax.*

    三、AppClassLoader :Java編寫,加載程序所在目錄

    四、自定義ClassLoader :Java編寫,定製化加載

相關文章
相關標籤/搜索