-
1 # 漫剪輯z掌控十道
-
2 # 哎呦i50
JAVA用在WEB開發上用得比較多,不過很多軟體現在也都開始用JAVA了. 但做裝置級的,比如說電信級的開發,協議的開發,還是用C++.JAVA還是慢.而且JAVA的特長也不在此. 學好C++其實就行了,但指的可不是VC啊.要學標準C++.
-
3 # 玉軒軒
先分析一下就知道了。
1.Java是簡單的
Java與C++極為相似,但卻簡單得多。高階程式語言的所有特性中,不是絕對需要的都已刪去了。例如,Java沒有算符過載、標題檔案、預處理、指標運算、結構、聯合、多維陣列、模板及隱式型別變換。如果你知道一點C、C++或Pascal,你很快就會駕馭Java。這裡是一個簡單的JavaHelloWorld程式: public class HelloInternet{ public static void main(String args []){ System.out.println("HelloIn-ternet!"); } }
2.Java是面向物件的
Java是一種面向物件的程式語言。除了簡單的型別,如數字和布林運算元之外,Java中的大部分都是物件。
正如任何面向物件的語言一樣,Java程式碼也按類組織。每個類定義一組規定物件行為的方法。一個類可以繼承另一個類的行為。在類的根層次上,通常是類物件。
Java支援單繼承類層次結構。這就是說,每個類一次只能繼承一個別的類。有些語言允許多繼承性,但這可能造成混亂,使語言不必要地複雜化。例如,難以想像,一個物件會繼承兩個完全不同的類的行為。
Java還支援摘要類的介面。這允許程式設計人員先定義介面的方法,而不必急於馬上確定方法的實現。一個類可以施行多個介面,從而具有真正多繼承性的許多優點。一個物件也可實施任意數量的介面。Java介面與IDL介面極其相似。很容易建立IDLJ編譯器。這就是說,Java可用於CORBA物件系統來建立分散式物件系統。鑑於在許多計算機系統中都採用IDL介面和CORBA物件系統,這種相容性是重要的。
3.Java是靜態型別的
在一個Java程式中,必須定義所用物件(數字、字元、陣列等)的型別。這有助於程式設計人員很快發現問題,因為當程式編譯時可以檢測型別錯誤。
不過,Java系統中的物件也有動態型別。要求一個物件為動態型別往往是可能的,所以程式設計人員寫的程式可以對不同型別的物件做不同的事。
4.Java是編譯型的
當執行Java程式時,它首先被編譯成位元組程式碼。位元組程式碼非常類似於機器指令,所以Java程式非常高效。然而,位元組程式碼並不專對一種特定的機器,所以Java程式無需重新編譯便可在眾多不同的計算機上執行。
Java源程式被編譯成類檔案,它相當於程式的位元組程式碼表現。在一個Java類檔案中,所有對方法及例項變數的參照均按名進行,並在第一次執行程式碼時加以分辨。這使得程式碼更通用,更不易受修改的影響,而仍具高效。 5.Java是體系結構中立的
Java語言對每種計算機都一樣。比如,簡單的型別都是不變的:整數總是32位,長整數總是64位。令人奇怪的是,諸如C及C++等時髦的程式語言卻不是這樣。由於這些語言定義如此自由,每種編譯器及開發環境便各有不同了,這使程式的移植成為討厭的問題。Java程式的移植卻很容易,而且不需要進行重新編譯。
6.Java是健全的
Java程式不可能造成計算機崩潰。Java系統仔細檢測對記憶體的每次訪問,確認它是合法的,而且不致引起任何問題。
不過,即使Java程式也可能有錯誤。如果出現某種出乎意料之事,程式不會崩潰,而把該例外拋棄。程式會發現這類例外,並加以處理。
傳統的程式可以訪問計算機的全部記憶體。程式可能(無意識地)修改記憶體中的任何值,這就會造成問題。Java程式只能訪問記憶體中允許它們訪問的那些部分,所以Java程式不可能修改不擬修改的值。
7.Java是小巧的
由於Java的設計是要在小的計算機上執行,作為一種程式語言來說其系統是相對較小的。它能有效地在4MB以上RAM的PC機上執行。Java翻譯器只佔用幾百KB。這種翻譯器對Java的平臺無關性和可移植性是可靠的。
由於Java很小,它對記憶體很小的計算機,如基於Java的PC機,以及電視機、烤箱、電話機及家用計算機等,是很理想的。
8.Java是多執行緒的
Java程式可以執行一個以上的執行緒。比如,它可以在一個執行緒中完成某一耗時的計算,而其它執行緒與使用者進行互動對話。所以使用者不必停止工作,等待Java程式完成耗時的計算。
在多執行緒環境中的程式設計通常是困難的,因為許多東西可能同時出現。但是,Java提供了易於使用的同步特性,使程式設計更為方便。
Java執行緒通常被對映為實際的作業系統執行緒,只要底層作業系統支援這種對映。因此,用Java寫的應用程式可說是“MP熱”。這就是說,如果它們在多處理器機器上執行,它們更將表現不凡。 9.Java是可收集無用的儲存單元的
用C及C++寫軟體的程式設計人員必須仔細跟蹤所用的記憶體塊。當一個塊不再使用時,他們務必讓程式釋放它,從而方可再用。在大的專案中,這可能很困難,並往往成為出錯和記憶體不足的根源。
在Java的情況下,程式設計人員不必為記憶體管理操心。Java系統有一個叫做“無用單元收集器”的內建程式,它掃描記憶體,並自動釋放那些不再使用的記憶體塊。
10.Java是快速的
Java比典型的指令碼語言大為有效,但它比C慢20倍。這對大多數應用是可接受的。
不久的將來,程式碼生成器就可供利用了,這將使Java程式幾近於用C或C++編寫的程式那麼快。
11.Java是安全的
Java程式沒有指標,而且象這樣的位元組程式碼程式強在型別上,所以在執行之前它可能驗證Java程式。被驗證的Java程式得以保證不突破Java語言的任何限制,而且可以安全地執行。Java位元組程式碼驗證被Web瀏覽器用來確保小程式不含病毒。
12.Java是可擴充套件的
Java程式可與用其它語言編寫的現存程式庫連線。由於Java資料結構與C的資料結構的型別極為相似,這是相當方便的。最大的問題在於,現有多執行緒程式庫為數不多。
Java程式可以宣告某些方法是內部的,然後,把這些內部方法對映成軟體庫所定義的功能,從而動態地連結到虛擬機器。
-
4 # 小角和小沒
程式語言基本都是相通的,掌握一種再學另外的相對簡單了,初學的話java,網上靠譜的學習影片學一遍,找個公司實習,在實踐中學
-
5 # 夢迴故里歸來
首先作為初學者學習任何一個語言都是可以的,程式設計這種東西講究一通百通。一旦你掌握了一門語言,再去學其它語言,你會發現很多都是類似的,都可以借鑑的,而語言的發展確實也是吸收了其他語言的優點。
說下c++和java的比較,c++和c很類似,但是比c語言更方便,java底層是由c語言編寫的。相對來講,java比c++更容易入門。
兩者應用的方向不太一樣,c++因為效能比java高效,所以它主要總在對效能要求高的環境裡面,比如在網路傳輸或者遊戲程式設計,甚至作業系統方面,c++ 更佔有優勢。但是在web開發,桌面應用,手機應用方面,java更多人使用。
輪子數量經常用來衡量一個語言的廣泛度。從這點來說,java的輪子的數量是c++無法比擬的,因此,java社群的活躍度更高,使用java開發的人更多。
最後,選擇哪個語言開始真的不是那麼重要,真正你要做的是立刻開始並持之以恆的堅持,若干年後你會發現,你不會過多遺憾選擇了什麼,而是遺憾沒有更早地開始。
-
6 # 道以致遠
作為一位從業者,我想給這位初學者一點小建議。
現在想學習程式設計,首先說明你眼光不錯,感受到了這個時代變革的節點所在。因為未來時代將是人類和一個新物種共存的時代,這個新物種就是智慧XX,所以現在開始學習一些驅動它們的語言是明智的。
對於你選擇的這兩種語言,我的建議是都可以,只是需要根據你自己個人的情況來選擇。這兩種語言特點類似,從某種程度上說Java語言脫胎於C++,Java相對來說更加接近人的思維邏輯,但是它離機器可能就更遠一點,所以Java語言一般都用在一些具體應用程式的編寫上,真正靠近機器的底層程式還是用C++比較多一些,而且效率上C++是當仁不讓的。
為什麼說你要根據你自己的情況去學習呢?首先你得明確你得目標,你學習程式語言是為了儘快找份工作就業,還是想致力於軟體行業有長足的發展,目前沒有太多生活的壓力。這很重要,如果你只是想接著學習儘快就業,那麼選擇Java要好一些,因為它是目前大部分公司主流的應用程式語言,而且經過多年發展有了足夠多的方便編寫的包使用,不需要你對底層有太多瞭解也能夠程式設計序。而且Java語言也是各大院校計算機專業的教課語言,特別是面向物件程式設計相關的。如果你是非計算機專業畢業的,想進入這個行業儘快就業,選Java吧。
如果你有志於在軟體行業有所成就,不急於儘快就業的話,我建議你從C/C++學起,理由只有一條它更靠近機器,能夠讓你有更多的機會去探究和理解計算機的原理和作業系統相關內容,能夠直接跟作業系統對話,能夠直接操控CPU和記憶體,雖然開始學起來很難理解,有太多的東西需要一點點搬磚填坑,但是你趟過了像計算機結構原理,作業系統,特別是CPU排程,記憶體管理,輸入/輸出模型等這些山頭之後,你會覺得C/C++簡直就是你的瑞士軍刀,以後遇到任何離機器遠點的高階語言,只是一套語法問題而已,根本不是事兒。
所以初學,先認清楚自己目前的需求,然後在選擇,現在想Java,C#等高階語言,培訓兩個月就能上手,半年就能找工作,結果就是隻會砌面牆的工人,因為你自己都不知道自己在給什麼樣的一個東西寫指令程式碼。 從Java開始學習的人,一般都享受於現成的各種工具包,不再有動力去深挖底層,結果就是天天追新包,最後被後來者替掉。
另外,面對一個新的技術革命到來的一個時間節點上,為了程式設計可能更多的更靠近硬體,比如感測器,機器人,各類智慧晶片,各種控制裝置,這些可能是更大的應用市場。所以,有志於從事這個行業現在有沒有太大生活壓力人,建議多學學底層的編碼技術,特別是跟硬體和作業系統相關的,高階語言很多東西也在重構,比如Java 9 就在向著適應嵌入式,模組化,更加小容量晶片系統發展。
總結,時代在變,不管是C/C++還是Java語言,要學習必須將底層硬體結構,作業系統,輸入輸出以及衍生的網路通訊技術知識搞紮實了,更靠近底層的語言,你學這些內容的機會就越多,不是說Java不能學這些,只是它中間還隔了個虛擬機器,你得先理解它,然後再去理解底層,路有點繞,學起來會增加難度。
回覆列表
作為一個一線安卓開發工程師,可以負責人的告訴你,想要快速上手開發專案的話,java肯定是首選,書籍的話推薦看一遍瘋狂java講義就夠了,然後網上找一個spring專案練個手(如果有時間可以在學下mysql),這些準備工作搞定後,建議出去找個實習,這裡推薦一本個人感覺是很優質的面試寶典:java程式設計師面試寶典,基本ok,如果還沒ok你再找我。