語言和 Java的主要區別:面向過程/面向對象、編譯型/混合型、不同的應用場景。只要閱讀二者的入門資料就清楚了。
時間足夠的話,先學C再學Java;時間不夠直接上 Java。
一個合格的程序員當然是要會C語言的,不過真正必須用到C語言的領域主要是嵌入式開發和操作系統等偏底層的開發。我們所提到的開發場景(Web開發、移動開發)并不是C語言的強項。而選擇 Java 的話,首先要把這門編程語言的基礎打牢,了解面向對象編程的基本思想。然后選擇 Java 的其中一個應用領域繼續深入學習,比如 Web 后臺或者安卓開發。
Web開發,即我們所說的“做網站”。網站開發分前端和后臺,這兩個方向精通其一即可。簡單粗暴地理解,前端是呈現給用戶的網頁界面以及交互操作,運行在用戶的瀏覽器上;而后臺負責存取和處理數據,運行在服務器上。前端和 Java 沒有多大關系,需要學習的是 HTML、CSS 和 JavaScript。學完 JavaScript 基礎之后,再上手一種前端框架,Vue、React、Angular 都可。后臺的話,編程語言可選 PHP 或者 Java。選擇 Java 的話,就必須掌握一種主流的 Java Web 框架,著名的比如 Spring MVC。后臺開發還要熟悉數據庫。
移動開發,即我們說的“做手機APP”。安卓用 Java 或 Kotlin,iOS 用 Swift 或 Objective-C。選擇安卓開發或 iOS 開發的學習資料來看,邊看邊練就好了。
至于C#,它是 Java 的競爭對手,是微軟的 .NET 技術棧中最重要的編程語言,可以用來開發 Windows 平臺的應用軟件Winform/WPF/UWP、網站后臺、3D游戲開發(Unity)。鑒于微軟的技術棧在國內互聯網行業并不是主流,所以 C# 的生存空間比 Java 小。
編程開發靠自學完全沒有問題,網上的學習資源也非常豐富,唯一的不足是“摸著石頭過河”,常常要花費不少時間去琢磨嘗試。最常用的學習方法是看相關的書籍和視頻課程,在學習的最初階段,我更建議你找些免費的慕課視頻看一看,國內的可以去慕課網、網易云課堂、中國大學MOOC、騰訊課堂、百度傳課這些平臺找。
至于書籍推薦嘛,我到時候再更哈。之前收藏了不少編程開發這方面的PDF電子書,一直都懶得整理~
最后,光記住知識點是不夠的,一定要多上手練習,多敲代碼。
想要在程序員生涯內有更高的成就的話,最最重要的是盡可能的提升自己的編程能力,并且,與其想著怎么去提升,不如從現在開始動手動腦,如果對于C/C++感興趣的話,可以關注+私信小編【編程交流】有一些視頻希望可以幫助到你,學習不怕從零開始,就怕從不開始。
些人會說語言學到最后不都差不多嗎?其實可以這樣講,也可以不這樣講。雖然每種語言的表達能力大部分是重合的,只是語法表現形式不一樣,但是由于歷史發展的原因,每種語言形成了自己的支撐環境,所以都有其主要的適用范圍。
C、C++、Python和Java四種是通用編程語言,JavaScript和PHP算是Web環境的專用編程語言。
由于其底層操作特性和歷史的積累,在嵌入式領域是當之無愧的王者。
是一種支持最廣泛編程范式的復雜語言,在高級語言當中,處理運行速度是最快的,大部分的游戲軟件,系統都是由C++來編寫的。
作為一種靈活的輕便的通用型腳本語言,使用范圍比較廣,從應用軟件到Web開發都有它的身影,由于其解釋語言的特點,比較適合輕量級或原型開發;
Java由于其跨平臺可移植性,在Web開發領域大放異彩,特別是在企業級Web開發,同時由于Android系統采用Java來開發應用程序,所以也隨著Android的發展而應用越發廣泛;
JavaScript語言由于其是瀏覽器內置的腳本語言,是Web前端開發的主流,近年來由于google的V8引擎開源,出現了Node.js之類JavaScript后臺開發框架,把JavaScript的應用領域擴展到了Web后臺。
獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁;還可以執行編譯后代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
理清不同語言間主要語法特性的差異,才能更好的在合適的領域或場景下去應用合適的編程語言,以滿足我們所面對的需求。這六種語言都是從C語言發展而來,所以它們的語法都比較像C語言,下面我就主要語法特性對各個語言做一個對比。
1、常量定義
C:#define TEST 0
C++:#define TEST 0
或者
const test = 0;
Python:test = 0
C#:不支持
PHP:define('test', 1);
Java:final int test = 0;
分析:JavaScript不支持常量,C、C++都用特有的預定義宏,PHP用特殊的define語法,其它的都用定義不變變量的方式。
2、變量定義
C:int test = 0;
C++:int test = 0;
Python:test = 0
JavaScript:val test = 0;
PHP:$test = 0;
Java:int test = 0;
分析:這個最基本的都支持了。
3、函數定義
C:int test(int param){}
C++:int test(int param){}
Python:def test(param):
JavaScript:function test(param){}
PHP:function test($param){}
Java:public class test{
public int test(int param){} }
分析:這個也是最基本的了,只是Java比較特殊,不支持定義類之外的函數。
4、類定義(含繼承)
C:不支持
C++:class test2: public test1{}
Python:class test2(test1):
JavaScript:function test2(){}
test2.prototype =inherit(test1.prototype){}
PHP:class test2 extend test1{}
Java:class test2 extends test1{}
分析:C由于是傳統面向過程的語言不支持類,其他的都支持了,只是JavaScript的類模型比較特殊,把函數作為類來使用。
5、對象定義
C:不支持
C++:test2 obj = new test2();
Python:obj = test2()
JavaScript:var obj = new test2();
PHP:$obj = new test2();
Java:test2 obj = new test2();
分析:除了C外其它語言都是通過new一個對象。
6、數組定義
C:int a[] = {1, 2, 3};
C++:int a[] = {1, 2, 3};
Python:a = [1, 2, 3]
JavaScript:var a = [1, 2, 3];
PHP:$a = array("1", "2", "3");
Java:int a[] = {1, 2, 3};
分析:數組是語言的基本特性,都支持了,只是PHP通過類似函數調用的語法來完成。
7、條件語句
C:if (test > 0){}
else if (test < 0){}
else{}
C++:if (test > 0){}
else if (test < 0){}
else{}
Python:if test > 0:
elif test < 0:
else:
JavaScript:if (test > 0){}
else if (test < 0){}
else{}
PHP:if ($test > 0){}
elseif ($test < 0){}
else{}
Java:if (test > 0){}
else if (test < 0){}
else{}
分析:這是最基本的語句,都支持了。
8、循環語句
C:for (idx=0; idx<num; idx++){}
C++:for (idx=0; idx<num; idx++){}
Python:for idx in range(1,10):
JavaScript:for (var idx=0; idx<num; idx++){}
PHP:for ($idx=0; $idx<$num; $idx++){}
Java:for (idx=0; idx<num; idx++){}
分析:這個也是基本的語句,都支持了。
9、foreach語句
C:不支持
C++:不支持
Python:for i in a:
或者
for key in d:
d[key]
JavaScript:for(i in a){}
PHP:foreach($a as $i){}
Java:for(int i : a){}
分析:foreach算是循環語句的一個變種,在操作順序容器的時候非常有用,可以看到C和C++不支持,其它的都語言內置支持了。
10、打印語句
C:printf("test: %d", val);
C++:cout<<"test: "<<val<<endl;
Python:print "test: "+val
JavaScript:不支持
PHP:echo "test: $val";
Java:System.out.println("test :"+val);
分析:打印算是語言所運行環境的支持庫功能,除了JavaScript外都支持了,因為JavaScript主要使用來操控DOM樹的,沒有自己的輸出窗口所以也沒必要支持。
11、字符串定義
C:char test[] = {"helloworld"};
C++:String test = "helloworld";
Python:test = "helloworld"
JavaScript:var test = "helloworld";
PHP:$test = "helloworld";
Java:String test = "helloworld";
分析:這個都支持了,其中C++、Java都是用標準庫來現實的。
12、字符串串接
C:test = strcat(test1, test2);
C++:test = test1 + test2;(STL庫)
Python:test = test1 + test2
JavaScript:var test = test1 + test2;
PHP:$test = $test1 .= $test2;
Java:test = test1 + test2;
分析:很有用的功能,除了C是用標準庫函數來實現,其它都是語言內置支持了。
13、字符串分割
C:不支持
C++:test.substr(3, 8);
Python:test[3:8]
JavaScript:test.slice(3, 5);
PHP:substr($test, 3, 5);
Java:test.substring(3, 8);
分析:常用的功能,C不支持,Python是語言內置支持,其他的都依靠庫來完成。
14、字符串正則表達式
C:不支持
C++:不支持
Python:test.replace("test1", "test2")
JavaScript:test.replace(/test1/gi, "test2");
PHP:str_replace($test, "test1", "test2");
Java:test.replaceAll("test1", "test2");
分析:常用的功能,可惜C、C++不支持,其他都有標準庫來支持。
15、內置容器類型
C:數組
C++:數組
順序容器 Vector
關聯容器 Pair MapSet
Python:列表/元組
字典
JavaScript:數組
對象
PHP:數組(含關聯數組)
Java:數組
序列 Collection
映射表 Map
分析:C最簡單只支持數組,其他都支持容器,不過主要還是順序容器和關聯容器兩大類。
16、注釋方式
C:/* */
C++://
Python:#
JavaScript:/* */
//
PHP:/* */
//
#
Java:/* */
//
分析:大概就/**/、//、#三種方式,各自支持情況不一。
17、多線程支持
C:支持
C++:支持
Python:支持
JavaScript:不支持
PHP:不支持
Java:支持
分析:四種通用編程語言都支持了,兩種專用編程語言都不支持。
18、socket支持
C:支持
C++:支持
Python:支持
JavaScript:不支持
PHP:支持
Java:支持
分析:除了JavaScript以外都支持,這也是JavaScript的應用領域限制所決定的。
19、垃圾回收機制
C:不支持
C++:不支持
Python:支持
JavaScript:支持
PHP:支持
Java:支持
分析:這是現代語言的重要機制,C和C++不支持,其他的都支持了。
20、引入其他文件中的函數
C:export int test();
C++:export int test();
Python:from test import *
JavaScript:<script language='javascript' src="test.js"charset="utf-8"></script>
PHP:require_once('test.php');
或者
include_once('test.php');
Java:import java.util.test.*;
分析:都支持,C和C++用export,Python和Java用import,JavaScript依靠HTML腳本,PHP用自己的函數調用。
21、將字符串作為指令執行
C:不支持
C++:不支持
Python:eval("port=5060")
JavaScript:eval("port=5060;");
PHP:eval("port=5060;");
Java:Porcess proc = new ProcessBuilder(“test”).start();
分析:很有用的一個動態語言特性,C和C++都不支持,Java要類庫來支持,其它的語言內置eval關鍵字.
C/C++資料分享:
需要的小伙伴們可以【點擊下方】鏈接哦~
JavaScript語言是一種高級編程語言,這主要存在于網絡瀏覽器中。JavaScript與HTML和CSS一起是萬維網的基石,這使得客戶端-服務器聯系成為可能。絕大多數網站和幾乎所有現代 Web 瀏覽器都使用JavaScript引擎。
C#,也稱為C sharp,是一種多范式通用編程語言,包括非常強大的語法。它由微軟公司生產和創建。它的語法包括與Java、C和C++幾乎相關的花括號。使用C#開發的應用程序將在 .Net 框架上運行。C#編程語言改進了C++的一些復雜性,并提供了許多出色的功能,如枚舉、空值類型、委托、直接內存訪問和 lambda 表達式。
C#與JavaScript之間的區別
當我們談論JavaScript與C#時,這兩種編程語言之間的差異是巨大的。但是,這兩種編程語言確實有一些重疊的地方。
JavaScript語言有很多教程、文檔和幫助,可以輕松學習。
C#語言如此復雜和浩瀚,乍一看可能會嚇到新手。
JavaScript與C#的對等網絡和開發人員社區都很強大,但事后看來,C#在Windows開發人員中擁有更好的對等群體。
如今,由于沒有人可以只學習一門語言,所以從哪一門開始并不重要。從長遠來看,了解JavaScript和C#只會很有用。
通常,必須在Java等C#中編寫如此多的代碼行才能完成工作,但在JavaScript中沒有這樣的東西。
C#編程語言語法比傳統的JavaScript更兼容。
JavaScript語言仍在增長,這是這種語言優于C#的一件好事,用其他語言構建的更新的東西也開始進入 JavaScript。
JavaScript有許多免費庫和強大的社區支持,而C#則非常受限,因為它主要基于Windows。
C#與JavaScript的比較表
結論
C#和JavaScript幾乎是同時創建的,并且都有特定的目的。創建C#是為了支持 Microsoft,而創建JavaScript是為了支持 Web。C#和JavaScript在差異方面似乎各有優缺點。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。