本文目錄一覽:
- 1、Java語言的特點
- 2、Java內存遺漏是什麼原因?
- 3、1.Java有沒有指標? 2.Java如何處理記憶體遺漏?
- 4、java學習中,能看懂代碼,但是自己寫不出來怎麼辦
- 5、Java語言中 的符號不存在,不知道是我遺漏了什麼?
Java語言的特點
Java 語言主要有以下特點:
1.強類型
Java 語言是一種強類型語言,強類型能約束程序員必須遵守更多的編程規定,也能讓編譯器檢測出程序中盡可
能多的錯誤。
2.編譯和解釋
Java 語言是一種高級編程語言,用Java 語言編寫的源程序在計算機上運行需經過編譯和解釋執行兩個嚴格區分
的階段。Java 語言的編譯程序先將Java 源程序翻譯成機器無關的位元組碼(bytecode),不是通常的編譯程序將源程
序翻譯成計算機的機器代碼。運行時,Java 的運行系統和鏈接需要執行的類,並作必要的優化後,解釋執行位元組碼
程序。
3.自動無用內存回收功能
Java 語言具有自動無用內存回收功能,程序可以按需使用內存,但不需要對無用內存顯式地撤銷分配。系統有
一個垃圾收集器(garbage collector),自動收集程序不再使用的內存。這樣,能避免顯式的撤銷分配所引起的安全
問題。Java 語言不再含有任何不安全的語言成分。例如,沒有指針,數組元素都要檢查下標是否越界。
4.面向對象
面向對象是程序員編寫大型程序、有效控制程序複雜性的重要手段。Java 語言在面向對象方面,比C++更「純」,
它的所有數據類型,包括布爾類型、整形、字元型等,都有相應的類,程序可完全基於對象編寫。
面向對象語言主要有封裝性、繼承性和多態性三個特點。封裝就是將實現細節隱藏起來,只給出如何使用的信
息。數據及數據上的操作用類封裝,對象是類的實例,外界使用對象中的數據及可用的操作受到一定的限制。繼承
體現眾多的一種層次對象的特性,下一層的類可從上一層的類繼承定義,從上一層類派生的類的對象能繼承上一層
對象的特性,同時可以改變和擴充一些特性,以適應其自身的特點。多態性的意義主要體現在邏輯上相同的不同層
次上的操作,使用相同的操作名,根據具體對象,能自動選擇對應的操作。Java 語言很實用地實現了這三種特性。
5.與平台無關
與平台無關是對程序可移植性最直接最有效的支持。Java 語言的設計者在設計時重點考慮了Java 程序的可移植
性,採用多種機制來保證可移植性,其中最主要的是定義了一種虛擬機(virtual machine),以及虛擬機使用的java
位元組碼。在任何平台上,Java 源程序被Java 編譯器編譯成虛擬機能夠識別的位元組碼。這樣,只要有Java 虛擬機的
平台,就能解釋執行java 位元組碼程序,從而實現Java 與平台無關。另外,Java 語言還採用基於國際標準的數據類
型,在任何平台上,同上種數據類型是一致的。例如,用int 標識32 位二進位位(bit)整型數據,那麼無論在哪一
台計算機上,Java 的int 數據都是32 位整數。相反,C 語言會隨著硬軟體平台的改變,用int 標識的整數位數也可
能不全相同。
Java 語言提高可移植性的代價是降低程序的執行效率。出於java 語言也是一種解釋執行的語言,Java 程序的
執行速度與C 程序的執行速度有較大的差別。不過,為了盡量彌補執行效率低的缺陷,java 的位元組碼在設計上非常
接近現代計算機的機器碼,這有助於提高解釋執行的速度。
6.安全性
Java 是在網路環境中使用的編程語言,必須考慮安全性問題,主要有以下兩個方面:
設計的安全防範:Java 語言沒有指針,避免程序因為指針使用不當,訪問不應該訪問的內存空間;提供數組元
素上標檢測機制,禁止程序越界訪問內存;提供內存自動回收機制,避免程序遺漏或重複釋放內存。
運行安全檢查:為了防止位元組碼程序可能被非法改動,解釋執行前,先對位元組碼程序作檢查,防止網路「黑客」
對位元組碼程序已作了惡意改動,達到破壞系統的目的。最後,瀏覽器限制下載的小應用程序不允許訪問本地文件,
避免小應用程序破壞本地文件。
7.分散式計算
Java 語言支持客戶機/伺服器計算模式。Java 程序能利用URL 對象,能訪問網路上的對象,如同訪問本地的文
件一樣,實現數據分布。另外,Java 的客戶機/伺服器模式也可以把計算從伺服器分散到客戶機端,實現操作分布。
8.多線程
線程是比進程更小的一種可並發執行的單位,每個進程都有自己獨立的內存空間和其他資源,當進程切換時需
要進行數據和資源的保護與恢復。若干協同工作的線程可以共享內存空間和資源,線程切換不需要數據的保護與恢
復。
Java內存遺漏是什麼原因?
此人很懶,沒有任何問題描述,缺乏對回答者的起碼尊敬,並且由此可以推斷此人對於工作和事業缺乏責任心。
如果不知道怎樣提問,可以看看國外的郵件列表,如果你打算別人花十分鐘來幫你解決問題,你至少也要花十分鐘把你的問題描述清楚。
問題補充:
看你還有點誠意,就點拔一下吧:
Java中所有的對象都是可達的,不可達的對象均會在未來的某一時刻被回收。所以在Java代碼中出現的內存遺漏,就是指系統中反覆創建對象,並且存在對該對象的引用,但是該對象又沒有被使用。打個比方,在一個Web系統中,如果用戶每次登錄,系統都記錄該用戶信息並且存放到ServletContext對象中,但用戶註銷或退出時,沒有將該用戶信息從ServletContext中移除,那麼這個對象可以引用,但實際上沒有使用價值,也不會再被使用,所以這個對象佔用的內存就可以理解為「內存泄漏」。
1.Java有沒有指標? 2.Java如何處理記憶體遺漏?
1.自然是沒有指針的,但存在一個引用的東西。和c++很不同,不需要顯示釋放內存,因為是垃圾收集器的工作。
2.有垃圾收集器可以回收不再需要的對象,所以絕大部分情況不會又內存泄露問題。當然,如果代碼處理不當也會出現無用內存得不到釋放的情況。具體回收的演算法,不同虛擬機有不同實現。
java學習中,能看懂代碼,但是自己寫不出來怎麼辦
寫不出來有兩種情況 :
一種是有思路,但是你不熟悉該語言的語法結構,所以不會寫;
另一種情況是:懂語法結構,但是拋開別人的代碼你就沒有思路了;
當然也有可能上述兩種情況的結合體:既沒有思路也不熟悉語法結構。
如果是第一種的話,多看一下基礎知識,照著書本聯繫寫代碼,這種情況是最好解決的,想深入了解,就看源碼。
如果是第二種的話,我覺得就需要積累了,就是在看別人的代碼時,要理解別人解決問題的思路,然後多歸納整理,然後也需要手動敲代碼來鞏固。第二種情況 說實話我也經常發生,,能看懂別人的代碼,但是自己寫的時候就會有遺漏。我覺這個一個是多積累,一個是多思考。
純手打,累死我了
Java語言中 的符號不存在,不知道是我遺漏了什麼?
你好,報錯的原因是Student類中沒有對應的可訪問的成員變數。
圖中定義的這些變數不是類的成員變數,而只是方法中的局部變數。
建議先複習一下變數的作用域,以及訪問方式等。
如果有幫助到你,請點擊採納。
我解答的大部分是軟體開發新人遇到的問題,如果有興趣可以關注我。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185438.html