學習JAVA的第一天——我的筆記**
阿新 • • 發佈:2020-12-17
技術標籤:Java程式設計WEB前端java程式語言監督學習web程式人生
- 環境變數配置:在path中加上jdk的安裝路徑 ;
D:/Program Files/Java/jdk1.6/bin
,新增CLASSPATH
.; 表示從當前目錄中尋找要執行的 - javac是編譯,java是解釋,生成的.class檔案在JVM上執行
- 一個.java檔案只能有一個
public class
,並且檔名必須與類名相同,可以用class定義其他名字的類 - 類,介面,陣列是引用資料型別,其他是基本資料型別。
- 資料型別轉換。
int i = 'a';i
是a的ASSII碼值
float f = (float)5/2;
break
:結束本層迴圈;continue
- 陣列
宣告:type var[]或者type[] var;宣告時不能指定大小;在棧記憶體中,預設值為null;
建立陣列物件:使用new在堆記憶體中開闢空間;var = new type[10];
二者用一條語句完成:type var[] = new type[10];
動態初始化:先開闢陣列空間再賦值;
靜態初始化:定義陣列的同時就分配空間並賦值;int i[] = {1,2,3};i.length
表示陣列的大小;
陣列的引用:int i[] = new int[10];int j[] = i;
兩個陣列指向相同的記憶體空間,對二者的操作等價;引用傳遞實際上傳遞的是記憶體地址的使用權,從記憶體的角度考慮即可。
int source[] = {1,2,3,4,5,6} ;int dest[] = {11,22,33,44,55,66,77,88,99};
System.arraycopy(source,0,dest,0,source.length) ;
陣列初始化及列印:
public static void main(String args[])
{
// 呼叫init方法就可以為陣列初始化
int i[] = init(20) ;
// 列印陣列
print(i) ;
}
//此方法可以為陣列初始化內容
// 0--> 1、1--> 2
public static int[] init(int len)
{
// java中的陣列是可以動態開闢的
int x[] = new int[len] ;
// 進行陣列的初始化
for (int y=0;y<x.length;y++)
{
x[y] = y + 1 ;
}
return x ;
}
public static void print(int x[])
{
for (int y=0;y<x.length;y++)
{
System.out.println("陣列["+y+"] = "+x[y]) ;
}
}
-
記憶體分析:
①棧stack:方法執行的記憶體模型,執行緒私有
②堆heap:存放建立好的物件和陣列,可以為所有執行緒共享(使用new)
③方法區method area:(靜態區)實際上也是堆
存放程式中永遠不變的量,儲存類的相關程式 -
構造方法:
方法名必須和類名相同
通過new關鍵字呼叫
構造器雖然有返回值,但是不能定義返回值的型別,(返回建立物件的地址)不能用return返回某個值
如果沒有定義構造器,則編譯器會自動定義一個無參建構函式,如果已定義,不會自動新增 -
this的本質:
(當前物件的地址)
①區分區域性變數和成員變數
②呼叫過載的構造方法,並且只可出現在構造方法的第一句
③不能用在static類中 -
static:
修飾的成員變數和方法,從屬類;
普通變數和方法,從屬物件。
靜態方法中不可以找到非靜態方法,但是反之不可以包機制:
處理類的資料夾(package) -
import:
匯入類,在本類中則可以直接通過類名來呼叫
Import static匯入靜態類
注:若匯入兩個同名類,則使用包名+類名 -
繼承:
①只能單繼承,即只有一個父類
②子類呼叫父類,可以獲得父類的全部屬性和方法(除了父類的構造方法),但不見得可以直接訪問,如私有屬性和方法
③如果定義一個類時,沒有呼叫extends,則他的父類是java.lang.object -
重寫:
子類自身的行為替換父類
①方法名,形參列表相同
②返回值型別子類要小於父類 -
Object:
是Java的根基類 -
Equal:
物件內容是否相同(==是否同一個物件) -
Super:
直接父類物件的引用,可以用來訪問被子類掩蓋的方法和屬性
注:構造方法第一句總是super(…)