細說java
A. java工作原理
Java工作原理
由四方面組成:
(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序介面
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用 。
B. Java語言能做什麼應用范圍是
1. Android應用
如果你還在尋找Java在哪運用,你不用東奔西走的尋找,你的身邊就是。打開的 Android 手機,隨便打開一個 App 應用,他們就是完全的用 Java 語言,從 Google 上搜索 Android 的 API 文檔,你就會發現它和 Java 的 JDK 文檔驚人的相似。從兩年前的 Android 剛剛起步,到今天許多的 Android 應用都是 Java 程序員開發者開發。雖然 Android 運用了不同的 JVM 以及不同的封裝方式,但是代碼還是用 Java 語言所編寫。
2. 在金融業應用的伺服器程序
Java 在金融服務業的應用非常廣泛,許多跨國投資銀行例如:Goldman Sachs(高盛投資),Citigroup(花旗集團),Barclays(巴克萊銀行),Standard Charted(標准渣打銀行)以及其他銀行,都用 Java 來編寫前台和後台的電子交易系統,結算和確認系統,數據處理項目以及其他項目。大多數情況下,Java 被用在伺服器端開發,但多數沒有任何前端,它們通常是從一個伺服器(上一級)接收數據,處理後發向另一個處理系統(下一級處理)。Java Swing 技術旨在開發可視化界面客戶端供交易者使用,但是隨著近幾年 C# 的崛起使程序員在客戶端開發時舍棄了繁瑣的代碼,C# 正慢慢取代 Swing 成為可視化開發的主流。
3. 網站
同樣,Java 在電子商務領域以及網站開發領域占據這大部分席位。你可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0 以及 frameworks。即使是簡單的 servlet,jsp 和以 struts 為基礎的網站在政府項目中也是很受歡迎的。例如醫療救護,保險,教育,國防以及其他的不同部門網站都是以 Java 為基礎來開發的。
4. 軟體工具
許多常用的軟體和開發工具都是運用Java來編寫和開發的。比如 Eclipse,IneteliJIdea 和 Netbans IDE。我認為他們去都是用 Java 來編寫的。就如上面所說,Swing 曾經在可視化桌面客戶端開發非常流行,它們大多數應用與金融服務領域以及投資銀行,JavaFx 雖說已經得到流行,但是依然無法取代 Swing。現在 C# 已經幾乎取代了 Swing 在金融開發領域的地位。
5. 交易系統
第三方交易系統,現已是金融服務產業的一個很大的部分,它們同樣也是 Java 編寫。例如受歡迎的交易平台 Murex ,它也是 Java 編寫,並與許多的銀行前台所連接,提供服務。
6. J2ME系統
隨著近幾年 IOS 和 Android 的出現,幾乎占據了 J2ME 市場,但仍然有低端諾基亞、三星手機使用J2ME。這個時代的大多數手機游戲,手機應用都採用 J2ME 的一部分 MIDP 和 CLDC 編寫,以適應 Android 系統。但是 J2ME 依然在藍光,磁卡,機頂盒這些產品中流行。通信應用之所以這么火是因為 Nokia 的手機依舊支持J2ME。
7. 嵌入式領域
Java 在嵌入式領域發展空間很大。在這個平台上,你只需130KB就能夠使用 Java 技術(在智能卡或者感測器上)。最初,Java 被設計用來在嵌入書設備上工作。事實上,這只是其中的一個領域,這只是當初的「一次寫入,隨便暢游」的項目,現在看起來是這樣了。
8. 大數據技術
Hadoop 以及其他大數據處理技術都是用 Java 或者其他,例如 Apache 的基於 Java 的 HBase 和Accumulo 以及 ElasticSearchas。但是 Java 在此領域並未占太大空間,如 MongoDB 就是在 C++ 技術基礎上編寫的。總的來說,只要 Hadoop 和 ElasticSearchas 能夠成長壯大,Java 依舊還有潛力去在這個市場占據一部分。
9. 高頻交易的空間
Java 平台大幅度提高了這個平台的特性和即使編譯,他同時也能夠像 C++ 一樣傳遞數據。正是由於這個原因,Java 成為的程序員編寫交易平台的語言,因為雖然性能不比母語,但你可以避開它的安全性,可移植性和可維護性,以更快的速度運行,一個沒有經驗的 C++ 程序員會使應用程序變的更加緩慢和不可靠。
10. 科學應用
今天,Java 依然是在科學應用中最好選擇,包括自然語言處理。最主要的原因是因為 Java 比 C++ 或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的並發性更好。
C. java是什麼意思
「什麼是Java?」
Java,由Sun Microsystems公司於1995年5月推出,它是一種可以編寫跨平台應用軟體、完全面向對象的程序設計語言。
不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
B站尚學堂Java入門教程
「什麼樣的人適合學Java?」
● 邏輯思維能力強
對於Java來說所有功能都是通過編寫代碼實現的,需要開發人員具備較強的邏輯性和運算性。
● 端正心態、踏實耐心
在平時的工作中會有一大部分時間是花費在解決bug上,在遇到問題後一遍遍的排查代碼,所以擁有良好的心態也是必不可少的優勢。
● 不斷學習的能力
隨著科技的發展會不斷出現各種新型的技術,開發人員需要及時的關注這些新技術並且轉化為自己技能。
D. Java語言的特點
一、Java語言特點
Java是一種跨平台,適合於分布式計算環境的面向對象編程語言。
具體來說,它具有如下特性:
簡單性、面向對象、分布式、解釋型、可靠、安全、平台無關、可移植、高性能、多線程、動態性等。
下面我們將重點介紹Java語言的面向對象、平台無關、分布式、多線程、可靠和安全等特性。
1.面向對象
面向對象其實是現實世界模型的自然延伸。現實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現實世界中任何實體都可歸屬於某類事物,任何對象都是某一類事物的實例。如果說傳統的過程式編程語言是以過程為中心以演算法為驅動的話,面向對象的編程語言則是以對象為中心以消息為驅動。用公式表示,過程式編程語言為:程序=演算法+數據;面向對象編程語言為:程序=對象+消息。
所有面向對象編程語言都支持三個概念:封裝、多態性和繼承,Java也不例外。現實世界中的對象均有屬性和行為,映射到計算機程序上,屬性則表示對象的數據,行為表示對象的方法(其作用是處理數據或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數據和方法聯在一起形成一個整體。可以說,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為Java無全程變數,無主函數,在Java中絕大部分成員是對象,只有簡單的數字類型、字元類型和布爾類型除外。而對於這些類型,Java也提供了相應的對象類型以便與其他對象交互操作。
多態性就是多種表現形式,具體來說,可以用「一個對外介面,多個內在實現方法」表示。舉一個例子,計算機中的堆棧可以存儲各種格式的數據,包括整型,浮點或字元。不管存儲的是何種數據,堆棧的演算法實現是一樣的。針對不同的數據類型,編程人員不必手工選擇,只需使用統一介面名,系統可自動選擇。運算符重載(operatoroverload)一直被認為是一種優秀的多態機制體現,但由於考慮到它會使程序變得難以理解,所以Java最後還是把它取消了。
繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,因此,汽車是它們的「父親」,而這些子實體則是汽車的「孩子」。Java提供給用戶一系列類(class),Java的類有層次結構,子類可以繼承父類的屬性和方法。與另外一些面向對象編程語言不同,Java只支持單一繼承。
2�平台無關性
Java是平台無關的語言是指用Java寫的應用程序不用修改就可在不同的軟硬體平台上運行。平台無關有兩種:源代碼級和目標代碼級。C和C++具有一定程度的源代碼級平台無關,表明用C或C++寫的應用程序不用修改只需重新編譯就可以在不同平台上運行。
Java主要靠Java虛擬機(JVM)在目標碼級實現平台無關性。JVM是一種抽象機器,它附著在具體操作系統之上,本身具有一套虛機器指令,並有自己的棧、寄存器組等。但JVM通常是在軟體上而不是在硬體上實現。(目前,SUN系統公司已經設計實現了Java晶元,主要使用在網路計算機NC上。
另外,Java晶元的出現也會使Java更容易嵌入到家用電器中。)JVM是Java平台無關的基礎,在JVM上,有一個Java解釋器用來解釋Java編譯器編譯後的程序。Java編程人員在編寫完軟體後,通過Java編譯器將Java源程序編譯為JVM的位元組代碼。任何一台機器只要配備了Java解釋器,就可以運行這個程序,而不管這種位元組碼是在何種平台上生成的。另外,Java採用的是基於IEEE標準的數據類型。通過JVM保證數據類型的一致性,也確保了Java的平台無關性。
Java的平台無關性具有深遠意義。首先,它使得編程人員所夢寐以求的事情(開發一次軟體在任意平台上運行)變成事實,這將大大加快和促進軟體產品的開發。其次Java的平台無關性正好迎合了「網路計算機」思想。如果大量常用的應用軟體(如字處理軟體等)都用Java重新編寫,並且放在某個Internet伺服器上,那麼具有NC的用戶將不需要佔用大量空間安裝軟體,他們只需要一個
Java解釋器,每當需要使用某種應用軟體時,下載該軟體的位元組代碼即可,運行結果也可以發回伺服器。目前,已有數家公司開始使用這種新型的計算模式構築自己的企業信息系統。
3�分布式
分布式包括數據分布和操作分布。數據分布是指數據可以分散在網路的不同主機上,操作分布是指把一個計算分散在不同主機上處理。
Java支持WWW客戶機/伺服器計算模式,因此,它支持這兩種分布性。對於前者,Java提供了一個叫作URL的對象,利用這個對象,你可以打開並訪問具有相同URL地址上的對象,訪問方式與訪問本地文件系統相同。對於後者,Java的applet小程序可以從伺服器下載到客戶端,即部分計算在客戶端進行,提高系統執行效率。
Java提供了一整套網路類庫,開發人員可以利用類庫進行網路程序設計,方便得實現Java的分布式特性。
4�可靠性和安全性
Java最初設計目的是應用於電子類消費產品,因此要求較高的可靠性。Java雖然源於C++,但它消除了許多C++不可靠因素,可以防止許多編程錯誤。首先,Java是強類型的語言,要求顯式的方法聲明,這保證了編譯器可以發現方法調用錯誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內存的非法訪問;第三,Java的自動單元收集防止了內存丟失等動態內存分配導致的問題;第四,Java解釋器運行時實施檢查,可以發現數組和字元串訪問的越界,最後,Java提供了異常處理機制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務便於恢復。
由於Java主要用於網路應用程序開發,因此對安全性有較高的要求。如果沒有安全保證,用戶從網路下載程序執行就非常危險。Java通過自己的安全機制防止了病毒程序的產生和下載程序對本地系統的威脅破壞。當Java位元組碼進入解釋器時,首先必須經過位元組碼校驗器的檢查,然後,Java解釋器將決定程序中類的內存布局,隨後,類裝載器負責把來自網路的類裝載到單獨的內存區域,避免應用程序之間相互干擾破壞。最後,客戶端用戶還可以限制從網路上裝載的類只能訪問某些文件系統。
上述幾種機制結合起來,使得Java成為安全的編程語言。
5�多線程
線程是操作系統的一種新概念,它又被稱作輕量進程,是比傳統進程更小的可並發執行的單位。
C和C++採用單線程體系結構,而Java卻提供了多線程支持。
Java在兩方面支持多線程。一方面,Java環境本身就是多線程的。若干個系統線程運行負責必要的無用單元回收,系統維護等系統級操作;另一方面,Java語言內置多線程式控制制,可以大大簡化多線程應用程序開發。Java提供了一個類Thread,由它負責啟動運行,終止線程,並可檢查線程狀態。Java的線程還包括一組同步原語。這些原語負責對線程實行並發控制。利用Java的多線程編程介面,開發人員可以方便得寫出支持多線程的應用程序,提高程序執行效率。必須注意地是,Java的多線程支持在一定程度上受運行時支持平台的限制。例如,如果操作系統本身不支持多線程,Java的多線程特性可能就表現不出來。
二、Java小程序和應用程序
用Java可以寫兩種類型的程序:小程序(又叫JavaApplet)和應用程序(JavaApplication)。小程序是嵌入在HTML文檔中的Java程序;而Java應用程序是從命令行運行的程序。對Java而言,Java小程序的大小和復雜性都沒有限制。事實上,Java小程序有些方面比Java應用程序更強大。但是由於目前Internet通訊速度有限,因此大多數小程序規模較小。小程序和應用程序之間的技術差別在於運行環境。
Java應用程序運行在最簡單的環境中,它的唯一外部輸入就是命令行參數。另一方面,Java小程序則需要來自Web瀏覽器的大量信息:它需要知道何時啟動,何時放入瀏覽器窗口,何處,何時激活關閉。由於這兩種不同的執行環境,小程序和應用程序的最低要求不同。
由於WWW使小程序的發布十分便利,因此小程序更適合作為Internet上的應用程序。相反,非網路系統和內存較小的系統更適合用Java應用程序而較少用Java小程序實現。另外,Java應用程序也很容易以Internet為基礎環境,事實上有些優秀的Java應用程序正是如此。
E. java是什麼語言
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。
Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Java的特點:
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點;下面我們來具體介紹一下:
1、簡單性
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特徵,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
2、面向對象
Java語言提供類、介面和繼承等面向對象的特性,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
3、分布性
Java設計成支持在網路上應用,它是分布式語言。Java既支持各種層次的網路連接,又以Socket類支持可靠的流(stream)網路連接,所以用戶可以產生分布式的客戶機和伺服器。
網路變成軟體應用的分布運載工具。Java程序只要編寫一次,就可到處運行。
4、編譯和解釋性
Java編譯程序生成位元組碼(byte-code),而不是通常的機器碼。Java位元組碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平台。Java程序可以在任何實現了Java解釋程序和運行系統(run-time system)的系統上運行。
在一個解釋性的環境中,程序開發的標准「鏈接」階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的「編譯、鏈接和測試」形成鮮明對比的精巧的開發過程。
5、穩健性
Java原來是用作編寫消費類家用電子產品軟體的語言,所以它是被設計成寫高可靠和穩健軟體的。Java消除了某些編程錯誤,使得用它寫可靠軟體相當容易。
Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
6、安全性
Java的存儲分配模型是它防禦惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內幕和偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。
Java運行系統使用位元組碼驗證過程來保證裝載到網路上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預防惡意的小應用程序用它自己的版本來代替標准Java類。
7、可移植性
Java使得語言聲明不依賴於實現的方面。例如,Java顯式說明每個基本數據類型的大小和它的運算行為(這些數據類型由Java語法描述)。
Java環境本身對新的硬體平台和操作系統是可移植的。Java編譯程序也用Java編寫,而Java運行系統用ANSIC語言編寫。
8、高性能
Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者製作了「及時」編譯程序,它能在運行時把Java位元組碼翻譯成特定CPU(中央處理器)的機器代碼,也就是實現全編譯了。
Java位元組碼格式設計時考慮到這些「及時」編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。
9、多線程
在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:
1)、使用型構為Thread(Runnable)的構造子類將一個實現了Runnable介面的對象包裝成一個線程,
2)、從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。
10、動態性
Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能夠動態地被載入到運行環境,也可以通過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。
11、平台獨立性
Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件),然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。
F. java是什麼何運行java程序
java它不是軟體,這里給各位初學者們詳細解釋一下。簡單來說java它是個面向網路的程序設計語言,用來讓程序員創建應用程序,這些應用程序可以通過網路下載,而且可在任何計算平台上安全地運行。如果再加上萬維網和公司內部網體系,你將會擁有一個標準的網路計算環境,Java作為一個分布式的,面向對象的程序設計語言,可以讓位於任何地方的任何計算機應用網路上的應用程序。
如果在商業角度看待Java,Java是個時髦話。同不少已經有20年歷史的其他程序設計語言相比,Java吸收了計算機科學領域的各種最新成果,另外一方面,由於Java還比較年輕,它缺少諸如VisualBasic或C++那樣的豐富的編程工具的支持。
同C++一樣,Java是個面向對象的語言,這就意味著軟體可以以部件的形式編制,為了滿足某種任務,軟部件可以互相配合。運行Java,不必非得在網路環境中進行,Java同其他傳統的諸如COBOL或Basic這樣的程序設計語言一樣,可以創建獨立運行的應用程序。只不過Java對互聯網上的應用開發更拿手。
Java適宜於互聯網的開發應用,其中一個原因是它使用了虛擬機,虛擬機是個用來解釋Java指令的軟體包,可以讓Java在任何機器上運行,比如有運行在Mac或UNIX下的虛擬機軟體包。虛擬機並不是Java語言本身,它是個為特定機器編寫的解釋器軟體。Java的虛擬機策略就相當於世界語,這是個人造的國際語言,目的是使得不同語言之間的翻譯和溝通更加容易。
要稱作一個通用的計算機語言,Java是最適合不過的,這意味著它可以在所有的計算機上運行,(盡管需要為各種機器編寫Java虛擬機軟體),可以根據需要提供軟部件,並且具有內在的安全機制。
用Java編寫的操作系統,稱為JavaOS,是個基於語言的操作系統,它看起來似乎沒有機會來占據PC市場。但是它為MicrosoftWindows和MacOS未來的發展提供了線索。它也許將來會應用到各種儀器設備中,包括電視遙控器和溫控器。
基於網路的內容供應商對Java技術很感興趣,因為它增加了交互性和動畫功能,這是吸引觀眾的關鍵因素。對於軟體商來說,Java有希望可以讓人們採用租用軟體的方式,諸如字處理器或者電子表格軟體,而無需購買軟體,這就改變了目前的商業模式。