




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計基礎(chǔ)教程(講稿)主講人:靳宗信黃河科技學(xué)院信息工程學(xué)院計算機(jī)科學(xué)系2011-1-2第1章 java入門 一、Java的歷史:1991:James Gosling1994:許多著名的公司購買了java的版權(quán)1995.5.23:Birthday (Java1.0)1996:Can only do simple things (Java1.02)1998.12:Can do almost anything (Java1.2)Now:Java1.6 二、編程語言排行榜三、Java技術(shù)的分類(1)J2SE:Java 2 Standard Edition 支持所有JAVA標(biāo)準(zhǔn)規(guī)范中所定義的核心類函數(shù)庫和所有的JAVA基本類別。J2SE定位在客戶端程序的應(yīng)用上。 (2) J2EE:Java 2 Enterprise Edition 在J2SE的基礎(chǔ)上增加了企業(yè)內(nèi)部擴(kuò)展類函數(shù)庫的支持,比如支持Servlet/JSP的javax.servletr.*和EJB的javax.ejb.*的類函數(shù)庫。J2EE定位在服務(wù)器端程序的應(yīng)用上。 (3) J2ME:Java 2 Micro Edition 只支持JAVA標(biāo)準(zhǔn)規(guī)范中所定義的核心類函數(shù)庫的子集。定位于嵌入式系統(tǒng)的應(yīng)用上。 四、Java程序的分類(J2SE)(1)Java Application例:class HelloWorldpublic static void main(String args)System.out.println(Hello World!);(2)Java Applet例:import java.applet.Applet;import java.awt.*;public class TestApplet extends Appletpublic void paint(Graphics g) g.drawString(Hello World,10,100); New Document 五、Java開發(fā)工具(1)JDK:Java Software Develop Kit 可以從下面的網(wǎng)站下載:/technetwork/java/index.html()(2)EditPlus:源程序的編輯器(3)Java的集成開發(fā)環(huán)境 Eclipse (MyEclipse) Netbeans JBuilder Jcreator 六、JDK的安裝、配置(1)下載 JDK(2)安裝 JDK(3)配置環(huán)境變量 PATH CLASSPATH(4)安裝 EditPlus七、Java程序的開發(fā)過程(1)Java應(yīng)用程序的開發(fā)過程編輯源程序 (EditPlus)保存源程序 (.java)編譯源程序 (javac.exe)調(diào)試源程序運行例子:class HelloWorldpublic static void main(String args)System.out.println(Hello World!);(2)Java Applet的開發(fā)過程編輯源程序 (EditPlus)保存源程序 (.java)編譯源程序 (javac.exe)調(diào)試源程序運行 (瀏覽器運行)例子:import java.applet.Applet;import java.awt.*;public class TestApplet extends Appletpublic void paint(Graphics g) g.drawString(Hello World,10,100); New Document 八、參考書籍(1)Thinking in JavaFourth Edition1999年Java世界最具有影響力的書籍作者:Bruce EckelThinking in C+Thinking in PatternsC+Inside & OutUsing C+(2)最重要的資料:Java API Documentation可以從以下網(wǎng)站下載:/technetwork/java/index.html()作業(yè):(1)配置Java的開發(fā)環(huán)境(2)編寫一個Java應(yīng)用程序,并運行(3)編寫一個Java Applet,并運行(4)敘述Java為什么是跨平臺的?31第二章 Java語言基礎(chǔ)一、標(biāo)識符和關(guān)鍵詞(1)標(biāo)識符:用來表示類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列Java語言規(guī)定:標(biāo)識符有字母、下劃線、美元符號和數(shù)字組成,并且第一個字符不能是數(shù)字。Java語言中的字母不僅是指常用的拉丁字母a、b、c等,還包括漢字、日文、朝鮮文、俄文、希臘字母以及其他許多語言中的文字。(2)關(guān)鍵詞:java語言中被賦予特定意義的一些單詞。不能把這些單詞作為名字來使用。常見的關(guān)鍵詞如下:abstractbooleanbreakbytecasecatchcharclasscontinuedodoubleelseenumextendsfalsefinalfinallyfloatforimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsychronizedthisthrowthrowstruetryvoidwhile二、Java的數(shù)據(jù)類型(一)基本數(shù)據(jù)類型基本類型大小最小值最大值對應(yīng)包裝類booleanBooleanchar16 bitUnicode 0Unicode 216-1Characterbyte8 bit-128+127Byteshort16 bit-215-215-1Shortint32 bit-231-231-1Integerlong64 bit-263-263-1Longfloat32 bitIEEE754IEEE754Floatdouble64 bitIEEE754IEEE754Double基本數(shù)據(jù)類型的轉(zhuǎn)換:(按精度從高到底的順序)byte short intlongfloatdouble(1)自動類型轉(zhuǎn)換(2)強(qiáng)制類型轉(zhuǎn)換 (二)復(fù)合數(shù)據(jù)類型 類型性、接口類型、數(shù)組類型等。三、運算符(1)+ * / %例題1:public class TestOnepublic static void main(String args)System.out.println(7/2);System.out.println(7.0/2);System.out.println(7.0/2.0);System.out.println(7.0/2.0);例題2:public class TestTwopublic static void main(String args)System.out.print(7%-2+t);System.out.print(7%2+t);System.out.print(-7%2+t);System.out.println(-7%-2+t);System.out.println(7.2%2.8=+7.2%2.8);(2)+ 例題3:public class TestThreepublic static void main(String args)int a=2;a+;System.out.println(a=+a);int m=a+;System.out.println(a=+a+,m=+m);int n=+a;System.out.println(a=+a+,n=+n);算術(shù)混合運算的精度:byte short int long float double char類型和整數(shù)類型運算的結(jié)果?例題4:public class TestFourpublic static void main(String args)byte x=7;/那么B+x的結(jié)果是什么類型?(3)關(guān)系運算符: 2=+(a2);System.out.println(a2=+(a2);System.out.println(a2=+(a2);(6)其它運算符:運算符描述?:所用相當(dāng)于if-else 用于聲明數(shù)組、創(chuàng)建數(shù)組及訪問數(shù)組元素.用于訪問對象實例或者類的成員(type)強(qiáng)制類型轉(zhuǎn)換new 創(chuàng)建對象或數(shù)組instanceof判斷對象是否為類的實例四、Java中的注釋(1)單行注釋/此行為單行注釋(2)多行注釋/*此處為多行注釋*/(3)文檔注釋/*此處為文檔注釋*/五、字符界面常見類型數(shù)據(jù)的輸入(1)字符的輸入例題:import java.io.*;public class InputCharpublic static void main(String args)char c= ;System.out.println(Enter a character please:);try c=(char)System.in.read();catch(IOException e) System.out.println(e);System.out.println(Youve entered a character:+c);輸入英文,漢字?例題:import java.io.*;public class InputCharpublic static void main(String args)char c= ;System.out.println(Enter a character please:);tryInputStreamReader ln=new InputStreamReader(System.in); c=(char)ln.read();catch(IOException e) System.out.println(e);System.out.println(Youve entered a character:+c);(2)字符串的輸入import java.io.*;public class InputStringpublic static void main(String args)String s=;System.out.println(Enter a String please:);tryInputStreamReader ln=new InputStreamReader(System.in);BufferedReader in=new BufferedReader(ln); s=in.readLine();catch(IOException e) System.out.println(e);System.out.println(Youve entered a String: +s);(3)基本數(shù)據(jù)類型的輸入import java.io.*;public class InputIntegerpublic static void main(String args)int a=0;System.out.println(Enter a Integer please:);tryInputStreamReader ln=new InputStreamReader(System.in);BufferedReader in=new BufferedReader(ln); String s=in.readLine(); a=Integer.parseInt(s);catch(IOException e) System.out.println(e);System.out.println(Youve entered a Integer: +a);其它輸入方式import java.util.*;public class OtherInputpublic static void main(String args)Scanner scan=new Scanner(System.in);int a=scan.nextInt();System.out.println(a);六、流程控制語句(1)條件控制語句if語句switch語句(2)循環(huán)語句for語句(foreach語法)class TestForeachpublic static void main(String args)int a=1,2,3,4,5,6,7,8,9,10;/*for (int i=0;i10 ;i+ )System.out.println(ai);*/ for(int x:a) System.out.println(x);while循環(huán)do-while循環(huán)(3)跳轉(zhuǎn)語句break語句(帶標(biāo)號的break)class TestBreakpublic static void main(String args)outer:for (int x=0;x10 ;x+ ) for (int y=0;y10 ;y+ ) if (y=1)break outer; System.out.print(x+ ); System.out.println(); System.out.print(y+ ); continue語句(帶標(biāo)號的continue)七、方法八、Java數(shù)組一維數(shù)組二維數(shù)組八、Java才命令行參數(shù)第11章 多線程(第一講)線程的基礎(chǔ)(1)程序、進(jìn)程和線程的概念。(2)線程的生命周期。(3)java中創(chuàng)建線程的方法。(4)Thread類中常用方法。(5)線程的優(yōu)先級。(6)守護(hù)線程和用戶級線程。(第二講)線程的同步、死鎖及線程間的通信(1)同步的概念:同一個進(jìn)程的多個線程共享同一存儲空間,帶來了訪問沖突這個嚴(yán)重的問題。如兩個線程訪問往往同一個對象時,一個線程向?qū)ο笾写鎯?shù)據(jù),另一個線程讀取該數(shù)據(jù)。如果第一個線程還沒有完成存儲操作,第二個線程就開始讀取數(shù)據(jù),就產(chǎn)生了混亂。例題1:未使用同步機(jī)制的多線程程序:class DataClassprivate int data=0;public void increase() int nd=data;tryThread.sleep(100);catch (Exception e)data=nd+1;public int getData() return data;class NThread extends ThreadDataClass d;NThread(DataClass d) this.d=d;boolean alive=true;public void run() for(int i=0;i100;i+) d.increase();alive=false;public class NoSynpublic static void main(String args)DataClass d=new DataClass();NThread t1=new NThread(d);NThread t2=new NThread(d);t1.start();t2.start();while(t1.alive|t2.alive);System.out.println(data=+d.getData();例題2:使用同步機(jī)制的多線程程序:public synchronized void increase()將例題1進(jìn)行修改,加入同步機(jī)制。(2)同步塊:synchronized修飾的方法雖然可以解決同步問題,但也存在缺陷,如果一個synchronized的方法需要執(zhí)行的時間很長,將會大大影響系統(tǒng)的效率,所有Java提供了一個解決辦法:使用synchronized塊。例題3:使用Synchronized塊的方法:class CallMevoid call(String msg) synchronized(this) System.out.print(+msg); try Thread.sleep(1000); catch (Exception e) System.out.println();class Caller implements RunnableString msg;CallMe target;public Caller(CallMe t,String s) target=t; msg=s; new Thread(this).start();public void run() target.call(msg);public class SynBlockpublic static void main(String args)CallMe target=new CallMe();new Caller(target,hello);new Caller(target,synchronized);new Caller(target,world);(3)線程的死鎖:class Asynchronized void print() System.out.println(Aprint);synchronized void callB(B bObject) System.out.println(Thread.currentThread().getName()+:);System.out.println(Lock aObject,and wait bObject.);tryThread.sleep(100);catch (Exception e)bObject.print();class Bsynchronized void print() System.out.println(Bprint);synchronized void callA(A aObject) System.out.println(Thread.currentThread().getName()+:);System.out.println(Lock bObject,and wait aObject.);tryThread.sleep(100);catch (Exception e)aObject.print();public class DeadLock implements RunnableA a=new A();B b=new B();DeadLock() new Thread(this).start();a.callB(b);public void run() b.callA(a);public static void main(String args)new DeadLock();(4)線程通信:例題4:生產(chǎn)者-消費者線程/模擬生產(chǎn)者消費者模型class Store private int seq
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公共關(guān)系學(xué)考試內(nèi)容詳解試題及答案
- 行政管理經(jīng)濟(jì)法試題梳理
- 工程經(jīng)濟(jì)企業(yè)價值管理試題及答案
- 2025年科技助力工程項目管理試題及答案
- 鯨魚小鎮(zhèn)創(chuàng)意美術(shù)課件
- 2025年市政工程技術(shù)施工試題及答案
- 中級經(jīng)濟(jì)師復(fù)習(xí)心得試題及答案
- 水利水電工程社會服務(wù)功能的深化試題及答案
- 社會化媒體與公共關(guān)系試題及答案
- 2025年工程項目的總體規(guī)劃測試試題及答案
- 抗高血壓藥-英文版
- 24春國家開放大學(xué)《公務(wù)員制度講座》形成性考核1-4參考答案
- 走近核科學(xué)技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年蘭州大學(xué)
- 光伏電站后評價技術(shù)規(guī)范
- UPS蓄電池安裝施工方案(完整版無需過多修改)
- 污水管網(wǎng)工程項目方案資料目錄清單及其表格
- 農(nóng)村信用社信貸培訓(xùn)
- 第1講:二元一次方程組培優(yōu)
- 《信息安全技術(shù)數(shù)據(jù)安全能力成熟度模型》
- 建筑材料采購?fù)稑?biāo)方案(技術(shù)標(biāo))
- 2024年山東省春季高考技能考試-汽車專業(yè)備考試題庫(濃縮500題)
評論
0/150
提交評論