版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)習(xí)要求與方法
1.1.每天做筆記,2天到3天寫階段性總結(jié)
1.2.***學(xué)習(xí)方法四步曲:
1,這個技術(shù)是什么?
2,有什么特點?
3,怎么用?
4,什么時候用?
第1天課程
2.?<Java編程基礎(chǔ)>>>
2.1.基本概念
2.2.什么是軟件
軟件是一系列按照特定順序組織的計算機(jī)數(shù)據(jù)和指令的集合。程序設(shè)計的最終結(jié)果是軟件。
系統(tǒng)軟件:系統(tǒng)軟件為計算機(jī)使用提供最基本的功能.
例如:DOS,Windows,Linux,Unix,MacOS,Android,iOS
應(yīng)用軟件:系統(tǒng)軟件并不針對某一特定應(yīng)用領(lǐng)域。而應(yīng)用軟件則相反,不同的應(yīng)用軟件根據(jù)
用戶和所服務(wù)的領(lǐng)域提供不同的功能。
例如:Word,Excel,PPT,QQ,FeiQ,凌波,UltraEdit,Eclipse
什么是計算機(jī)語言
計算機(jī)語言指用于人與計算機(jī)之間通訊的語言。計算機(jī)語言是人與計算機(jī)之間傳遞信息的媒
介。
為了使電子計算機(jī)進(jìn)行各種工作,就需要有一套用于編寫計算機(jī)程序的數(shù)字、字符和語法規(guī)
劃,由這些組成計算機(jī)指令就是計算機(jī)語言。
軟件就是由若干條計算機(jī)語言所組成的。
計算機(jī)語言分類
機(jī)器語言:
機(jī)器語言是直接用二進(jìn)制代碼指令表達(dá)的計算機(jī)語言,指令是用。和1組成的一串代碼,
它們有一定的位數(shù),并分成若干段,各段的編碼表示不同的含義。
匯編語言:
匯編語言是使用一些特殊的符號來代替機(jī)器語言的二進(jìn)制碼,計算機(jī)不能直接識別,需
要用一種軟件將匯編語言翻譯成機(jī)器語言。
高級語言:
使用普通自然語言進(jìn)行編寫源代碼,通過編譯器將源代碼翻譯成計算機(jī)直接識別的機(jī)器
語言,之后再由計算機(jī)執(zhí)行。
PositionPositionRatingsDelta
DeltainPosidonProgrammingLanguageStatus
Dec2011Dec2010Dec2011Dec2010
11Java17.561%-0.44%A
22C17.057%*0.98%A
33C**8.252%-0.76%A
45fC*8.205%*1.52%A
58tftObjective-C6.805%*3.56%A
64IIPHP6.001%-1.51%A
77(Visual)Basic4.757%-0.36%A
86uPython3.492%-2.99%A
99Perl2.472%*0.14%A
1012ttJavaScript2.199%*0.69%A
1111Ruby1.494%-0.29%A
1210IIDelphi/ObjectPascal1.245%-0.93%A
1313Lisp1.175%*0.11%A
1423ttmttttPUSQL0.803%*0.24%A
1514iTransact-SQL0.746%-0.03%A
1616Pascal0.734%-0.03%A
1718tAda0.632%-0.02%B
1835nttttttttLogo0.619%?0.26%B
1917nAssembly0.563%-0.10%B
2025ntttABAP0.560%*0.01%B
高級語言工作原理
Wind。3s下c語言編程過程Jav支語言編程過程
2.3.*Java開發(fā)環(huán)境搭建
2.3.1.*Java平臺分類
JavaSE(JavaPlatformStandardEdition)
Java平臺標(biāo)準(zhǔn)版,包含那些構(gòu)成Java語言核心的類,可以理解為學(xué)習(xí)Java的基礎(chǔ)(基
礎(chǔ)班所要學(xué)的)
JavaEE(JavaPlatformEnterpriseEdition)
Java平臺企業(yè)版,包含JavaSE,并且還包含用于開發(fā)企業(yè)級應(yīng)用的類
準(zhǔn)確的說JavaEE是一套用于企業(yè)開發(fā)的技術(shù)規(guī)范,包含很多組件,13種核心技術(shù),如:
XML,JSP、Servlet、JDBC、JavaMail等.(就業(yè)班所學(xué))
JavaME(JavaPlatformMicroEdition)
Java平臺微型版,包含JavaSE的一部分,另外提供一些用于小型設(shè)備上的類,例如:
手機(jī)、機(jī)頂盒、汽車導(dǎo)航儀(目前用的很少,基本已經(jīng)被淘汰)
下載地址
http:〃java,sun,com
2009年SUN(StanfordUniversityNetwork)公司被Oracle公司收購之后該地址跳轉(zhuǎn)到
Oracle網(wǎng)站
2.3.2.*JDK與JRE
JDK(JavaDevelopmentKit)
Java開發(fā)工具,包含開發(fā)Java程序的所有組件,包含JRE
JRE(JavaRuntimeEnvironment)
Java運行環(huán)境,如果要運行Java程序,就需要JRE的支持
常用組件:
src.zipJava是一門開源的語言,其源代碼都在這個壓縮包中
rt.jarJava的基礎(chǔ)核心類庫,我們編寫Java程序時使用的class都在這個jar
包中
javac.exe編譯器,將.java源代碼編譯為.class文件
java,exe虛擬機(jī),運行Java程序的工具
jar.exe將class文件打成jar包的工具
javadoc.exe生成幫助文檔的工具
2.3.3.**常用DOS命令
跳轉(zhuǎn)到指定盤符:盤符:例:C:D:E:
跳轉(zhuǎn)到指定目錄:cd目錄例:cdItcast\day01cdTencent\QQ\Bin
顯示當(dāng)前目錄下文件:dir
跳轉(zhuǎn)到上級目錄:cd..
跳轉(zhuǎn)到根目錄:cd\
清屏:cis
2.3.4.*環(huán)境變量
環(huán)境變量是指在操作系統(tǒng)中用來指定操作系統(tǒng)運行環(huán)境的一些參數(shù)
path:
如果想在任意目錄下運行一個程序,我們就需要將程序所在的路徑配置在path環(huán)境變
量中。
通常我們會將javac.exe所在目錄配置到path中,因為我們需要在任意目錄下都能編
譯Java源文件。
配置完成之后可以在命令行輸入javac測試,如果顯式幫助信息則是配置成功。
classpath:
Java虛擬機(jī)運行時加載類的路徑。JDK5之后不配置默認(rèn)為當(dāng)前目錄“.如使用JDK1.4
或以下版本時需要人工配置。
暫時不需要配置,默認(rèn)加載當(dāng)前目錄下的所有class文件。(實際開發(fā)中為了避免出錯,
其實是不設(shè)置的)
配置方式(臨時):
a.命令行
點擊屏幕左下角開始-運行-輸入cmd-在命令行中直接輸入命令進(jìn)行修
改。(Windows+R鍵可以直接跳出運行命令行。)
查看變量值:set變量名
設(shè)置變量值:set變量名=變量值,多個值之間使用分號“;”分割,引用變量時使
用”變量名獷形式
注意:此種方式僅適用于當(dāng)前窗口
b.我的電腦
鼠標(biāo)右鍵點擊我的電腦-屬性-高級-環(huán)境變量
找到要修改的變量將其值修改,此種方式永久有效
*操作
**新建一個環(huán)境變量,格式如下
***變量名JAVAJ40ME
***變量值JDK的安裝目錄。(D:\develop\Java\jdkL6.030)
**編輯Path
***變量名Path
***變量值%JAVA_HOME%\bin;本身的環(huán)境變量值
注意:
配置環(huán)境變量之后可以查看編譯器(javac.exe)和虛擬機(jī)(java.exe)版本,虛擬機(jī)版本
不能低于編譯器。
使用哪個版本的編譯器和虛擬機(jī)取決于path環(huán)境變量,如果虛擬機(jī)版本過低,可以通
過環(huán)境變量來修改。
編譯器版本查看方式:javac-version
虛擬機(jī)版本查看方式:java-version
JDK版本
JDK1.0,JDK1.1,JDK1.2、JDK1.3>JDK1.4,JDK5.0,JDK6.0、JDK7.0
JDK5.0版本較1.4大幅變更,也從1.4升級為5.0
2.4.第一個Java程序
2.4.1.編寫源代碼
新建文本文檔,擴(kuò)展名改為.java,在文件中寫入代碼。
123
|class|A/
6
Ipublicstaticuoidmain(Strinq「1
System.out.pr[ntln("HelloWorld")]
9
a8
4
1.Java程序的開始,所有java代碼都要馬在class中.
2.這個程序的名字,可隨意定義.編譯之后.class文件的名字就是這個名字.
3.程序的開始標(biāo)記,和4對應(yīng).
4.程序的結(jié)束標(biāo)記,和3對應(yīng).
5.主函數(shù),Java程序的入口,程序啟動后將會執(zhí)行主函數(shù)中的代碼.
6.主函數(shù)的開始標(biāo)記,和7對應(yīng).
7.主函數(shù)的結(jié)束標(biāo)記,和6對應(yīng).
8.功能執(zhí)行代碼,打印出一行文本:HelloWorld
9.Java代碼的結(jié)束標(biāo)記
2.4.2.*注意:隱藏已知文件擴(kuò)展名”
windows操作系統(tǒng)默認(rèn)是隱藏已知文件擴(kuò)展名的。
請測試新建一個文本文檔,如果看到的文件名是“新建文本文檔”而不是“新建文本
文檔.txt",那么說明你的擴(kuò)展名被隱藏了。
請選擇菜單欄中的工具-文件夾選項-查看-下拉滾動條找到“隱藏已知文件
擴(kuò)展名”-取消掉這一項。
編譯字節(jié)碼文件
a.左鍵單機(jī)屏幕左下角開始-運行-輸入cmd啟動命令行窗口
b.使用DOS命令進(jìn)入源代碼所在目錄
c.使用編譯器(javac.exe)編譯源代碼,javac文件名.java,編譯后在該目錄中會出現(xiàn)
擴(kuò)展名為class的字節(jié)碼文件
運行程序
使用虛擬機(jī)(java,exe)運行class文件,java文件名,注意不要加擴(kuò)展名,因為虛擬機(jī)
只能運行class文件,擴(kuò)展名省略不寫,如寫則報錯。
2.5.UltraEdit或者Ediplus的使用(基本功能了解就行)
使用記事本編輯Java程序有些麻煩,我們可以使用一些工具來幫助我們更好的編寫Java
代碼。
UltraEdit就是一款這樣的工具,它提供了顯示行號、關(guān)鍵字高亮以及自動縮進(jìn)的功能。
注意:關(guān)鍵字高亮功能需要將當(dāng)前操作文檔保存成.java文件之后才能使用。
顯示行號:視圖-顯示行號
取消備份:高級-配置-備份-不要備份
自動更正:高級-配置-語法高亮-取消自動更正關(guān)鍵字
2.6.進(jìn)制(計算機(jī)底層運算原理,要求明白)
2.6.1.生活中常用的進(jìn)制:
最常用的10進(jìn)制,半天12小時進(jìn)制,全天24小時進(jìn)制,一星期7天進(jìn)制,一個月30天進(jìn)
制,一年365天進(jìn)制。
十進(jìn)制
由0到9的數(shù)字組成,逢十進(jìn)一
我們最常用的一種進(jìn)制
01234567891011121314151617181920
2.6.2.*二進(jìn)制
由0和1組成,逢二進(jìn)??
計算機(jī)中存儲任何數(shù)據(jù)都是以二進(jìn)制的形式進(jìn)行存儲的
0110111001011101111000
2.6.3,八進(jìn)制
由0到7的數(shù)字組成,逢八進(jìn)一
八進(jìn)制在程序中以0開頭
01234567101112131415161720
2.6.4.十六進(jìn)制
由0到9的數(shù)字和A-F的字母組成,逢十六進(jìn)-
十六進(jìn)制在程序中以O(shè)x開頭
0123456789ABCDEF
101112131415161718191AIBICIDIEIF20
2.6.5.進(jìn)制轉(zhuǎn)換
a.十進(jìn)制轉(zhuǎn)二、八、十六進(jìn)制
除法取余,將要轉(zhuǎn)換的數(shù)除以進(jìn)制數(shù),記住余數(shù),再除以進(jìn)制數(shù),記住余數(shù),直到這個
數(shù)等于0為止,將所有余數(shù)反轉(zhuǎn)就是對應(yīng)的二進(jìn)制表現(xiàn)形式。
b.二、八、十六進(jìn)制轉(zhuǎn)十進(jìn)制
乘法,將要轉(zhuǎn)換的數(shù)編號,編號從低位開始,從0開始,將每一位上的數(shù)乘以進(jìn)制數(shù)的
編號次方,最后將所有乘得的結(jié)果相加就是十進(jìn)制表現(xiàn)形式。
c.二進(jìn)制和八進(jìn)制互轉(zhuǎn)
八進(jìn)制的每位對應(yīng)二進(jìn)制的三位。
a)二進(jìn)制和十六進(jìn)制互轉(zhuǎn)
卜六進(jìn)制的每一位對應(yīng)二進(jìn)制的四位。
2.6.6.二進(jìn)制負(fù)數(shù)
一個負(fù)數(shù)的二進(jìn)制表現(xiàn)形式就是這個負(fù)數(shù)忽略符號的正數(shù)對應(yīng)的二進(jìn)制取反再加一。
計算機(jī)中存儲的二進(jìn)制數(shù)最高位是0則是正數(shù),是1則是負(fù)數(shù)。
第2天課程
2.7.**碼表(時間長了就記住了,以后還會經(jīng)常遇到。)
2.7.1.ASCII:英文碼表,每個字符占1個字節(jié)。A是65,a是97,這個要知道。
2.7.2.GB2312:兼容ASCII,包含中文,每個英文占1個字節(jié)(正數(shù)),中文占2個字節(jié)(2
個負(fù)數(shù))。
2.7.3.GBK、GB18030:兼容GB2312,包含更多中文,每個英文占1個字節(jié)(正數(shù)),中文
占2個字節(jié)(第一個負(fù)數(shù)、第二個可正可負(fù))。
2.7.4.^Unicode:國際碼表,每個字符占2個字節(jié)。Java中存儲字符類型就是使用的
Unicode編碼。
2.7.5.UTF-8:國際碼表,英文占1個字節(jié),中文占3個字節(jié)。
3.?<Java語法>>>
3.1.*基本格式
所有Java代碼都應(yīng)該在一個class中。
Java是嚴(yán)格區(qū)分大小寫的。
Java是一種自由格式的語言。
Java代碼分為結(jié)構(gòu)定義語句和功能執(zhí)行語句,結(jié)構(gòu)定義語句以大括號結(jié)束,功能執(zhí)行語句
最后必須以分號結(jié)束。
3.2.注釋
單行注釋和多行注釋是在程序用來標(biāo)記一些特殊的文本,這些文本不參與編譯運行。
單行注釋:〃注釋內(nèi)容
多行注釋:/*注釋內(nèi)容*/
文檔注釋是Java中特有的一種注釋,它可以通過JDK中的工具(javadoc.exe)解析,生成
幫助文檔。
文檔注釋:/**注釋內(nèi)容*/
3.3.*標(biāo)識符
3.3.1.什么是標(biāo)識符
標(biāo)識符可以理解為程序中我們自定義的一些名字,包括:包名、類名、函數(shù)名、變量名、常
量名(這個東西后面遇到,邊學(xué)邊記,現(xiàn)在就是了解。)
3.3.2.*標(biāo)識符的命名規(guī)則
由大小寫字母、數(shù)字、下劃線(_)和美元符號($)組成,開頭不能是數(shù)字。不能使用關(guān)鍵
字。推薦使用全英文。
3.3.3.*標(biāo)識符通用規(guī)范(沒遇到的先了解)
類名、接口名:
所有單詞首字母大寫,駝峰式命名,
例如:XxxYyyZzz(后面主要就是用它)
變量名、函數(shù)名:
第一個單詞首字母小寫,其他單詞首字母大寫,駝峰式命名,例如:xxxYyyZzz
常量名:
所有字母都大寫,單詞之間用下劃線分割,例如:XXX_YYY_ZZZ
包名:
全部小寫,例如:XXX.yyy.zzz
3.4.關(guān)鍵字(知道有這么回事就行,后面會學(xué),學(xué)到誰就自然會了)
abstractbooleanbreakbytecase
catchcharclasscontinuodefau]t
dodoubleelseextendsfinal
finallyfloatforifimplements
importinstanceofintinterfacelong
nativenewpackageprivateprolecled
publicreturnshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
注:java無sizeof,goto,const關(guān)鍵字,但不能用gotoconst作為變量名(這個知識
知道就行,沒人會去用這兩個詞作為變量名)
3.5.常量
3.5.1.分類
整型
整數(shù),4個字節(jié)。
長整型
整數(shù),8個字節(jié)。以L結(jié)尾。
單精度浮點數(shù)
小數(shù),4個字節(jié)。以F結(jié)尾。
雙精度浮點數(shù)
小數(shù),8個字節(jié)。
布爾
只有兩個值,真(true)或假(false),1個字節(jié)。
字符
單個字符,2個字節(jié)。例如:'a','中','5',''u0026','\u0027'
在字符常量中,斜杠(\)是一個特殊的字符,它的作用是用來轉(zhuǎn)義后面一個字符,這些字
符通常是不可見的或者有特殊意義的。
''r'回車,回到一行的開始
''n'換行,換到下一行
''t'制表符,鍵盤上的Tab
'\b'類似退格,鍵盤上的Backspace
以上字符都不可見,無法直接表示,所以用斜杠加上另外一個字符來表示。
單引號,Java代碼中單引號表示字符的開始和結(jié)束,如果直接寫程序會認(rèn)為前兩個是
一對,報錯。
雙引號,Java代碼中雙引號表示字符串的開始和結(jié)尾,如果要寫一個包含雙引號的字
符串那么這個雙引號也需要轉(zhuǎn)義。
斜杠,Java代碼中的斜杠是轉(zhuǎn)義字符,用來和后面一個字符配合使用,在真正需要用
斜杠的時候那么就要用另一個斜杠來轉(zhuǎn)義。
以上字符都有特殊意義,無法直接表示,所以用斜杠加上另外一個字符來表示?
字符串
由若干個字符組成的一串??梢允且粋€字符、多個字符、或者一個都沒有。字符串沒有固定
大小。
空
null,只有這一個值,用來表示一個引用為空。
3.6.變量
intx=5;
System.out.println(x);
x=1+1;
System,out.println(x);
x=x+1;
System,out.println(x);
上面的x就是一個變量,變量沒有固定的值,是在內(nèi)存中開辟的一片空間。
Java中的變量中只能存儲同一種類型的值。
局部變量在被取值之前必須初始化(第一次給變量賦值)o
3.6.1.*數(shù)據(jù)類型分類
Java語言是強(qiáng)類型語言,對于每一種數(shù)據(jù)都定義了明確
的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間
-整數(shù)類型(byte,short,int.long)
「數(shù)值型J
、浮點類型(float,double)
〔基本數(shù)據(jù)類型?字符型(char)
I布爾型(boolean)
數(shù)甥類型Y
廠類(class)
I引電數(shù)據(jù)類型Y法,、
嘍口(interface)
I數(shù)組(口)
整數(shù)默認(rèn):int小數(shù)默認(rèn):double
a.基本數(shù)據(jù)類型:8種
整數(shù):
byte1個字節(jié),最小值:T28,最大值:127
short2個字節(jié),最小值:-32768,最大值:32767
int4個字節(jié),最小值:-2147483648,最大值:2147483647
long8個字節(jié),最小值:-9223372036854775808,最大值:
9223372036854775807
浮點數(shù):
float4個字節(jié),最小值:L4E-45,最大值:3.4028235E38
double8個字節(jié),最小值:4.9E-324,最大值:1.7976931348623157E308
字符:
char2個字節(jié),最小值:0,最大值:65535
布爾:
boolean1個字節(jié),true或false
b.引用數(shù)據(jù)類型:
類、接口、數(shù)組都是引用數(shù)據(jù)類型,除了8種基本數(shù)據(jù)類型,其他所有類型都是引用數(shù)
據(jù)類型。
類型轉(zhuǎn)化
a.自動類型轉(zhuǎn)換
在byte、short、char參與運算的時候會自動提升為int,相當(dāng)于將一個占空間較小的
值放入了一個較大的空間。
b.強(qiáng)制類型轉(zhuǎn)換
可以將一個占空間較大的值使用(類型)的形式強(qiáng)制放入一個較小的空間,有可能損失精
度。
c.字符串轉(zhuǎn)換
任何值和字符串相加都會得到字符串。
變量的作用域與生命周期
作用域:變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作
用域中不能定義兩個同名變量。
生命周期:變量的生命周期從定義時開始,超出作用域后結(jié)束。變量生命周期以外不能使用。
3.7.運算符
算數(shù)運算符
算術(shù)運算符
運算符運算范例結(jié)果
+正號+33
-負(fù)號b=4;-b;-4
+加5+510
-減6-42
*乘3*412
/除5/51
%取模5%50
++自增(前)a=2;b=++a;a=3;b=3
4H-自增(后)a=2;b=a++;a=3;b=2
一自」(前)a=2;b=一一aa=l;b=l
一自減(后)a=2;b=a-a=l;b=2
+字符串相加*He*+*llo*"Hello"
加號:在操作數(shù)字、字符、字符串時是不同的,兩個字符相加得到的是碼表值,兩個字符串
相加是將字符串連接在一起。
除號:整數(shù)在使用除號操作時,得到的結(jié)果仍為整數(shù)(小數(shù)部分忽略)。
取模:模數(shù)觥右邊的數(shù))的符號忽略不計,結(jié)果的正負(fù)取決于被模數(shù)觥左邊的數(shù))。
自增:符號在前就是先運算后取值,符號在后則是先取值后運算。
習(xí)題:
a.System,out.printin(3500/1000*1000);
b.某個培訓(xùn)中心要為新到的學(xué)員安排房間,假設(shè)共有x個學(xué)員,每個房間可以住6人,
讓你用一個公式來計算他們要住的房間數(shù)?
賦值運算符
賦值運算符
運管符S越--算A-A-范例結(jié)果
=賦值a=3;b=2;a=3;b=2;
+=加等于a=3;b=2;a+=b;a=5;b=2;
--夠等于a=3;b=2;a-=b;a=l;b=2;
行乘等于a=3;b=2;a*=b;a=6;b=2;
/=除等于a=3;b=2;a/=ba=l;b=2;
新模等于a=3;b=2;a%=ba=l;b=2;
等于:可以多個連用,例如:x=y=z=5;
加等于:x+=5;相當(dāng)于x=x+5;
面試題:
以下代碼正確的是?(多選)
a.byteb=1+1;
b.byteb=1;b=b+1;
c.byteb=1;b+=1;
d.byteb=1;b=++b;
比較運算符
比較運算符
運算符運算范例結(jié)果
相等于4==3false
1=不等于4*=3true
<小于4<3false
>大干4>3true
<=小于等于4<=3false
>=大于等于4>=false
instanceof檢查是否是類的對象“Hello'instanceofStringture
比較運算符會將運算符左右兩邊的值進(jìn)行比較,運行結(jié)束之后返回的都是boolean值。
注意運算符==不要寫成=
邏輯運算符
邏輯運算符
、一
運算符運算范例結(jié)果
AND(與)false&truefalse
1OR(或)false|truetrue
*
XOR(異或)truefalsetrue
1NotGE)\truefalse
AND(短路)false&&truefalse
IIOR(短路)false||truetrue
邏輯運算符操作的都是布爾值,運行結(jié)束之后返回的也是boolean值
&兩邊都為true結(jié)果才為true,只要有一邊是false,結(jié)果就是false
兩邊都為false結(jié)果才為false,只要有'■邊是true,結(jié)果就是true
判斷兩邊是否不同,不同則為true,相同則為false
!取反,!true結(jié)果是false,!fasle結(jié)果是true
&&和&結(jié)果相同,具有短路效果,如果前半是false,表達(dá)式結(jié)果一定為false,不運
行后一半
II和II結(jié)果相同,具有短路效果,如果前半是true,表達(dá)式結(jié)果一定為true,不運
行后一半
分析以下程序運行結(jié)果:
intx=1;
inty=2;
System.out.printin(x++==y&++x>y++);
System,out.printin(x);
System,out.printin(y);
intx=1;
inty=2;
System,out.printin(x++==y&&++x>y++);
System,out.printin(x);
System,out.printin(y);
intx=1;
inty=2;
System,out.printin(x++==y|++x>y++);
System.out.printin(x);
System,out.println(y);
intx=1;
inty=2;
System,out.printin(x++==y||++x>y++);
System,out.printin(x);
System,out.printin(y);
&&在前半是false的時候短路
II在前半是true的時候短路
位運算符
任何信息在計算機(jī)中都是以二進(jìn)制的形式保存的,&、|、邛余了可以作為邏輯運算符,也可
以做為位算符。
它們對兩個操作數(shù)中的每一個二進(jìn)制位都進(jìn)行運算,0當(dāng)做false,1當(dāng)做true。
&將兩個二進(jìn)制數(shù)每一位進(jìn)行與運算,兩邊都為1結(jié)果才為1,只要有一邊是0,結(jié)果就
為0o
將兩個二進(jìn)制數(shù)每一位進(jìn)行或運算,兩邊都為0結(jié)果才為0,只要有一邊是1,結(jié)果就
為lo
將兩個二進(jìn)制數(shù)每一位進(jìn)行異或運算,只要兩邊不同結(jié)果就為1,相同則為0。
我們可以對數(shù)據(jù)按二進(jìn)制位進(jìn)行移位操作,java的移位運算符有三種:
?左移將二進(jìn)制的每一位向左移,低位補0。左移幾位就相當(dāng)于乘以2
的幾次方。
?右移將二進(jìn)制的每一位向右移,原來高位是0就補0,原來高位是1
就補1。右移幾位就相當(dāng)于除以2的幾次方。
?>無無符號右移將二進(jìn)制的每一位向右移,高位補0。正數(shù)移動沒區(qū)別,負(fù)數(shù)移
動后變?yōu)檎龜?shù)。
練習(xí):
a.用&和〉來做十進(jìn)制轉(zhuǎn)十六進(jìn)制
b.有兩個int型變量a和b,在不使用第三個變量的情況下交換兩個變量中的值
運算符優(yōu)先級
.[]0{};,
++—~1(數(shù)據(jù)類型)
*/%
+-
???>
<><=>=
——1—
&
人
1
&&
11
?:
=*=/=%=+=-=?=?=?>=&=八=1=
思考一下代碼運行結(jié)果:
System,out.println(l+2*3);
System,out.println(false&&truetrue);
System,out.println(true||true&&false);
inta=2;
intb=a+3*a++;
System,out.println(b);
inta=2;
intb=a+++3*a;
System,out.println(b);
inta=1;
intb=2;
System.out.printIn(a+++b);//a+++b相當(dāng)于a+(++b)
盡量寫簡單的表達(dá)式,遇到運算符優(yōu)先級的問題使用括號解決。
第3天課程
3.8.語句
順序結(jié)構(gòu)
顧名思義,就是程序從上到下一行一行執(zhí)行的結(jié)構(gòu),中間沒有判斷和跳轉(zhuǎn),直到程序結(jié)束。
選擇結(jié)構(gòu)
程序具備多個分支,通過條件判斷決定程序選擇那一條分支執(zhí)行
3.8.1.if語句:
通過if...elseif...else決定程序流程。
如果if中的條件滿足則執(zhí)行其中語句,if未滿足則繼續(xù)判斷elseif,如果滿足則執(zhí)
行,不滿足繼續(xù)判斷下一個elseif,如果所有都不滿足,則執(zhí)行else。
練習(xí):
用ifelse語句判斷一個數(shù)是奇數(shù)還是偶數(shù)。
用戶輸入一個字符,用程序判斷是否為小寫字母,如果是,請輸出“您輸入的字符
是小寫字母”。
3.8.2.switch語句:
通過switch...case...default語句控制程序流程。
根據(jù)switch后括號中的值判斷運行哪一個case,這個值可以是byte、short>ch;ar>
into
default語句是可選的,如果所有case都不滿足,則會執(zhí)行default。
一旦匹配到一個case,程序就會從這個case向下執(zhí)行,執(zhí)行完?個case之后不會跳過
其他的case,如需跳過請使用breako
3.8.3.三元運算符
語法:表達(dá)式?結(jié)果1:結(jié)果2
如果表達(dá)式結(jié)尾為true取結(jié)果1,為false則取結(jié)果2。
注意三元運算符也是有短路的效果,根據(jù)表達(dá)式的結(jié)果,只運行冒號一邊的,另外一邊
的不參與運行。
練習(xí):
定義一個函數(shù),接收三個int參數(shù),返回最大的一個。
循環(huán)結(jié)構(gòu)
通過循環(huán)條件控制同一段代碼反復(fù)執(zhí)行多次,執(zhí)行完畢程序才會繼續(xù)往后運行
3.8.4.while
先判斷while中的表達(dá)式結(jié)果是否為true,true則執(zhí)行循環(huán)體,執(zhí)行結(jié)束之后再次判
斷,如果表達(dá)式結(jié)果為false則跳出循環(huán)。
練習(xí):
打印出0-9
打印出a-z
3.8.5.求出1-100以內(nèi)可以被3和7同時整除的數(shù)
〃求出1-100以內(nèi)可被3和7同時整除的數(shù),求一共有幾個
/*
分析:(1)得到1-100以內(nèi)所有的數(shù)
(2)判斷n%3==0&&n%7==0
*/
intcount=0;//計數(shù)器
intn=l;
while(n<=100){
if(n%3==0&&n%/==0){
System.out.printIn(n);
count++;
System,out.printin("1T00以內(nèi)可被3和7同時整除的數(shù)有“+countT
)
n++;
)
a.do...while
先執(zhí)行一次循環(huán)體,然后判斷while中的表達(dá)式,如果是true繼續(xù)執(zhí)行,如果是false
則跳出循環(huán)。
練習(xí):
編寫一個程序,這個程序不斷地讀取鍵盤上輸入的字符,直到讀到字符'q'時,
程序結(jié)束。
b.for
for循環(huán)的括號中有三條語句,都是可選項。
語句1:這條語句會在整個循環(huán)開始之前執(zhí)行,且僅運行一次,不參與循環(huán)。
語句2:必須是一個返回boolean值的表達(dá)式,如果寫了這個語句那么每次循環(huán)開始之
前會判斷,true則執(zhí)行循環(huán),false則不執(zhí)行。沒寫則直接執(zhí)行。
語句3:這條語句在每次循環(huán)體運行結(jié)束之后執(zhí)行。
練習(xí):
3.8.6.***使用雙重for循環(huán)打印多種*型圖案
i*
*01
**12
***23
****34
*****45
i空格*
*041
***133
*****225
*******317
*********409
3.8.7.continue、break、return區(qū)別?
continue:跳過本次次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)
break:結(jié)束循環(huán)
return:結(jié)束方法
第4天課程
3.9.***函數(shù)(方法)
函數(shù)的定義
函數(shù)就是一段有名字的代碼,可以完成某一特定功能。
如果有一段代碼要使用多次,我們可以給它起個名字,每次使用時通過名字調(diào)用,這樣就不
用每次都寫一大段代碼了。
如果某個函數(shù)在執(zhí)行的時候需要調(diào)用者傳入數(shù)據(jù),那么可以定義參數(shù)列表,用于接收數(shù)據(jù)。
如果函數(shù)運行之后需要返回給調(diào)用者數(shù)據(jù),那么需要指定返回值類型,并且用關(guān)鍵字return
返回。
定義函數(shù)的3個必要條件:返回值類型、函數(shù)名、參數(shù)列表。如果不需要參數(shù)也要寫小括號,
如果沒有返回值類型要寫void。
名詞解釋
形參:在定義函數(shù)時小括號中的參數(shù),用來接收數(shù)據(jù)的參數(shù)。
實參:在調(diào)用函數(shù)時真正傳入的參數(shù),傳遞給函數(shù)的數(shù)據(jù)。
參數(shù)類型:函數(shù)的參數(shù)的類型,一旦定義傳入時必須匹配。
返回值:函數(shù)運行結(jié)束后返回的值,使用return關(guān)鍵字返回。
返回值類型:函數(shù)運行結(jié)束后返回的值的類型,在類型非void情況下必須返回,而且必須
類型匹配。
函數(shù)的重載
多個函數(shù)的函數(shù)名相同,參數(shù)列表不同(個數(shù)、順序、類型),這就是函數(shù)的重載。在調(diào)用
函數(shù)的時候通過傳入的實參找到匹配的函數(shù)調(diào)用。
函數(shù)的重載和返回值類型無關(guān)。
3.10.數(shù)組
什么是數(shù)組
數(shù)組是一個類型一致,長度不可變的容器??梢酝ㄟ^索引操作容器中的每一個元素。
如果有多個類型相同的數(shù)據(jù)需要存儲,我們就可以將其定義為一個數(shù)組,這樣做省去了創(chuàng)建
多個變量的麻煩。
3.10.1.***如何定義數(shù)組
int[]arr=newint[3];
定義int數(shù)組arr,長度為3。其中所有元素都為默認(rèn)值0。
int[]arr=newint[]{1,2,3);
定義int數(shù)組arr,長度為3,其中3個元素分別為1、2、3??梢栽谌魏吻闆r使用。
int[]arr={1,2,3);
定義int數(shù)組arr,長度為3,其中3個元素分別為1、2、3。這種方式只能在給數(shù)組類型
變量賦值時使用。
3.10.2.***遍歷數(shù)組(訪問數(shù)組元素)
數(shù)組的長度
數(shù)組可以使用length屬性獲取其長度。
存在數(shù)組中的數(shù)據(jù)是有索引的,從0開始遞增,我們通過數(shù)組名和索引就可以操作其中
每一個元素。例如:
System.out.println(arr[0]);//打印數(shù)組中索引為。的元素
arr[l]=100;//給數(shù)組中索引為1的元素賦值為100
遍歷數(shù)組
由于數(shù)組可以通過索引獲取每一個元素,又可以通過length獲取長度,那么我們就可
以定義循環(huán)來遍歷數(shù)組中的每?個元素了。
publicstaticvoidmain(String[]args)
(
〃數(shù)組的3種定義寫法
int[]arrl=newint[]{1,2,3,6,8,0,9};
int[]arr2={1,2,3};
int[]arr3=newint[3];
System.out.print("[");〃為了美觀打印左中括號
for(inti=0;i<arr.length;i++){
if(i!=arr.length-1){
System,out.print(arr[i]+",");
}else{
System,out.print(arr[i]);
)
)
System.out.print("]”);/〃為了美觀打印右中括號
)
3.10.3.B:**獲取最值
獲取最大值
publicstaticintgetMax(int[]arr)
(
intmax=arr[0];
〃1從1開始,因為第一個數(shù)不用跟自己比
for(inti=l;i<arr.length;i++)
if(arr[i]>max)
(
max=arr[i];
)
)
returnmax;
)
**獲取最小值
publicstaticintgetMin(int[]arr)
(
intmin=arr[0];
〃1從1開始,因為第一個數(shù)不用跟自己比
for(inti=l;i<arr.length;i++)
(
if(arr[i]<min)
(
min=arr[i];
)
)
returnmin;
)
3.10.4.C:排序
*選擇排序
原理:如果拿0角標(biāo)上的元素依次和后面的元素進(jìn)行比較,
第?次內(nèi)循環(huán)結(jié)束后,最小值出現(xiàn)在了0角標(biāo)位置。
你就想想我們是如何打星星
****
***
**
*
publicstaticvoidselectSort(int[]arr)
//i<arr.length-1n個數(shù)兩兩比,nT次就能獲得最值。
for(inti=0;i<arr.length-1;i++)
//0角標(biāo)元素沒必要和自己比,所以j從1開始。
//發(fā)現(xiàn)j為了不重復(fù)比較,總是要比i大1,所以j從i+1開始
for(intj=i+l;j<arr.length;j++)
if(arr[j]<arr[i])
(
inttemp=arrEi];
arr[i]=arr[j];
arr[j]=temp;
)
)
)
*冒泡排序
原理:兩個相鄰元素進(jìn)行比較,第一次比較完以后,最大值出現(xiàn)在了最大角標(biāo)
處。
publicstaticvoidbubbleSort(int[]arr)
(
//i<arr.length-1n個數(shù)兩兩比,nT次就能獲得最值。
for(inti=0;i<arr.length-1;i++)
(
〃為了防止角標(biāo)越界,j<arr.length-1
〃為了減少比較次數(shù),j<arr.lengthT-i
for(intj=0;j<arr.length-l-i;j++)
(
if(arr[j]>arr[j+1])
(
inttemp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
)
)
}
)
3.10.5.***使用數(shù)組時的異常
如果訪問數(shù)組時索引越界(小于0或者大于length-1),會拋出異常:
ArrayIndexOutOfBoundsExcepion
如果訪問數(shù)組的引用為空(null),會拋出空指針異常:NullPointerException
數(shù)組練習(xí)
a.定義一個函數(shù),將數(shù)組中所有元素打印。要求打印成一行,每個元素之間以逗號分隔。
b.定義一個函數(shù),交換數(shù)組中的兩個元素。
c.定義一個函數(shù),找出數(shù)組中的最大數(shù)。
d.定義一個函數(shù),將數(shù)組中所有元素反轉(zhuǎn)。例如:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫巡檢報告
- 2025年汝州職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年朔州陶瓷職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專項07 用轉(zhuǎn)化思想求不規(guī)則圖形的角度
- 專題01 先秦時期:中國境內(nèi)早期人類與文明的起源、早期國家與社會變革(練習(xí))
- 中班戶外主題活動策劃方案五篇
- 幼兒園綜治宣傳月活動策劃方案三篇
- 公司企業(yè)管理咨詢合同
- 擋土墻施工合同
- 車聯(lián)網(wǎng)技術(shù)推廣項目合同
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 國旗班指揮刀訓(xùn)練動作要領(lǐng)
- 春季安全開學(xué)第一課
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
- 肖像繪畫市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報告
- 2021-2022學(xué)年遼寧省重點高中協(xié)作校高一上學(xué)期期末語文試題
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 中日合同范本
評論
0/150
提交評論