都說學Java比學C語言好,這兩個有什麼區別嗎?

橋南


java是面向對象編程語言,而java語言是從C語言衍生過來的,改了C語言中難以理解的多繼承、指針一些概念。C語言是一門面對過程、抽象化的語言,C語言也更基礎一些錢。

本人也是學的Java,java主要開發web應用以及安卓應用,而C語言主要用來開發一些比較基礎的軟件,一般底層都是C/C++編寫的,在當下Java語言應用也更廣


天上的雲地面的我


Java語言和C語言的關係

C語言和Unix起源貝爾實驗室,是為unix操作系統設計並實現的 。C++是完全兼容C的一門語言,具備面向對象特點的,使得C的領域從系統橫跨到應用的級別,覆蓋領域也更廣,C++嚴肅了C的優點,比如:面向過程和麵向對象特點,編程本質掌握度深;Java是由C++發展來的,又保留了C++的大部分內容,編程方式類似於C++。但是java又更清晰,規模較小,而且比較容易學習。

下面從各個角度看C/C++和Java的區別

指針:

C/C++有指針,Java沒有;指針操作容易出現錯誤,比如:指針懸空造成的系統崩潰,但是Java沒有指針就避免了操作失誤;

多重繼承:

多重繼承的意思就是一個類允許繼承多個父類,多重繼承的功能很強大。C++支持多重繼承,Java不支持多重繼承。可是多重繼承功能用起來比較複雜,編譯的時候實現起來不是很容易,Java這裡雖然不支持多重繼承,但是允許一個類實現多個接口;

數據類型:

Java是完全面向對象的語言 ,C是面向過程的。Java所有的數據和方法都是類的一部分。除了基本的數據類型以外,類型的數據都作為對象型數據,例如:對象型數據包括數組和字符串;C++是將函數和變量定義為全局的,然後調用函數和變量;此外Java取消了C/C++的結構和聯合;

自動內存管理:

Java會自動進行無用內存的操作,不需要再去刪除。C++要由程序釋放內存資源;

操作符重載:

操作符重載是C++的特徵,Java是不支持的。

預處理功能:

預處理器是為了程序員提供方便的,C/C++在編譯的時候都有一個預編譯階段,就是預處理器。Java也允許預處理,但是不支持預處理器的功能,要是想實現的話,需要引入import,和C++的預處理器功能是差不多的;

缺省函數參數:

Java沒有函數,而C中代碼阻止在函數中,函數可以訪問程序的全局變量。C++增加了類提供了算法。這個算法是類和函數的相連。

字符串:

C/C++不支持字符串變量,在C和C++程序要使用Null種植表示代表字符的結束。在Java中字符串是用類的對象來實現的,也就是String和StringBuffer;

類型轉換:

在C/C++中有時候出現數據類型的隱含專函,Java不支持自動強制類型轉換,如果有需要,須由 程序顯式進行強制類型轉換;

上面是他們的區別,下面放兩個學習線路圖,大家也可以參考他們的學習步驟:

上面這個是Java的學習線路圖,一共五個階段,並且包括每個的知識。

相對來說各有各的好處和優點,C/C++雖然會有些難度,但是學完之後你再去上手java非常的容易,很多的編程語言在早期的時候,開發包版本要幾個月就學習新的技術,但是C/C++語言是最早的高級語言,版本更新就沒有那麼快了,所以不用因為版本問題需要一直學習,後期的話壓力很小。下面看一下層級:

程序性能排名:彙編>系統級語言>應用級語言>腳本級語言

程序可讀性:腳本級語言>應用級語言>系統及語言>彙編

希望這篇回答給糾結語言的人清晰的看到他們的區別。這樣的區別你瞭解後,選擇一門入手,翻回中間的學習線路圖,就可以開始你的學習之旅了。


啊窩額


C語言和Java語言一樣都是一種編程語言,它們之間的主要區別可以概括為一句話:C語言適合去操作硬件,Java適合去操作軟件。這裡可以先用一個形象的比喻來說明。

一個老闆創業了,他創造了屬於自己的公司。公司成立之初就他一個人,所以老闆自己得擔負起技術研發、財務管理、市場營銷等等,就是啥事兒都要老闆自己幹,遇到啥問題都要自己想辦法解決,老闆真是有操不完的心啊!

相反,一個員工入職了一家超大型公司。這家公司已經創立很長時間了,在技術上、市場上、財務上等都已經建立了一套非常成熟的標準,包括公司的各方面的管理也都建立起了非常成熟的規章制度。對於這個員工而言,他進去後不需要操心亂七八糟的事兒,遇到問題了直接按照公司的相關標準流程來解決。至於公司這些流程標準是怎麼實現的,這個員工根本無需關心,只需要拿來就用。

那麼C語言與Java的區別就是這個老闆跟這個員工的區別。C語言就像這個老闆,使用C語言編程時遇到什麼問題、遇到什麼細節都要程序員自己去考慮怎麼解決,因為沒有現成的解決方案或者很少有現成的解決方案。Java就像這個員工,遇到啥問題或者遇到啥細節問題,沒關係,肯定有前人已經解決這個問題,而且會有大量的相似的解決方案,Java程序員直接拿來就能用,或者拿來修修補補就能用。

而且,編程時越是接近計算機的底層硬件,編程需要考慮的細節就越多。C語言就是接近計算機底層的硬件的編程語言,所以用C語言編程時細節真是考慮的很多。


分享到:


相關文章: