第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

內(nèi)存分配和語言有關(guān)么,不同語言寫的(基本上一樣的代碼)在內(nèi)存分配上是一樣的么(似乎不是一個好問題啊)

最近突然對內(nèi)存分配,還有代碼如何在電腦里運行這塊非常感興趣,就想到這個問題,有點不太會表達,我所看到的那個學(xué)習(xí)視頻是以c語言為例講解代碼運行時計算機的各種狀態(tài)和內(nèi)存分配,我想知道如果是java是不是一樣照此理解,(應(yīng)該是和語言是沒有關(guān)系的吧),語文不好請多多見諒。
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

可以說,你所思考的這些確實和語言沒有關(guān)系。

內(nèi)存分配啊、代碼如何運行啊...這些是硬件和操作系統(tǒng)層面的事。


關(guān)于“java是不是一樣照此理解”中的“理解”二字,我覺得要從兩個方面說:

在語言層面:

有些語言偏向底層,比如 C/C++,在這種語言中就會比較強調(diào)內(nèi)存方面的概念,比如內(nèi)存分配啊、內(nèi)存布局啊...? ?所以講解內(nèi)存方面的課程就比較適合用 C 語言。

而有些語言就不強調(diào)這些。比如 Java 是比較純粹的面向?qū)ο箫L(fēng)格的語言。在 Java 的世界里存在的都是“對象”,在語言概念層面上完全沒有內(nèi)存這東西。你看它和 C 相比根本就沒有“指針”類型。

這些區(qū)別其實是不同編程語言設(shè)計上的不同。每種語言都有自己的風(fēng)格、概念、和內(nèi)在哲學(xué)。

學(xué)習(xí)一種語言最重要的就是理解它的設(shè)計哲學(xué),學(xué)會以這種語言的方式去思考。比如:初學(xué) Java 時只要知道要 new 一個對象出來就可以用它了,忘記內(nèi)存的事吧。 而寫 C 代碼時則要時刻記著內(nèi)存,不然就容易出錯。


在實現(xiàn)層面:

當(dāng)然不管是 C 還是 Java 程序最終都運行在硬件和操作系統(tǒng)之上,所以它們執(zhí)行時操作硬件的方式都是大同小異的。? 我想你也能夠推測出,Java 中 new 出來的對象就是在堆中分配的內(nèi)存之中。沒錯,是這樣的。? 而從這個層面對 Java 進行理解,我認為算是對 Java 的進階學(xué)習(xí),也就是開始探究 JVM——Java 底層的虛擬機是如何運行的。? 但我認為這一步應(yīng)該在能夠熟練使用 Java 之后再進行。

查看完整回答
反對 回復(fù) 2017-10-10
  • 馮寶寶
    馮寶寶
    喔,嗯,不覺明厲,只是突然很感興趣,
  • onemoo
    onemoo
    這很好,這表示你很有求知欲。記住這份好奇,以此為動力來繼續(xù)學(xué)習(xí)下去吧。
  • 1 回答
  • 1 關(guān)注
  • 1283 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號