Java中的成員變量和局部變量有以下區別:
作用域不同:成員變量在整個類中都可見,而局部變量只在聲明它的代碼塊內可見。
生命周期不同:成員變量的生命周期與對象的生命周期相同,當對象被創建時,成員變量也被創建,并在對象被銷毀時銷毀。而局部變量的生命周期只在其所在的代碼塊內有效,當代碼塊執行完畢后,局部變量將被銷毀。
默認值不同:成員變量有默認值,如果沒有顯式地賦值,它們會被初始化為其對應類型的默認值(例如,整型變量默認為0,布爾變量默認為false)。而局部變量沒有默認值,必須在使用之前顯式地賦值。
訪問修飾符不同:成員變量可以使用不同的訪問修飾符(public、private、protected)來控制對其的訪問權限。而局部變量不能使用訪問修飾符,它們只在聲明它們的代碼塊內可見。
存儲位置不同:成員變量存儲在堆內存中的對象中,而局部變量存儲在棧內存中。
總的來說,成員變量是屬于對象的,而局部變量是屬于方法或代碼塊的。成員變量具有更長的生命周期和更廣的作用域,而局部變量的生命周期和作用域更短。