大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 深入解析static關鍵字

深入解析static關鍵字

更新時間:2020-11-18 17:20:34 來源:動力節點 瀏覽1396次

static是java語言中的關鍵字,表示“靜態的”,它可以用來修飾變量、方法、代碼塊等,修飾的變量叫做靜態變量,修飾的方法叫做靜態方法,修飾的代碼塊叫做靜態代碼塊。在java語言中凡是用static修飾的都是類相關的,不需要創建對象,直接通過“類名”即可訪問,即使使用“引用”去訪問,在運行的時候也和堆內存當中的對象無關。本文主要來解析一下static關鍵字的深層原理。

要理解static關鍵字為什么會有上面的特性,首先我們還需要從jvm內存說起。我們先給出一張java的內存結構圖,然后通過案例描述一下static修飾的變量的存放位置。

image.png

從上圖我們可以發現,靜態變量存放在方法區中,并且是被所有線程所共享的。這里要說一下java堆,java堆存放的就是我們創建的一個個實例變量。

1.堆區

  • 存儲的全部是對象,每個對象都包含一個與之對應的class的信息。(class的目的是得到操作指令)
  • jvm只有一個堆區(heap)被所有線程共享,堆中不存放基本類型和對象引用,只存放對象本身

2.棧區

  • 每個線程包含一個棧區,棧中只保存基礎數據類型的對象和自定義對象的引用(不是對象),對象都存放在堆區中
  • 每個棧中的數據(原始類型和對象引用)都是私有的,其他棧不能訪問。
  • 棧分為3個部分:基本類型變量區、執行環境上下文、操作指令區(存放操作指令)。

3.方法區

  • 又叫靜態區,跟堆一樣,被所有的線程共享。方法區包含所有的class和static變量。
  • 方法區中包含的都是在整個程序中永遠唯一的元素,如class,static變量。

下面通過一個案例說明一下,從內存的角度來看,static關鍵字為什么會有這樣的特性。

首先我們定義一個類

public class Person {
//靜態變量
static String firstName;
String lastName;
public void showName(){
System.out.println(firstName+lastName);
}
//靜態方法
public static void viewName(){
System.out.println(firstName);
}
public static void main(String[] args) {
Person p =new Person();
Person.firstName = "小";
p.lastName="明";
p.showName();
Person p2 =new Person();
Person.firstName="阿";
p2.lastName="麗";
p2.showName();
}
}
//輸出。小明、阿麗

接下來我們從內存的角度出發,可以看出我們的方法在調用的時候,是從方法區調用的,但是堆內存不一樣,堆內存中的成員變量lastname是隨著對象的產生而產生。隨著對象的消失而消失。靜態變量是所有線程共享的,所以不會消失。這也就能解釋上面static關鍵字的真正原因。

我們在使用使用static關鍵字時需要注意:

  • 靜態方法只能訪問靜態成員。(非靜態既可以訪問靜態,又可以訪問非靜態)
  • 靜態方法中不可以使用this或者super關鍵字。
  • 主函數是靜態的

最后,我們看完了本文對static關鍵字的解析如果還有什么不明白的地方可以觀看本站的Java SE教程,里面對static關鍵字的講解更加全面透徹,讓你從無到有,快速掌握static關鍵字。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品福利一区二区久久 | 欧美一级成人毛片视频 | 亚洲精品视频在线看 | 狠狠操福利视频 | 国产欧美日韩图片一区二区 | 亚洲 欧美 中文字幕 | 手机福利在线观看 | 精品国产免费第一区二区三区日韩 | 久久精品一区二区三区中文字幕 | 色婷五月 | 国产在线91观看免费观看 | 日韩欧美国产亚洲 | 国产精品嫩草影院99av视频 | 色婷婷久久合月综 | 99热久久国产精品这里有99 | 99精品在线播放 | 色综合久久中文色婷婷 | 一区二区视频免费看 | 日韩欧美国产一区二区三区四区 | 欧美一级在线播放 | 久久久久依人综合影院 | 久久国产亚洲精品麻豆 | 日本爱爱视频网站 | 久久久国产一区二区三区 | 亚洲国产二区三区 | www.国产一区二区三区 | 亚洲视频在线网站 | 在线播放精品视频 | 亚洲第一永久在线观看 | 一本本久综合久久爱 | 四虎国产精品免费五月天 | 午夜一级视频 | 精品视频在线免费 | 欧美日韩加勒比一区二区三区 | 亚洲精品国产福利在线观看 | 国产精品亚洲专一区二区三区 | 欧美另类高清xxxxx | 狠狠色伊人亚洲综合成人 | 狠狠色噜狠狠狠狠色综合久 | 操视频网站 | 国产臀控福利视频在线 |