本文目錄一覽:
java的核心技術有哪些
第一:Java虛擬機 Java虛擬機的主要任務是裝在class文件並且執行其中的位元組碼。
第二:類裝載器的體系結構 一個Java應用程序可以使用兩種類裝載器:”啟動(bootstrap)”類裝載器和用戶定義的類裝載器。
第三:Java class文件 Java class文件主要在平台無關性和網絡移動性方面使Java更適合網絡。
第四:Java API Java API通過支持平台無關性和安全性,使得Java適應於網絡應用。
java語言有哪些核心機制?
Java語言包含三種核心機制:Java 虛擬機、垃圾收集機制和代碼安全檢測。
1、Java 虛擬機(Java Virtual Machine,JVM)
在一台計算機上由軟件或硬件模擬的計算機。Java虛擬機讀取並處理經編譯過的平台無關的位元組碼class文件。
2、垃圾收集機制(Garbage collection)
在C/C++ 等語言中,由程序員負責回收無用內存。Java語言解除了程序員回收無用內存空間的責任。它提供一種系統級線程跟蹤存儲空間的分配情況。並在JVM的空閑時,檢查並釋放那些可被釋放的存儲器空間。垃圾收集在Java程序運行過程中自動進行,程序員無法精確控制和干預。
3、代碼安全性檢測(Code Security)
Java執行代碼的時候,由JVM對運行的代碼進行安全性檢測,當進行一些非法操作的時候,比如修改一些系統設置的時候,JVM會發出警告。
java的核心思想是什麼?
朋友你好,
我想你已經看過java的基礎書籍了,至於你提出這個問題我想你是不明白書上解釋的意義。
JAVA的核心思想:面向對象,一切事物皆對象。而面向對象的四個特性才構成了面向對象。下面我將不會為你解釋概念,只為你舉出一些例子幫助你理解:
1.抽象:比如,我們將水果看做一個對象,而水果中又有蘋果、梨子等等一系列的分類,在我們眼中,水果是對象,而蘋果、梨子等也都是對象,對一個蘋果而言,你會關心這個蘋果產自哪裡,蘋果是姓什麼嗎?不會,這就是抽象,去掉我們不關心的,我們只關心它就是個蘋果
2.繼承:繼續上面我們將水果看做一個對象,那麼所有的水果都有顏色、味道等一系列屬性,而這些屬性在蘋果、梨子等都是一定會有的,那麼我們的蘋果就可以繼承於水果,因為它具有水果的一切特性,但是它還有自己的特性,這就便於我們自己對其定義新屬性
3.封裝:繼續上面,水果的屬性有很多,顏色、味道等等,我們怎麼才能表達出最完整的水果?這就是封裝,將水果的特性包裝在一個javabean,這樣一個完美的水果就誕生了
4. 多態性:接着上面,一個蘋果具有水果的全部特性,但是僅僅是這樣嗎?蘋果還能作為蔬菜做飯(如蘋果醬等),那麼我們怎麼才確定它和蔬菜的關聯呢?這就是多態了,它不僅有一個水果的特性還有其他種類的特性,在具有水果的全部特性前提下(繼承),我們就需要為蘋果添加一個蔬菜的接口,接口中定義了蔬菜的特性方法,但是我們不必像繼承那樣實現所有的方法,我們只需要實現需要的做飯這一個特性方法就行了,這就是接口,這就是多態
說了這麼多,僅僅是個人體會,僅供參考,有不對的地方希望原理。
希望能對你有幫助。
Java的核心技術有哪些?
java學習中的13個核心技術分享給你
1. JDBC(Java Database Connectivity):
JDBC API為訪問不同的數據庫提供了一種統一的途徑象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,另外JDCB對數據庫的訪問也具有平台無關性。
2. JNDI(Java Name and Directory Interface):
JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統或應用服務器中的對象。
3. EJB(Enterprise JavaBean):
J2EE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分佈式商務邏輯,由此很顯着地簡化了具有可伸縮性和高度複雜的企業級應用的開發。EJB規範定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩衝池以及容錯性。但這裡值得注意的是EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。
4. RMI(Remote Method Invoke):
正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和服務器端傳遞數據。RMI是一種被EJB使用的更底層的協議。
5. Java IDL/CORBA:
在Java IDL的支持下開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA ORB中展開,或者他們還可以創建Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑通過它Java可以被用於將你的新的應用和舊的系統相集成。
6. JSP(Java Server Pages):
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。
7. Java Servlet:
Servlet是一種小型的Java程序,它擴展了Web服務器的功能。作為一種服務器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。
8. XML(Extensible Markup Language):
XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。
XML的發展和Java是相互獨立的,但是它和Java具有的相同目標正是平台獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平台獨立性的解決方案。
9. JMS(Java Message Service):
MS是用於和面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,有支持發佈/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應用與舊的後台系統相集成。
10. JTA(Java Transaction Architecture):
JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。
11. JTS(Java Transaction Service):
JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規範,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。
12. JavaMail:
JavaMail是用於存取郵件服務器的API,它提供了一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器。
13. JAF(JavaBeans Activation Framework):
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java對象或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。
Java的核心技術什麼?
第一:Java虛擬機 Java虛擬機的主要任務是裝在class文件並且執行其中的位元組碼。Java虛擬機包含一個類裝載器,它可以從程序和API中裝載class文件。Java API中只有程序執行時需要的那些類才會被裝載。位元組碼由執行引擎來執行。不同的Java虛擬機中,執行引擎可能實現得非常不同。在由軟件實現的虛擬機中,最簡單的執行引擎就是一次性解釋位元組碼。另一種執行引擎更快,但是也更消耗內存,叫做”即時編譯器(just-in-time compiler)”。在這種情況下,第一次被執行的位元組碼會被編譯成本地機器代碼。編譯出的本地機器代碼會被緩存,當方法以後被調用的時候可以重用。第三種執行引擎是自適應優化器。在這種方法里,虛擬機開始的時候解釋位元組碼,但是會監視運行中程序的活動,並且記錄下使用最頻繁的代碼段。程序運行的時候,虛擬機只把那些活動最頻繁的代碼編譯成本地代碼,其他的代碼由於使用得不是很頻繁,繼續保留為位元組碼-由虛擬機繼續解釋它們。一個自適應的優化器可以使得Java虛擬機在80%~90%的時間裏執行被優化過的本地代碼,而只需要編譯10%~20%的對性能有影響的代碼。 當Java虛擬機是由主機操作系統上的軟件實現的時候,Java程序通過調用本地方法(native method)和主機交互。Java中有兩種方法: Java方法和本地方法。Java方法是由Java語言編寫,編譯成位元組碼文件,存儲在class文件中的。本地方法是由其他語言(比如c,c++或彙編語言)編寫的,編譯成何處理器相關的機器代碼。本地方法保存在動態鏈接庫中,格式是各個平台專有的。運行中Java程序調用本地方法時,虛擬機裝載包含這個本地方法的動態庫,並調用這個方法。本地方法是聯繫Java程序和底層主機操作系統的連接方法。
第二:類裝載器的體系結構 一個Java應用程序可以使用兩種類裝載器:”啟動(bootstrap)”類裝載器和用戶定義的類裝載器。啟動類裝載器(這是系統中唯一的)是Java虛擬機實現的一部分。啟動類裝載器通常使用某種默認方式從本地磁盤中裝載類,包括Java API類(啟動類裝載器也被稱為原始類裝載器、系統類裝載器或者默認類裝載器)。 Java應用程序能夠在運行時安裝用戶定義的類裝載器,這種類裝載器能夠使用自定義的方式來裝載類。例如,從網絡下載class文件。儘管啟動類裝載器是虛擬機實現的本質部分,而用戶定義的類裝載器不是,但用戶定義的類裝載器能夠用Java來編寫,能夠被編譯成class文件,能夠被虛擬機裝載,還能夠像其它對象一樣實例化。 由於有用戶定義類裝載器,所以不必再編譯的時候就知道運行中的Java應用程序中最終會加入的所有的類。用戶定義的類裝載器使得在運行擴展Java應用程序成為可能。當它運行時,應用程序能夠解決它需要哪些額外的類,能夠決定是使用一個或是更多的用戶定義的類裝載器來裝載。由於類裝載器是用Java編寫的,所以用任何在Java代碼中可以表述的風格來進行類裝載。這些類可以通過網絡下載,可以從某些數據庫中獲取,甚至可以動態生成。 每一個類被裝載的時候,Java虛擬機都監視這個類,看到它到底是被啟動類裝載器還是被用戶定義類裝載器裝載。當被裝載的類引用了另外一個類時,虛擬機就會使用裝載第一個類的類裝載器裝載引用的類。例如,如果虛擬機使用一個特定的類裝載器裝載Volcano這個類,它就會使用這個類裝載器裝載Volcano類使用的所有類。 由於Java虛擬機採取這種方式進行類的裝載,所以被裝載的類默認情況下只能看到被同一個類裝載器裝載的別的類。通過這種方法,Java的體系結構允許在一個Java應用程序中建立多個命名空間。運行時的Java程序中的每一個類裝載器都有自己的命名空間。 Java應用程序可以創建多少個(或多少種)被不同的類裝載器裝載的類存放在不同的命名空間中,它們不能相互訪問,除非應用程序顯示地允許這麼做。當編寫一個Java應用程序的時候,從不同源文件裝載的類可以分隔在不同的命名空間中。通過這種方法,就能夠使用Java類裝載器的體系結構來控制任何不同源文件中裝載的代碼之間的相互影響,特別是能夠阻止惡意代碼獲取訪問或破壞善意代碼的權限。 Web瀏覽器是一個動態擴展的例子,Web瀏覽器使用用戶定義的類裝載器從網絡下載用於Java applet的class文件。Web瀏覽器使用一個用來安裝用戶定義類裝載器的Java應用程序。這個用戶定義的類裝載器通常被稱為Java Applet類裝載器,它知道如何向HTTP服務器請求class文件。Java Applet可以作為動態擴展的例子,因為Java應用程序並不知道它什麼時候會開始從網絡下載瀏覽器請求的class文件。只有當瀏覽器遇到有Java applet的頁面時,才決定是否需要下載class文件。 Web瀏覽器啟動的Java應用程序通常為每個提供class文件的網絡地址分別創建不同的用戶定義類裝載器,因此,不同的用戶定義類裝載器裝載不同來源的class文件。這就可以把它們分別放置在Java主機應用程序的不同命名空間之下。由於不同來源的Java applet文件放置在不同的命名空間中,惡意的Java applet代碼就不會直接訪問從別的地方下載的class文件。這就能夠限制或阻止不同來源的代碼之間的相互訪問。
第三:Java class文件 Java class文件主要在平台無關性和網絡移動性方面使Java更適合網絡。它在平台無關性方面的任務是:為Java程序提供獨立於底層主機平台的二進制形式的服務。這種途徑途徑打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬件平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Java class文件時可以運行在任何支持Java虛擬機的硬件平台和操作系統上的二進制文件。 當編譯和連接一個C++程序時,所獲得的可執行二進制文件只能在指定的硬件平台和操作系統上運行,因為這個二進制文件包含了對目標處理器的機器語言。而Java編譯器把Java源文件的指令翻譯成位元組碼,這種位元組碼就是Java虛擬機的”機器語言”。class文件設計得緊湊,因此它們可以快速地在網絡上傳送。其次,由於Java程序是動態連接和動態擴展的,class文件可以在需要的時候才下載。這個特點使得Java應用程序能夠安排從網絡上下載class文件的時間,從而可以最大限度地減少終端用戶的等待時間。
第四:Java API Java API通過支持平台無關性和安全性,使得Java適應於網絡應用。Java API是運行庫的集合,它提供了一套訪問主機系統資源的標準方法。運行Java程序時,虛擬機裝載程序的class文件所使用的Java API class文件。所有被裝載的class文件(包括從應用程序中和從Java API中提取的)和所有已經裝載的動態庫(包含本地方法)共同組成了再Java虛擬機上運行的整個程序。 在一個平台能偶支持Java程序以前,必須在這個特定平台上明確地實現API的功能。為訪問主機上的本地資源,Java API調用了本地方法。由於Java API class文件調用了本地方法,Java程序就不需要再調用它們了。通過這種方法,Java API class文件為底層主機提供了具有平台無關性、標準接口的Java程序。對Java程序而言,無論平台內部如何,Java API都會有同樣的表現和可預測的行為。正是由於在每個特定的主機平台上明確地實現了Java虛擬機和Java API,因此,Java程序自身就能夠成為具有平台無關性的程序。 Java API在Java安全性模型方面也有貢獻。當Java API的方法進行任何有潛在危險的操作(比如進行本地磁盤寫操作)之前,都會通過查詢訪問控制器來檢驗是否得到了授權。訪問控制器是一個類,該類用來執行棧檢驗,已決定是否允許某種操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287113.html