數(shù)組:
數(shù)據(jù)類型[]數(shù)組名 = new 數(shù)據(jù)類型[元素個數(shù)或數(shù)組長度];
int[] x = new int[100];
arr[0] = 1
arr[1] = 2
類型[]數(shù)組名 = new 類型[]{元素,元素,……};
int[] arr = new int[]{1,2,3,4};
類型[]數(shù)組名 = {元素,元素,元素,……};
? int[] arr = {1,2,3,4};
static
當(dāng)在定義類的時候,類中都會有相應(yīng)的屬性和方法。而屬性和方法都是通過創(chuàng)建本類對象調(diào)用的。當(dāng)在調(diào)用對象的某個方法時,這個方法沒有訪問到對象的特有數(shù)據(jù)時,方法創(chuàng)建這個對象有些多余??墒遣粍?chuàng)建對象,方法又調(diào)用不了,這時就會想,那么我們能不能不創(chuàng)建對象,就可以調(diào)用方法呢可以的,我們可以通過static關(guān)鍵字來實(shí)現(xiàn)。static它是靜態(tài)修飾符,一般用來修飾類中的成員。被static修飾的成員變量屬于類,不屬于這個類的某個對象。(也就是說,多個對象在訪問或修改static修飾的成員變量時,其中一個對象將static成員變量值進(jìn)行了修改,其他對象中的static成員變量值跟著改變,即多個對象共享同一個static成員變量)
面向?qū)ο笕筇卣?/p>
封裝、繼承、多態(tài)?
封裝:是指一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。封裝最主要的功能在于我們能修改自己的實(shí)現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護(hù),也加強(qiáng)了程式碼的安全性。減少耦合,類內(nèi)部的結(jié)構(gòu)可以自由修改,對成員變量進(jìn)行更精確的控制,隱藏信息,實(shí)現(xiàn)細(xì)節(jié)。
繼承:是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因為它允許創(chuàng)建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
多態(tài):
一般分為重寫式多態(tài)和重載式多態(tài),簡而言之就是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力,運(yùn)行時多態(tài)的前提:繼承,重寫,向上轉(zhuǎn)型。
public 權(quán)限修飾符,公共訪問類,方法成員變量
protected 權(quán)限修飾符,受保護(hù)訪問方法成員變量
默認(rèn)什么也不寫也是一種權(quán)限修飾符,默認(rèn)訪問類方法成員變量
private 權(quán)限修飾符,私有訪問方法成員變量
static 靜態(tài)修飾符方法成員變量
final 最終修飾符類方法成員變量局部變量
abstract 抽象修飾符類方法
B: 不能同時使用的修飾符
同時,abstract與private不能同時使用;
同時,abstract與static不能同時使用;
同時,abstract與final不能同時使用。
C: 修飾類能夠使用的修飾符:修飾類只能使用public、默認(rèn)的、final、abstract關(guān)鍵字使用最多的是 public關(guān)鍵字
public公共的
protected受保護(hù)的默認(rèn)的
private私有的
final最終的
static靜態(tài)的
使用最多的是 private
==和equal的聯(lián)系與區(qū)別:
最大的區(qū)別是,==是運(yùn)算符,equal是方法
java基本類型(short,int,long,byte,char,float,double,boolean)
比較基本類型,只能用==,不能用equal,這里的==比較的是兩個變量的值
==比較的是內(nèi)存地址,因為a和b是new出來的,是兩個不同的對象,所以地址肯定是不同的,而equal比較的是值,
==比較的是內(nèi)存地址,equal+比較的是值
==和equal比較的都是內(nèi)存地址,因為equal沒有被重寫,沒有被重寫的equal都是object的equal方法
線程的五種狀態(tài)
線程共包括以下5種
1.新建狀態(tài)(New):線程對象被創(chuàng)建后,就進(jìn)入了新建狀態(tài)。例如,Thread thread = new Thread()。
2.就緒狀態(tài)(Runnable):也被稱為“可執(zhí)行狀態(tài)”。線程對象被創(chuàng)建后,其它線程調(diào)用了該對象的start()方法,從而來啟動該線程。例如,thread.start()。處于就緒狀態(tài)的線程,隨時可能被CPU調(diào)度執(zhí)行。
3.運(yùn)行狀態(tài)(Running):線程獲取CPU權(quán)限進(jìn)行執(zhí)行。需要注意的是,線程只能從就緒狀態(tài)進(jìn)入到運(yùn)行狀態(tài)。
4.阻塞狀態(tài)(Blocked):阻塞狀態(tài)是線程因為某種原因放棄CPU使用權(quán),暫時停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:
(01)等待阻塞--通過調(diào)用線程的wait()方法,讓線程等待某工作的完成。
(02)同步阻塞--線程在獲取synchronized同步鎖失敗,它會進(jìn)入同步阻塞狀態(tài)。
(03)其他阻塞--通過調(diào)用線程的sleep()或join()或發(fā)出了I/O請求時,線程會進(jìn)入到阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉(zhuǎn)入就緒狀態(tài)。
5.死亡狀態(tài)(Dead):線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。
創(chuàng)建字符串
String str = "HelloWorld";
String str=new String("HelloWorld");