日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

各种编程语言概述

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 各种编程语言概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP是Hypertext Pre-Processor(超文本預處理器)的縮寫,它是一種服務器端的HTML腳本/編程語言。PHP語法上與C相似,可運行在Apache, Netscape/iPlanet,?和?Microsoft IIS Web?服務器上。

PHP與Java的區別:

PHP具有和JAVA類似的Class關鍵字。因為不需要虛擬機,以致速度比JAVA快5倍

PHP與Javascript的區別:

PHP允許你直接在HTML文件里寫入簡單的腳本,這一點與Javascript非常相似。而不同的是,PHP不依賴于瀏覽器,是服務器端的語言,讀取數據庫把內容顯示到頁面;而Javascript卻是一種客戶端的嵌在HTML中的語言,控制頁面內容。

?

Javascript與Java的區別

1. 由不同公司開發的。Java是Sun Microsystems公司的產品;JavaScript是Netscape公司的產品,Java是經過Sun Microsystems公司授權的。

2. JavaScript是基于對象和事件驅動的腳本語言,它本身提供了非常豐富的內部對象;Java是面向對象的,即使是開發簡單的程序也必須設計對象。 3. 嵌入方式不一樣。JavaScript使用 4. 在瀏覽器中的執行方式不一樣。JavaScript是解釋性編程語言,源代碼在法網客戶端執行之前不需要經過編譯,即JavaScript語句本身隨Web頁面一起下載下來,由瀏覽器解釋執行;而Java代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上不必需有編譯器,但是必須有仿真器或解釋器。它可以通過編譯器或解釋器實現獨立于某個特定平臺的編譯代碼。 5. 變量不一樣。JavaScript的變量聲明采用弱類型,即變量在使用前不需要做聲明,而是解釋器在運行時檢查其數據類型(這叫做動態聯編);Java采用強類型變量檢查,采用靜態聯編,即在編譯時就實現強類型檢查。

Java與C++的區別:

1. 完全面向對象,比如:main函數以static的形式包含在類中

2.?Java跨平臺,即不同的操作系統都可以通過JVM來解釋Java程序,而C、C++、C#則是與平臺相關的,有些指令只在某些操作系統中才能執行;

3.Java不支持系統調用,即無法與操作系統進行交互,這是由它跨平臺的特點決定的,而C則可以調用系統中的指令,如fork()。這也就是為什么Java中只有線程(Thread)概念而沒有進程(Process)概念,而C兩者均有;

4.?Java無法對內存進行控制,而C則可以通過指針對內存進行人為分配(JAVA中沒有指針,?但Java中所有的對象都是以地址訪問的)。

5. 類的默認成員是protect(C++中是private)

6. C++中string相當于Java中的StringBuff;C++中const string相當于Java中的String。也就是說,C++中的string可變,而Java中String不可變。 所以在Java中使用+操作合并字符串時,其實是重新申請了新空間,把兩個字符串賦值給新空間。

7. Java的數組在聲明時不能直接指定列數或者行數,比如String s[50]是錯誤的。正確的做法是:

String s[] = new String[50];

8. 垃圾回收機制的區別。C++用析構函數回收垃圾,Java自動回收(GC算法),寫C和C++程序時一定要注意內存的申請和釋放。

9.?Java用接口(Interface)技術取代C++程序中的多繼承性,省卻了多繼承在實現和維護上的復雜性。

?

C++與C的相互調用

1. extern “C”的使用(僅在C++中,C中只有extern)

? ?1)在C++中使用C語言定義的語句。

/* c語言頭文件:cExample.h */ #ifndef C_EXAMPLE_H #define C_EXAMPLE_H extern int add(int x, int y); //在C語言的頭文件中,對其外部函數指定為extern#endif/* c語言的實現文件:cExample.c */ #include "cExample.h" int add(int x, int y) { return x + y; }/* c++實現文件,調用add:cppFile.cpp */ extern "C" //在C++中使用extern "C"{}包裹C頭文件或者C語言編寫的.DLL ? { ????#include "cExample.h"; ??}int main(){add(2, 3);return 0;}

2)C中引用C++語言中的函數或者變量時,C++的頭文件需要加上extern “C”,并且C中還需將C++中定義的extern “C”函數聲明為extern類型

/* c++頭文件cppExample.h */ #ifndef CPP_EXAMPLE_H #define CPP_EXAMPLE_H extern "C" int add(int x, int y); //C++的頭文件需要加上extern "C"#endif/* c實現文件cFile.c */ extern int add(int x, int y); //C中將C++中定義的extern "C"函數聲明為extern類型。int main() { add(2, 3); return 0; }

2. 為什么需要extern "C"

C編譯器編譯函數時不帶參數的類型信息,如?int foo( float x ) ,C編譯器會將此函數編譯成類似_foo的符號.

而C++編譯器為了實現函數重載,會在編譯時帶上函數的參數信息。如它可以把上面的函數編譯成類似于_foo_float這樣的符號。

使用extern "C"則是告訴編譯器依照C的方式來編譯封裝接口

3. C怎么調用C++中的重載函數

C++中必須封裝單獨的接口共C調用

// C++ Code void foo( int x ); void foo( float x );extern "C" void foo_i( int x ) {foo( x ); } extern "C" void foo_f( float x ) {foo( x ); }// C Code extern void foo_i( int x ); extern void foo_f( float x ); void ccc( int x1, float x2 ) {foo_i( x1 );foo_f( x2 );// ... }

4. 如果C中想調用C++中的成員函數(包括虛函數),則需要提供一個簡單的包裝(wrapper)

// C++ code: class C {...virtual double f(int); };extern "C" double call_C_f(C* p, int i) // wrapper function {return p->f(i); }//C code extern double call_C_f(struct C* p, int i);//聲明 void ccc(struct C* p, int i) {double d=call_C_f(p,i);... }

?

轉載于:https://www.cnblogs.com/qionglouyuyu/p/4607646.html

總結

以上是生活随笔為你收集整理的各种编程语言概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。