由static關鍵字談java基礎
最近在想,自己算是中級程式設計師還是高階程式設計師,已經工作四年了,還沒有對自己有一個明確的定位。畢竟程式設計師
的級別也不能單純以工作時間作為唯一衡量標準。
在一個公司待一段時間,不管你的技術好與壞,總可以去適應公司的業務,框架,工作氛圍。所有很多程式設計師,包
括我自己。能按時交付自己的工作成果,就覺得自己很了不起,飄飄然。IT技術更新很快,只有不斷學習,才能進步。
而且,我發現自己工作四年,工作還算得心應手,但是偶爾碰到一些基礎知識,還是束手無策。這讓我反思,在追求新
技術,新思想的同時,是不是偶爾停下腳步,紮實一下基礎知識呢?你們怎麼看呢?請大家指教。
廢話不多說,下面看一個java基礎知識點:static關鍵字。首先來看static的特點:
(1)static變數也稱作靜態變數:靜態變數被所有的物件所共享,在記憶體中只有一個副本,它當且僅當在類初次載入時會被初始化。
(2)被static關鍵字修飾的方法或者變數不需要依賴於物件進行訪問,類被載入了,可以通過類名去進行訪問。
(3)static關鍵字還有一個作用就是 用來形成靜態程式碼塊以優化程式效能。static塊可以置於類中的任何地方,類中可以有多個static塊。在類初次被載入的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。
下面來看一個例子:
public class Student {
private static int sid = 0;
private String name;
private int age;
public Student(String name) {
this.name = name;
age = sid++;
}
public static int getSid() {
return sid;
}
public static void setSid(int sid) {
Student.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Student.sid = 100;
Student s1 = new Student("lyl");
System.out.println(s1.getAge());
System.out.println(s1.sid);
}
}
輸出結果:
100
101
知識點:
(1)static成員變數,存在於data seg記憶體資料段中,int基本資料型別,只佔這一塊記憶體。
(2)Student.sid = 100就是講資料段中的sid的值修改為100
(3)new Studnet("lyl")的時候,會呼叫建構函式,字串“lyl”初始化在資料段。構造方法的形參name執行資料段中的“lyl”
this.name就是Student的name屬性,將形參name賦值給Student的name屬性。等價於student的name屬性也指向資料段的“lyl”
(4)age = sid++;這個操作的原則是:先賦值,再加加。即 age = 100 age加加就等於101
(5)執行完構造方法,形參name的棧空間自動消失。
相關文章
- Java基礎——final和static關鍵字Java
- java基礎----->Static 和 Final 關鍵字Java
- Java基礎-static關鍵字和單例模式Java單例模式
- Java 的 static 關鍵字Java
- JAVA static關鍵字理解Java
- java之static關鍵字Java
- JavaSE基礎知識學習-----Static關鍵字Java
- java中的static關鍵字Java
- [java基礎]之JAVA關鍵字Java
- static關鍵字
- java中static關鍵字的作用Java
- Java中的static關鍵字解析Java
- java基礎-關鍵字finalJava
- java中的static和final關鍵字Java
- Java關鍵字static、final使用小結Java
- java final和static關鍵字學習Java
- 徹底搞定Java關鍵字final、staticJava
- Java關鍵字final、static使用總結Java
- static關鍵字的作用
- static關鍵字---"工具類"
- 初識static關鍵字
- JAVA面試題 淺析Java中的static關鍵字Java面試題
- 【轉】C++ static關鍵字C++
- 物件導向-static關鍵字物件
- C++中static關鍵字C++
- static關鍵字作用總結
- C語言之static關鍵字C語言
- Java課堂篇4_關鍵字this、static的理解Java
- Java基礎02:識別符號和關鍵字Java符號
- static關鍵字的使用總結
- 1_static關鍵字的使用
- Java開發筆記(五十五)關鍵字static的用法Java筆記
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- c語言static關鍵字的理解C語言
- C語言中static關鍵字詳解C語言
- Java面試題:請談談Java中的volatile關鍵字?Java面試題
- 好程式設計師Java教程解密static關鍵字的理解程式設計師Java解密
- java基礎筆記之staticJava筆記