<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么阿里會推薦所有的局部變量使用基本數(shù)據(jù)類型?

          共 677字,需瀏覽 2分鐘

           ·

          2020-06-21 23:21

          Java中共有三種變量,分別是類變量、成員變量和局部變量。他們分別存放在JVM的方法區(qū)、堆內(nèi)存和棧內(nèi)存中。

          public class Variables {
          /** * 類變量 */ private static int a;
          /** * 成員變量 */ private int b;
          /** * 局部變量 * @param c */ public void test(int c){ int d; }}


          上面定義的三個變量中:

          變量a就是類變量,存放在方法區(qū),線程共享。

          變量b就是成員變量,隨著對象一起存放在堆內(nèi)存,線程共享。

          變量c和d是局部變量,存放在棧內(nèi)存,線程獨享。

          也就是說,變量a和b是共享變量,變量c和d是非共享變量。

          即局部變量是非共享變量,作用域只在方法內(nèi)部,并不會逃逸到方法外。

          那么,既然是一個作用域只在方法內(nèi)的變量,不需要考慮那么多,怎么性能高怎么定義,怎么方便使用怎么定義。

          我們都知道在Java語言中,new一個對象是存儲在堆里的,我們通過棧中的引用來使用這些對象;所以,對象本身來說是比較消耗資源的。

          對于經(jīng)常用到的類型,如int等,如果我們每次使用這種變量的時候都需要new一個Java對象的話,就會比較笨重。

          所以,和C++一樣,Java提供了基本數(shù)據(jù)類型,這種數(shù)據(jù)的變量不需要使用new創(chuàng)建,他們不會在堆上創(chuàng)建,而是直接在棧內(nèi)存中存儲,因此會更加高效。


          長按關(guān)注,還原真實面試現(xiàn)場!
          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产毛片基地 | 啪啪啪网站在线观看 | 最新日韩中文字幕 | 成人三级小视频 | 草榴国产在线 |