一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java語言的特點(Java語言怎么運行)

java語言的特點(Java語言怎么運行)

2023-08-06 04:36未知服務器之家 Java教程

java語言的特點 Java言語是一門優秀的編程言語,它之所以使用廣泛,受到群眾的歡迎。是因為它有很多杰出的特色,其間最主要的特色有以下幾個。 1.簡單性 Java言語是一種相對簡單的編程言語,它經過供給最根本的辦法完成指定

java語言的特點

Java言語是一門優秀的編程言語,它之所以使用廣泛,受到群眾的歡迎。是因為它有很多杰出的特色,其間最主要的特色有以下幾個。
1.簡單性
Java言語是一種相對簡單的編程言語,它經過供給最根本的辦法完成指定的使命。程序員只需了解一些根本的概念,就能夠用它編寫出適用于各種情況的使用程序。Java摒棄了C++中很難了解的運算符重載、多重承繼等概念;特別是Java言語使用引證代替指針,并供給了自動的垃圾收回機制,處理了程序員需求辦理內存的問題。
2.面向對象
Java言語供給了類、接口和承繼等原語,只支撐類之間的單承繼,但支撐接口之間的多承繼,并支撐類與接口之間的實現機制(關鍵字為implements)。Java言語全面支撐動態綁定,而C++言語只對虛函數使用動態綁定。總歸,Java言語是一個純粹的面向對象的程序設計言語。
面向對象是當今干流的程序設計思維,Java是一種完全面向對象編程的言語,因而有必要了解面向對象才能夠編寫Java程序。面向對象的程序其核心是由類和對象組成,經過類和對象描繪現實事物之間的聯絡。這種面向對象的辦法更有利于人們對雜亂程序的了解、剖析、設計、編寫和維護。java語言的特點(Java語言怎么運行)
3.安全性
Java言語安全可靠,例如,Java的存儲分配模型能夠防御惡意代碼攻擊。此外,Java沒有指針,因而外界不能經過偽造指針指向存儲器。更重要的是,Java編譯器在編譯程序時,不顯現存儲組織決策,程序員不能經過檢查聲明猜測出類的實際存儲組織。Java程序中的存儲是在運行時由Java解釋程序決定的。
4.跨渠道性
Java言語經過JVM(JavaVirtualMachine,Java虛擬機)和字節碼實現跨渠道。Java程序由Java編譯器編譯成為字節碼文件(.class),JVM中的Java解釋器會將.class文件翻譯成所在渠道上的機器碼文件,再履行對應的機器碼文件即可。Java程序只需“一次編寫,就可到處運行”。
5.支撐多線程
Java言語支撐多線程。多線程能夠簡單了解為程序中多個使命能夠并發履行,然后顯著提高程序的履行功率。
6.散布性
Java是散布式言語,既支撐各種層次的網絡連接,又能夠經過Socket類支撐可靠的流(Stream)網絡連接。用戶能夠產生散布式的客戶機和服務器,在這個過程中,網絡編程軟件使用的散布式運載工具。

Java語言怎么運行

1、Java程序從源文件創立到程序運轉要經過兩大進程:1、源文件由編譯器編譯成字節碼(ByteCode)2、字節碼由java虛擬機解說運轉。由于java程序既要編譯一起也要經過JVM的解說運轉,所以說Java被稱為半解說言語(”semi-interpreted”language)。
第一步(編譯):創立完源文件之后,程序會先被編譯為.class文件。Java編譯一個類時,假如這個類所依靠的類還沒有被編譯,編譯器就會先編譯這個被依靠的類,然后引證,不然直接引證,這個有點像make。假如java編譯器在指定目錄下找不到該類所其依靠的類的.class文件或者.java源文件的話,編譯器話報“cantfindsymbol”的過錯。
編譯后的字節碼文件格局首要分為兩部分:常量池和方法字節碼。常量池記錄的是代碼呈現過的一切token(類名,成員變量名等等)以及符號引證(方法引證,成員變量引證等等);方法字節堆放的是類中各個方法的字節碼。
第二步(運轉):java類運轉的進程大概可分為兩個進程:1、類的加載2、類的履行。需求闡明的是:JVM首要在程序第一次自動運用類的時分,才會去加載該類。也就是說,JVM并不是在一開端就把一個程序就一切的類都加載到內存中,而是到不得不必的時分才把它加載進來,并且只加載一次。java語言的特點(Java語言怎么運行)
2、下面是程序運轉的詳細進程:
在編譯好java程序得到Main.class文件后,在指令行上敲javaMain。體系就會發動一個jvm進程,jvm進程從classpath途徑中找到一個名為Main.class的二進制文件,將Main的類信息加載到運轉時數據區的方法區內,這個進程叫做Main類的加載。
然后JVM找到Main的主函數入口,開端履行main函數。
main函數的第一條指令是Animalanimal=newAnimal(“Puppy”)就是讓JVM創立一個Animal目標,可是這時分方法區中沒有Animal類的信息,所以JVM立刻加載Animal類,把Animal類的類型信息放到方法區中。
加載完Animal類之后,Java虛擬機做的第一件事情就是在堆區中為一個新的Animal實例分配內存,然后調用結構函數初始化Animal實例,這個Animal實例持有著指向方法區的Animal類的類型信息(其中包含有方法表,java動態綁定的底層完成)的引證。
當運用animal.printName()的時分,JVM依據animal引證找到Animal目標,然后依據Animal目標持有的引證定位到方法區中Animal類的類型信息的方法表,取得printName()函數的字節碼的地址。
開端運轉printName()函數。
Java編譯原理:
Java虛擬機(JVM)是可運轉Java代碼的設想計算機。只需依據JVM標準描繪將解說器移植到特定的計算機上,就能確保經過編譯的任何Java代碼能夠在該體系上運轉。
一.Java源文件的編譯、下載、解說和履行
Java應用程序的開發周期包含編譯、下載、解說和履行幾個部分。Java編譯程序將Java源程序翻譯為JVM可履行代碼?字節碼。這一編譯進程同C/C++的編譯有些不同。當C編譯器編譯生成一個目標的代碼時,該代碼是為在某一特定硬件渠道運轉而發生的。因此,在編譯進程中,編譯程序經過查表將一切對符號的引證轉換為特定的內存偏移量,以確保程序運轉。Java編譯器卻不將對變量和方法的引證編譯為數值引證,也不確認程序履行進程中的內存布局,而是將這些符號引證信息保留在字節碼中,由解說器在運轉進程中創立內存布局,然后再經過查表來確認一個方法地點的地址。這樣就有用的確保了Java的可移植性和安全性。
運轉JVM字節碼的作業是由解說器來完成的。解說履行進程分三部進行:代碼的裝入、代碼的校驗和代碼的履行。裝入代碼的作業由”類裝載器”(classloader)完成。類裝載器擔任裝入運轉一個程序需求的一切代碼,這也包含程序代碼中的類所繼承的類和被其調用的類。當類裝載器裝入一個類時,該類被放在自己的姓名空間中。除了經過符號引證自己姓名空間以外的類,類之間沒有其他方法可以影響其他類。在本臺計算機上的一切類都在同一地址空間內,而一切從外部引入的類,都有一個自己獨立的姓名空間。這使得本地類經過共享相同的姓名空間取得較高的運轉功率,一起又確保它們與從外部引入的類不會相互影響。當裝入了運轉程序需求的一切類后,解說器便可確認整個可履行程序的內存布局。解說器為符號引證同特定的地址空間樹立對應聯系及查詢表。經過在這一階段確認代碼的內存布局,Java很好地解決了由超類改動而使子類潰散的問題,一起也避免了代碼對地址的不合法訪問。
隨后,被裝入的代碼由字節碼校驗器進行檢查。校驗器可發現操作數棧溢出,不合法數據類型轉化等多種過錯。經過校驗后,代碼便開端履行了。
Java字節碼的履行有兩種方法:
1.即時編譯方法:解說器先將字節碼編譯成機器碼,然后再履行該機器碼。
2.解說履行方法:解說器經過每次解說并履行一小段代碼來完成Java字節碼程序的一切操作。
通常選用的是第二種方法。由于JVM標準描繪具有足夠的靈活性,這使得將字節碼翻譯為機器代碼的作業
具有較高的功率。對于那些對運轉速度要求較高的應用程序,解說器可將Java字節碼即時編譯為機器碼,從而很好地確保了Java代碼的可移植性和高性能。
進程:1、編寫java源文件:可用記事本等相關的文本文檔寫源代碼,也可運用java開發集成環境,如:JCreatorLEJCreatorproeclipseMyeclipse等相關的集成開發工具。
2、編譯java源文件生成class文件:手寫的源文件(即不運用開發工具所寫的),在DOS中運用javac完整的java源文件命來編譯使其生成class文件。注意:寫源文件時,必定要注意存檔。修改源文件也是一樣需求存檔。
3、運轉class文件:在dos中輸入所寫的源文件姓名(不需求寫后綴名-即.class嚴厲區別大小寫編譯不需求區別大小寫)。
如運用開發工具所寫:請參照相對應的手冊來點擊開發工具中的按鈕來編譯運轉。
java言語的編譯指令就是javac在dos中輸入javac可見到這個指令的詳細介紹。其他指令也是一樣。至于每一步的成果是什么,在dos中運轉請關注dos運轉后的變化。在開發工具中運轉請關注開發工具中的改動。不同的程序會發生不同的成果。如:
publicclassHello
{
publicstaticvoidmain(String[]args)
{
System.out.println(“Hellojava”)
}
}
這段代碼,在dos中運轉后會呈現hellojava這句話。用開發工具所寫,請關注開發工具的界面。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一二在线观看视频网站 | 日韩高清成人毛片不卡 | 国产精品天天看特色大片不卡 | 天天色踪合 | 好男人社区www影院在线观看 | 狠狠干奇米 | 国内自拍网红在综合图区 | 性做久久久久免费观看 | 免费看1级伦理 | 好大用力深一点女公交车 | 亚州综合网 | 草莓视频榴莲视频 | 色噜噜亚洲男人的天堂www | 九哥草逼网 | 午夜精品久久久久久 | 性派对videofreeparty | 色五婷婷| 国产免费小视频在线观看 | 国产精品女同久久免费观看 | 色婷婷激婷婷深爱五月老司机 | www.片| 欧美 亚洲 综合 卡通 另类 区 | 亚洲高清中文字幕精品不卡 | 日本又大又硬又粗的视频 | 亚洲成人网导航 | xxxx泡妞中国| 深夜免费网站 | a毛片久久免费观看 | 国产亚洲一欧美一区二区三区 | 超碰97 | 疯狂伦交1一6小说 | 6080欧美一区二区三区四区 | 日本久久热 | 日本视频免费看 | 亚洲人尿尿 | 国产盗摄女厕美女嘘嘘 | 国产成人精品本亚洲 | www亚洲视频 | 视频一区二区国产无限在线观看 | 果冻传媒在线完整免费观 | free性丰满hd性欧美人体 |