java小結(jié)

八大基本變量

boolean--1bit

byte--8bit

short--16bit

int--32bit

long--64bit

char--16bit

float--32bit

double--64bit

條件和循環(huán)語句

1.if 語句

語法說明

if 是該語句中的關(guān)鍵字,后續(xù)緊跟一對(duì)小括號(hào),該對(duì)小括號(hào)任何時(shí)候不能省略,小括號(hào)的內(nèi)部是具體的條件,語法上要求該表達(dá)式結(jié)果為boolean 類型。后續(xù)為功能的代碼,也就是當(dāng)條件成立時(shí)執(zhí)行的代碼,在程序書寫時(shí),一般為了直觀的表達(dá)包含關(guān)系,功能代碼一般需要縮進(jìn)。

注意:1.if(條件表達(dá)式)后續(xù)一般不書寫分號(hào)

if 語句的執(zhí)行流程為:如果條件表達(dá)式成立,則執(zhí)行功能代碼,如果條件表達(dá)式不成立,則不執(zhí)行后續(xù)的功能代碼。


if-else 語句

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

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

執(zhí)行順序:如果條件成立,則執(zhí)行if 語句中的功能代碼,否則執(zhí)行else 中的功能代碼。當(dāng)程序中有多個(gè)if 時(shí),else 語句和最近的if 匹配。


switch 語句

switch 關(guān)鍵字的中文意思是開關(guān)、轉(zhuǎn)換的意思,switch 語句在條件語句中特別適合做一組變量相等的判斷,在結(jié)構(gòu)上比if 語句要清晰很多。

當(dāng)表達(dá)式的值和對(duì)應(yīng)case 語句后的值相同時(shí),既從該位置開始向下執(zhí)行,一直執(zhí)行到switch 語句的結(jié)束,在執(zhí)行中,如果遇到break 語句,則結(jié)束switch 語句的執(zhí)行。



while 循環(huán):

在執(zhí)行時(shí),如果布爾表達(dá)式的結(jié)果為真,則循環(huán)中的動(dòng)作將被執(zhí)行。這將繼續(xù)下去,只要該表達(dá)式的結(jié)果為真。


do...while 循環(huán):

do ... while循環(huán)類似于while循環(huán),不同的是一個(gè)do ... while循環(huán)是保證至少執(zhí)行一次。


for 循環(huán):

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

for循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以有效地編寫需要執(zhí)行的特定次數(shù)的循環(huán)。

知道多少次的任務(wù)是要重復(fù)一個(gè)for循環(huán)是有好處的。

步驟:

初始化步驟首先被執(zhí)行,并且僅一次。這個(gè)步驟可聲明和初始化任何循環(huán)控制變量。不需要把一個(gè)聲明在這里,只要一個(gè)分號(hào)出現(xiàn)。

接下來,布爾表達(dá)式求值。如果是 true,則執(zhí)行循環(huán)體。如果是 false,則循環(huán)體不執(zhí)行和流程控制的跳轉(zhuǎn)到下一個(gè)語句過去的for循環(huán)。

之后循環(huán)體在for循環(huán)執(zhí)行時(shí),控制流程跳轉(zhuǎn)備份到更新語句。該語句允許更新任何循環(huán)控制變量。這個(gè)語句可以留空,只要一個(gè)分號(hào)出現(xiàn)的布爾表達(dá)式之后。

布爾表達(dá)式現(xiàn)在再次評(píng)估計(jì)算。如果是 true,循環(huán)執(zhí)行,并重復(fù)這個(gè)過程(循環(huán)體,然后更新的步驟,然后布爾表達(dá)式)。之后,布爾表達(dá)式為 false,則循環(huán)終止。

foreach:

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

表達(dá):?這個(gè)計(jì)算結(jié)果完成需要循環(huán)數(shù)組。表達(dá)式可以是一個(gè)數(shù)組變量或方法調(diào)用返回一個(gè)數(shù)組。


break關(guān)鍵字:

關(guān)鍵字break是用來停止整個(gè)循環(huán)。 break關(guān)鍵字必須使用任何循環(huán)或switch語句中。

關(guān)鍵字break將停止最內(nèi)層循環(huán)的執(zhí)行,并開始執(zhí)行的下一行代碼的程序段后。


continue 關(guān)鍵字:

continue關(guān)鍵字可以在任一環(huán)的控制結(jié)構(gòu)可以使用。它使循環(huán)立即跳轉(zhuǎn)到循環(huán)的下一次迭代.

在for循環(huán)中,continue關(guān)鍵字會(huì)導(dǎo)致流程控制的立即跳轉(zhuǎn)到更新語句。

在一個(gè)while循環(huán)或do/while循環(huán),流控制的立即跳轉(zhuǎn)到布爾表達(dá)式。


格式化輸出

1.DecimalFormat

DecimalFormat是NumberFormat的一個(gè)具體子類,用于格式化十進(jìn)制數(shù)字

符號(hào)含義

0 一個(gè)數(shù)字,若不存在,用0填充

# 一個(gè)數(shù)字,不包括 0

. 小數(shù)的分隔符的占位符

, 分組分隔符的占位符?如:#,# 那么10會(huì)變?yōu)?,0

; 分隔格式。

- 缺省負(fù)數(shù)前綴。

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

? 乘以 1000 和作為千進(jìn)制貨幣符顯示;用貨幣符號(hào)代替;如果雙寫,用

國際貨幣符號(hào)代替。如果出現(xiàn)在一個(gè)模式中,用貨幣十進(jìn)制分隔符代

替十進(jìn)制分隔符。

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));

結(jié)果:

12.3

12.3

012.340

12.34


2.printf

參數(shù) 輸出格式:指定數(shù)據(jù)輸出時(shí)的格式;

輸出字符串:指定要輸出的數(shù)據(jù)。

格式替代符

%b 相對(duì)應(yīng)的參數(shù)被視為含有要被處理的轉(zhuǎn)義序列之字符串。

%c ASCII字符。顯示相對(duì)應(yīng)參數(shù)的第一個(gè)字符

%d, %i 十進(jìn)制整數(shù)

%e, %E, %f 浮點(diǎn)格式

%g %e或%f轉(zhuǎn)換,看哪一個(gè)較短,則刪除結(jié)尾的零

%G %E或%f轉(zhuǎn)換,看哪一個(gè)較短,則刪除結(jié)尾的零

%o 不帶正負(fù)號(hào)的八進(jìn)制值 %s 字符串

%u 不帶正負(fù)號(hào)的十進(jìn)制值

%x 不帶正負(fù)號(hào)的十六進(jìn)制值,使用a至f表示10至15

%X 不帶正負(fù)號(hào)的十六進(jìn)制值,使用A至F表示10至15


常用類型

1.Arrays

Arrays靜態(tài)方法:

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

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

copyOf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?復(fù)制數(shù)組

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

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

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

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

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

toString ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 轉(zhuǎn)換為字符串

附:數(shù)組聲明的三種方式

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個(gè)字符;

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

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

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

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

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

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

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

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

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

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

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

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

split(String regex)將一個(gè)字符串按照指定的分隔符分隔,返回分隔后的字符串?dāng)?shù)組


StringBuffer和StringBuilderh和String

String:字符串常量

StringBuffer:字符創(chuàng)變量,線程安全的

StringBuilder:字符創(chuàng)變量,線程非安全的

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

String類型是不可改變的對(duì)象了,由于這種機(jī)制,每當(dāng)用String操作字符串時(shí),實(shí)際上是在不斷的創(chuàng)建新的對(duì)象,而原來的對(duì)象就會(huì)變?yōu)槔唬牵没厥盏簦瑥亩鴮?dǎo)致效率低。

而StringBuffer與StringBuilder就不一樣了,他們是字符串變量,是可改變的對(duì)象,每當(dāng)我們用它們對(duì)字符串做操作時(shí),實(shí)際上是在一個(gè)對(duì)象上操作的,這樣就不會(huì)像String一樣創(chuàng)建一些而外的對(duì)象進(jìn)行操作了,當(dāng)然速度就快了。

當(dāng)我們?cè)谧址彌_去被多個(gè)線程使用是,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當(dāng)然大多數(shù)情況下就是我們是在單線程下進(jìn)行的操作,所以大多數(shù)情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。

對(duì)于三者使用的總結(jié)

?1.如果要操作少量的數(shù)據(jù)用 = String

2.單線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) = StringBuilder

3.多線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) = StringBuffer

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

推薦閱讀更多精彩內(nèi)容

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