java小結

八大基本變量

boolean--1bit

byte--8bit

short--16bit

int--32bit

long--64bit

char--16bit

float--32bit

double--64bit

條件和循環語句

1.if 語句

語法說明

if 是該語句中的關鍵字,后續緊跟一對小括號,該對小括號任何時候不能省略,小括號的內部是具體的條件,語法上要求該表達式結果為boolean 類型。后續為功能的代碼,也就是當條件成立時執行的代碼,在程序書寫時,一般為了直觀的表達包含關系,功能代碼一般需要縮進。

注意:1.if(條件表達式)后續一般不書寫分號

if 語句的執行流程為:如果條件表達式成立,則執行功能代碼,如果條件表達式不成立,則不執行后續的功能代碼。


if-else 語句

if-else 語句實現了封閉的條件,在程序中使用的更加常見。其中else關鍵字的作用是“否則”,即條件不成立的情況。

語法說明:其中前面的部分和if 語句一樣,else 部分后面是功能的代碼

執行順序:如果條件成立,則執行if 語句中的功能代碼,否則執行else 中的功能代碼。當程序中有多個if 時,else 語句和最近的if 匹配。


switch 語句

switch 關鍵字的中文意思是開關、轉換的意思,switch 語句在條件語句中特別適合做一組變量相等的判斷,在結構上比if 語句要清晰很多。

當表達式的值和對應case 語句后的值相同時,既從該位置開始向下執行,一直執行到switch 語句的結束,在執行中,如果遇到break 語句,則結束switch 語句的執行。



while 循環:

在執行時,如果布爾表達式的結果為真,則循環中的動作將被執行。這將繼續下去,只要該表達式的結果為真。


do...while 循環:

do ... while循環類似于while循環,不同的是一個do ... while循環是保證至少執行一次。


for 循環:

for(初始化步驟;布爾表達,循環條件;循環變量遞增)

for循環是一個循環控制結構,可以有效地編寫需要執行的特定次數的循環。

知道多少次的任務是要重復一個for循環是有好處的。

步驟:

初始化步驟首先被執行,并且僅一次。這個步驟可聲明和初始化任何循環控制變量。不需要把一個聲明在這里,只要一個分號出現。

接下來,布爾表達式求值。如果是 true,則執行循環體。如果是 false,則循環體不執行和流程控制的跳轉到下一個語句過去的for循環。

之后循環體在for循環執行時,控制流程跳轉備份到更新語句。該語句允許更新任何循環控制變量。這個語句可以留空,只要一個分號出現的布爾表達式之后。

布爾表達式現在再次評估計算。如果是 true,循環執行,并重復這個過程(循環體,然后更新的步驟,然后布爾表達式)。之后,布爾表達式為 false,則循環終止。

foreach:

聲明: 新聲明塊變量,這是一種與正在訪問數組中的元素兼容的。變量將是可利用的塊內并且它的值將是相同的作為當前的數組元素。

表達:?這個計算結果完成需要循環數組。表達式可以是一個數組變量或方法調用返回一個數組。


break關鍵字:

關鍵字break是用來停止整個循環。 break關鍵字必須使用任何循環或switch語句中。

關鍵字break將停止最內層循環的執行,并開始執行的下一行代碼的程序段后。


continue 關鍵字:

continue關鍵字可以在任一環的控制結構可以使用。它使循環立即跳轉到循環的下一次迭代.

在for循環中,continue關鍵字會導致流程控制的立即跳轉到更新語句。

在一個while循環或do/while循環,流控制的立即跳轉到布爾表達式。


格式化輸出

1.DecimalFormat

DecimalFormat是NumberFormat的一個具體子類,用于格式化十進制數字

符號含義

0 一個數字,若不存在,用0填充

# 一個數字,不包括 0

. 小數的分隔符的占位符

, 分組分隔符的占位符?如:#,# 那么10會變為1,0

; 分隔格式。

- 缺省負數前綴。

% 乘以 100 和作為百分比顯示

? 乘以 1000 和作為千進制貨幣符顯示;用貨幣符號代替;如果雙寫,用

國際貨幣符號代替。如果出現在一個模式中,用貨幣十進制分隔符代

替十進制分隔符。

X 前綴或后綴中使用的任何其它字符,用來引用前綴或后綴中的特殊字符。

forExamble

DecimalFormat df1 = new DecimalFormat("0.0");

DecimalFormat df2 = new DecimalFormat("#.#");

DecimalFormat df3 = new DecimalFormat("000.000");

DecimalFormat df4 = new DecimalFormat("###.###");

System.out.println(df1.format(12.34));

System.out.println(df2.format(12.34));

System.out.println(df3.format(12.34));

System.out.println(df4.format(12.34));

結果:

12.3

12.3

012.340

12.34


2.printf

參數 輸出格式:指定數據輸出時的格式;

輸出字符串:指定要輸出的數據。

格式替代符

%b 相對應的參數被視為含有要被處理的轉義序列之字符串。

%c ASCII字符。顯示相對應參數的第一個字符

%d, %i 十進制整數

%e, %E, %f 浮點格式

%g %e或%f轉換,看哪一個較短,則刪除結尾的零

%G %E或%f轉換,看哪一個較短,則刪除結尾的零

%o 不帶正負號的八進制值 %s 字符串

%u 不帶正負號的十進制值

%x 不帶正負號的十六進制值,使用a至f表示10至15

%X 不帶正負號的十六進制值,使用A至F表示10至15


常用類型

1.Arrays

Arrays靜態方法:

asList(T...?a) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回一個列表

binarySearch() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 二分查找, ? ? ? ?基本類型都可以

copyOf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?復制數組

copyOfRange() ? ? ? ? ? ? ? ? ? ? ?復制特定范圍的數組

equals() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 比較是否相等

fill() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?填充數組

parallelSort() ? ? ? ? ? ? ? ? ? ? ? ? ?指定范圍的排序,并行計算,速度較快

sort() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 排序,串行計算

toString ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 轉換為字符串

附:數組聲明的三種方式

1) int[] nus={1,2,3,5};

2) String[] names=new String[3];

3)date[] dates=new Date[] {new Date(),new Date()};


String

charAt(int index)返回字符串中第index個字符;

length()返回字符串的長度;

?indexOf(String str)返回字符串中第一次出現str的位置;

?indexOf(String str,int fromIndex)返回字符串從fromIndex開始第一次出現str的位置;

?equalsIgnoreCase(String another)比較字符串與another是否一樣(忽略大小寫);

replace(char oldchar,char newChar)在字符串中用newChar字符替換oldChar字符

startsWith(String prefix)判斷字符串是否以prefix字符串開頭;

endsWith(String suffix)判斷一個字符串是否以suffix字符串結尾;

?toUpperCase()返回一個字符串為該字符串的大寫形式;

public String toLowerCase()返回一個字符串為該字符串的小寫形式

substring(int beginIndex)返回該字符串從beginIndex開始到結尾的子字符串;

?substring(int beginIndex,int endIndex)返回該字符串從beginIndex開始到endsIndex結尾的子字符串

?trim()返回該字符串去掉開頭和結尾空格后的字符串

split(String regex)將一個字符串按照指定的分隔符分隔,返回分隔后的字符串數組


StringBuffer和StringBuilderh和String

String:字符串常量

StringBuffer:字符創變量,線程安全的

StringBuilder:字符創變量,線程非安全的

三者在執行速度方面的比較:StringBuilder >? StringBuffer? >? String

String類型是不可改變的對象了,由于這種機制,每當用String操作字符串時,實際上是在不斷的創建新的對象,而原來的對象就會變為垃圾被GC回收掉,從而導致效率低。

而StringBuffer與StringBuilder就不一樣了,他們是字符串變量,是可改變的對象,每當我們用它們對字符串做操作時,實際上是在一個對象上操作的,這樣就不會像String一樣創建一些而外的對象進行操作了,當然速度就快了。

當我們在字符串緩沖去被多個線程使用是,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當然大多數情況下就是我們是在單線程下進行的操作,所以大多數情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。

對于三者使用的總結

?1.如果要操作少量的數據用 = String

2.單線程操作字符串緩沖區 下操作大量數據 = StringBuilder

3.多線程操作字符串緩沖區 下操作大量數據 = StringBuffer

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,719評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,129評論 0 62
  • 95年冬天,應該是我人生中,感覺最為寒冷的一個冬天,所有發生的事,刻骨銘心,所有感恩的人,一生難忘。以至于二十多年...
    小狐三問閱讀 757評論 4 7
  • 如題,剛剛踏入大學一兩個月了,從開學時的興奮、忐忑,到現在的迷茫、無助,其實并沒有什么特殊的經歷,可能是和想象的差...
    manman路閱讀 390評論 0 3
  • La La Land看后,最心動女主的服裝設計,簡直穿衣典范,美麗動人。 但我最愛 最后十分鐘的情感大爆發。 影片...
    心有靈西_閱讀 305評論 0 0