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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多編程語言對比的文章,總喜歡比較各種編程語言的性能、語法、IO模型。本文將從心智負擔這個角度去比較下不同的編程語言和技術。

內存越界

如:C語言、C++(C with class)

C/C++可以直接操作內存,但編程必須要面對內存越界問題。發生內存越界后,程序會直接core dump,開發者需要使用gdb工具分析內存錯誤的原因,如果內存越界是偶發的,比如由于數據同步問題造成,數億次中會出現一次,解決起來非常困難,甚至需要頂級專家才能找到問題原因。

心智負擔:10

現代C++提供了STL庫包含大量容器,另外C++支持引用語法,不再需要直接操作指針,降低了內存錯誤讀寫的風險。使用現代C++的編程風格可以避免此問題。但由于C++沒有完全從語法層面移除指針,不夠徹底。

C/C++程序中經常使用預定義宏實現一些邏輯,導致可讀性變差。有些情況下會嵌套多次宏的使用,展開后變得極其難讀。

心智負擔:6

因此在C/C++中建議使用enum或static inline函數代替宏。

內存管理

如:C語言、C++

C/C++語言,需要手工管理內存,malloc/new申請的內存要與free/delete成對使用。申請的內存忘記釋放,就會出現內存泄漏。

心智負擔:8

Java/PHP/Go等有GC的編程語言,不需要手工管理內存,不會因為代碼錯誤引起內存泄漏。

心智負擔:0

數值類型

C/C++/GO等編程語言,提供了有符號、無符號整型和浮點型,8/16/32/64不同尺寸的整型。編程時需要額外處理,避免數值溢出。

心智負擔:6

PHP/Java等編程語言,默認整數為有符號int64,降低了心智負擔。一般業務項目中很難有超過2^63的數字,不會遇到問題。但如果是做科學計算,int64就難以滿足需求了。在PHP中超過2^63底層會轉為浮點型,計算將丟失精度。

心智負擔:1

而Python整數是不限長度的,可以做任意位數的數值計算。

心智負擔:0

類型約束

Java是靜態強類型編程語言,因此在編程中存在類型約束,某些情況下可能不是特別方便。如JSON序列化。不同類型的變量互相操作時可能需要進行顯式類型轉換。

心智負擔:2

PHP/JS是動態弱類型編程語言,底層自動進行隱式類型轉換。編程更方便。

心智負擔:0。

項目維護

在大型項目,或對已有系統進行代碼重構,以及項目代碼更換開發者時,弱類型帶來可維護性、可讀性的難題,與Java/Go/C++這樣的靜態強類型編程語言在編譯期就可以發現問題。而動態、弱類型語言可能會因為重構或其他維護操作產生運行時錯誤,增加了心智負擔。

心智負擔:5

多線程編程

Java/C++/Go提供了多線程并行編程、無鎖編程,在編程中會存在數據同步問題。因此需要對臨界資源進行加鎖。而錯誤的鎖操作又會帶來,死鎖和熱點爭搶問題。需要開發者具備極高的素質,否則難以做到正確無誤并性能良好,這可能需要耗費大量心智。

心智負擔:10

內存泄漏

除PHP(php-fpm)之外的其他編程語言和技術(包括PHP + Swoole),在服務器端程序中均為長生命周期。對全局/靜態變量操作可能會導致內存或資源句柄泄漏。編程時需要注意。

心智負擔:3

而PHP(php-fpm)是短生命周期的,在請求結束后會立即釋放所有內存和句柄,無需擔心泄漏。

心智負擔:0

IO 超時

同步阻塞IO模型的編程語言和技術,在遇到某個慢IO會導致整個進程或線程掛起。極端情況下會出現所有進程/線程掛起,引起線上服務不可用。開發者需要格外注意設置IO操作的超時時間,避免慢請求帶來進程/線程阻塞。

心智負擔:2

而且異步IO的Go/Node.js/Swoole等無需擔心此問題。

心智負擔:0

匯總

看到這里是不是又有很多感悟了呢~

點擊播放 GIF 0.0M

總結

以上是生活随笔為你收集整理的java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...的全部內容,希望文章能夠幫你解決所遇到的問題。

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