C++和Java有什麼不同
這是一個很困難的話題。
首先,同時精通C++的Java的童靴應該是比較少的,特別是國內的一個膚淺的學習氣氛。
其次,不同點其實太多了,不知道從何說起。粒度太細的話,可以寫本書了;力度太粗的話,也沒啥意思。
突然心血來潮,可以每天想起來或者沒事的時候,就來寫一點,時間長了,估計就是一個比較完整的list了。
下面開始從幾個方面來對比。
(1)記憶體管理
C++提供堆和棧兩種主要的記憶體非配策略(靜態全域性區和程式碼區就不提了)。Java中的所有非基本型別物件,都是需要new出來的,也就是在堆上。
C++對於在堆上分配的記憶體,需要外界負責釋放,否則會造成記憶體洩露,所幸智慧指標提供了一種解決方案。Java的記憶體回收是基於GC的,由JVM負責清理回收無用的記憶體。
總結,C++在記憶體管理上更加的靈活和高效,使用者可以根據自己的實際情況來定製過載new,並提供相應的異常處理函式;Java就無法做到這一點了。但是Java解放了程式猿,使用比較方便。
相關文章
- java和c++有什麼不同JavaC++
- Go和Java的interface有什麼不同GoJava
- C++有什麼與眾不同之處?C++
- Python和Java之間有什麼不同之處?PythonJava
- struct和typedef struct 有什麼不同呢?Struct
- YottaChain和IPFS礦機有什麼不同?AI
- 公有IP和私有IP有什麼不同
- Python和Java之間有什麼不同之處?總結!PythonJava
- Linux和Unix有什麼不同之處?Linux
- python中,"_"和"__"的作用有什麼不同?Python
- 路由器和交換機有什麼不同路由器
- Python中的arange是什麼?和range有什麼不同?Python
- c++中&和&&有什麼區別C++
- C++ 和java的不同點C++Java
- 搜尋和其他機器學習問題有什麼不同?機器學習
- 互斥鎖和訊號量有什麼不同?(譯)
- 物理機和虛擬機器有什麼不同虛擬機
- SCRM系統和CRM系統有什麼不同?
- 【Python小知識】什麼是HTTP和HTTPS?有什麼不同?PythonHTTP
- 電腦gpu是什麼意思 gpu和cpu有什麼區別不同GPU
- VB.NET和Python有什麼不同?前景分析!Python
- 遊戲音樂和影視音樂有什麼不同?遊戲
- Java和Python是什麼?有什麼區別?JavaPython
- C++中vector*和vector有什麼區別C++
- Linux 與 BSD 有什麼不同?Linux
- Linux與BSD有什麼不同?Linux
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- Redis 中 set 和 hset 有什麼不同,各自使用場景Redis
- Docker和虛擬機器有什麼不同?哪個好?Docker虛擬機
- 代理伺服器和免費代理IP有什麼不同?伺服器
- Linux和Windows系統有什麼不同?如何選擇?LinuxWindows
- Debian和Ubuntu有什麼不同嗎?該如何選擇?Ubuntu
- SFTP是什麼協議?優勢有哪些?與FTP有什麼不同?FTP協議
- Linux系統有什麼特性?與Windows對比有什麼不同?LinuxWindows
- Linux vs. Unix:有什麼不同?Linux
- "什麼是海外代理IP池?共享IP池和獨享IP池有什麼不同?"
- Linux中awk和sed分別指什麼?兩者之間有什麼不同?Linux
- 虛擬主機和獨立伺服器有什麼不同伺服器