Java自主學習手冊(電子版)_第1頁
Java自主學習手冊(電子版)_第2頁
Java自主學習手冊(電子版)_第3頁
Java自主學習手冊(電子版)_第4頁
Java自主學習手冊(電子版)_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、北京廣播電視大學Java語言自主學習手冊理工教學部2010.10 89/90 附錄資料:java重點筆記歸納整理Java初級eclipse快捷鍵:右鍵REFACTER-RENAME 一改全改ALT+ENTER 查看現(xiàn)在項目的位置 Alt+ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了) Alt+ 當前行和上面一行交互位置(同上) Ctrl+W 關(guān)閉當前Editer C+/ 注釋(取消注釋)選中行C+S+/ 注釋多行C+S+取消注釋 F2 查看完整的函數(shù)幫助信息,并且可以復(fù)制粘貼文字 ,當選中文件時,有改名作用 F3找到變量的定義 C+鼠標點擊 找到變量的定義 作用和F3C差不多

2、。 F4找到接口方法的具體實現(xiàn)類.=C+T F5刷新 C+F6:在打開的文件間進行切換; C+F7:在資源窗口間進行切換; C+F8:在各種模式間進行切換; C+E:選擇某個打開的文件; C+S+r:打開一個文件; c+s+t:打開一個類; c+s+f:格式化代碼; C+S+O:導入需要的類 c+o:查看類結(jié)構(gòu); c+t:列出子類或接口實現(xiàn)類(類的等級結(jié)構(gòu)) Ctrl+Alt+ 復(fù)制當前行到下一行(復(fù)制增加) Ctrl+Alt+ 復(fù)制當前行到上一行(復(fù)制增加) CtrlK (加SHIFT是向上)向下查找選中的字符串 Ctrlshift 向上向下查找一個函數(shù)和變量 Java基礎(chǔ)知識1.Java是

3、Sun公司的JamesGosling發(fā)明的面向?qū)ο蟮目煽缙脚_的編程語言。2.SUN公司,Stanford University Network,斯坦福大學;3.平臺:我們把cpu處理器與操作系統(tǒng)的整體叫做平臺。不同的操作系統(tǒng)支持不同的cpu指令集。不同的cup有不同的指令集,如intel和AMD.4.JDK:Java Software Develop Kit. JVM:Java Virtual Machine.Java虛擬機,包含:類加載器,字節(jié)碼校驗器,java解釋器。 JRE:java運行時環(huán)境,包含jvm與java運行支持類庫。5.環(huán)境變量:java_home;classpath:.;C

4、:Javajdk1.6.0_10lib;path6.jdkjdk1.1為jvm增加了JIT(即時編譯)編譯器;jdk1.2也叫java2;jdk1.5也叫java5(改動較大);現(xiàn)在使用的是jdk1.6。7.jdk,Java Developent ToolKit;開發(fā)java需要有源程序文件到中間文件的編譯器;運行java中間文件需要對應(yīng)平臺的解釋器(官方叫法JVM);編譯器、解釋器加上一些其它的組件合稱為JDK.JDK的另外一個稱呼為Java Software develop kit.JDK即開發(fā)java程序的組件。jdk=java編譯器+jre(java運行環(huán)境) jre=jvm+運行支持

5、類庫 eclipse和jbuilder本身自帶了java編譯器但不包含jre。8.jre:Java Runtime Environment,java運行時需要的環(huán)境。有兩類,開發(fā)需要的jre和公共jre。9.jdk版本,jdk1.2到j(luò)dk1.4為java2時代,java技術(shù)有j2ee,j2se,jeme.jdk1.5,也叫做java5,技術(shù)術(shù)語改為javase,javaee,javame.1.5在1.4的基礎(chǔ)上改動很大。10.常用的DOS命令:dir,現(xiàn)實當前文件夾的所有文件;cd . 打開上級目錄;exit:退出。11.java注釋:java注釋分為三種單行注釋,多行注釋,文檔注釋,文檔注

6、釋結(jié)果為:/*換行*/,文檔注釋在幫助文檔里面有顯示。12.javadoc幫助文檔,javadoc可執(zhí)行程序可生成幫助文檔,用法如下:javadoc Test01.java13.java 打包jar,用法見cmd輸入jar;ant也是一種打包成jar的工具,其功能叫jar更加強大;除了jar包外,java文件包還有war,ear兩種格式。14.java缺點:運行速度慢,占用資源多是java的缺點;其原因是:class需要二次編譯,解釋執(zhí)行;jvm運行占用資源;無指針無法直接操作內(nèi)存,垃圾回收線程占用資源,并且不會實時收集內(nèi)存。15.JVM,JAVA虛擬機即java解釋器;JVM執(zhí)行.class

7、文件需要三步:類加載器加載;校驗器檢查錯誤,執(zhí)行文件。在執(zhí)行的時候有兩種方法:a.解釋器直接執(zhí)行;b.JIT代碼生成器搞定。16.兩種解釋執(zhí)行方法的區(qū)別:直接解釋執(zhí)行是1.1版本的,其直接翻譯class文件,速度必然比機器執(zhí)行二進制文件的速度慢;1.2版本后引入JIT,即將class文件先轉(zhuǎn)換為二進制文件,再執(zhí)行二進制文件,下次執(zhí)行時可直接執(zhí)行二進制文件。15.JIT(即時編譯):java即時編譯技術(shù),可執(zhí)行java代碼的運行速度。17.IDE工具 IDE:Integrated Development Environment,集成開發(fā)環(huán)境。18.開發(fā)java的IDE工具:JCREATOR,JB

8、UILDER,ECLIPSE,NETBEANS.20.拷貝項目的三種方式:a.拷貝整個工作空間,切換工作空間。b.拷貝項目,導入項目。c.只拷貝源代碼(即src文件夾),從新建的項目導入。22.轉(zhuǎn)義字符:單引號:;雙引號:;反斜杠:;回車:n;水平制表符:t;換行:r. 轉(zhuǎn)義字符一般出現(xiàn)在字符串中時,要是以原型輸入,則輸出一定報錯,只有以轉(zhuǎn)換后的才能顯示。23.數(shù)據(jù)類型轉(zhuǎn)換:byte char short int long float double,String,小杯到大杯自動轉(zhuǎn)換,但是大杯到小杯強制轉(zhuǎn)換。一般的格式:標變量=(目標類型)源變量,特殊的,String轉(zhuǎn)換為其它,int a =

9、Integer.parseInt(str1);float b = Float.parseFloat(str2);boolean c = Boolean.parseBoolean(str3);24.內(nèi)存分配 基本數(shù)據(jù)類型只在棧中分配內(nèi)存;應(yīng)用數(shù)據(jù)類型不僅在棧中分配內(nèi)存,還在堆中分配內(nèi)存,在變量聲明時,在棧中分配內(nèi)存,當創(chuàng)建對象時,在堆中分配內(nèi)存。25.值傳遞和引用傳遞 本人去見網(wǎng)友叫按引用傳遞;替身去見網(wǎng)友叫做按值傳遞。引用傳遞參數(shù)數(shù)值改變,按值傳遞參數(shù)值不變?;緮?shù)據(jù)類型就是按值傳遞的,又稱為值類型,而引用類型是按引用傳遞的。String 雖然是按引用傳遞的,但是傳遞給的新變量會有屬于自己的堆

10、內(nèi)存,所以,String值不變。包: 開發(fā)中最好在導入包和類的過程中,最好是使用哪個類就導入那個類,不要導入包。27.包的命名規(guī)則:反寫的企業(yè)域名.功能名.模塊名28.系統(tǒng)包(SUN提供的包)默認包-java.lang.常用包 java.lang: java的核心類庫,包含了運行java程序必不可少的系統(tǒng)類,如基本數(shù)據(jù)類型、基本數(shù)學函數(shù)、字符串處理、線程、異常處理類等,系統(tǒng)缺省加載這個包 java.lang.reflect:提供用于反射對象的工具 java.io: java語言的標準輸入/輸出類庫,如基本輸入/輸出流、文件輸入/輸出等 java.util:常用的工具類,如集合框架類,日期處理類

11、等。主題:旺旺老師軟件工程師實訓教程-JAVASE 第六章:包與 JAVA 常用類 java.sql: JDBC相關(guān)類。 :JAVA網(wǎng)絡(luò)包,其中包含能夠使程序通過網(wǎng)絡(luò)進行通信的 java.awt;javax.swing:使用java開發(fā)C/S結(jié)構(gòu)應(yīng)用程序使用的類。29.企業(yè)開發(fā)中命名規(guī)則一般如下: com.easyitedu.dao /持久層代碼 com.easyitedu.view /表示層代碼 .student /stuent模塊的業(yè)務(wù)層代碼 .teacher /teacer模塊的業(yè)務(wù)層代碼 com.easyitedu.tool /本項目使用的工具類30.包裝類:8個值類型對應(yīng)的有8個類,

12、我們把它們稱為包裝類。其作用較八種基本類型的作用強大,java不符合面向?qū)ο蟮膬蓚€地方:一個是JAVA保留了8個基本數(shù)據(jù)類型,他們不是對象,更沒有屬性和方法;另一個就是JAVA中存在著main方法。之所以還在用八種基本類型而不是通通用包裝類,是因為一些簡單的業(yè)務(wù)用基本數(shù)據(jù)類型效率較高,但是有時必須用八個包裝包,例如:強制類型轉(zhuǎn)換。 其中byte的包裝類是Byte.只有char的類是Character,int 是 Integer.其它像byte一樣是其本身。說明:int a = 10; Integer b = new Integer(10);其中,前者占用一塊內(nèi)存,后者占用兩塊,符合引用傳遞。自

13、動的拆箱和裝箱:把數(shù)據(jù)由基本數(shù)據(jù)類型轉(zhuǎn)換為對應(yīng)包裝類叫做裝箱,把數(shù)據(jù)由包裝類轉(zhuǎn)化為基本數(shù)據(jù)類型叫拆箱。實例:int a = 10;Integer b = a;/自動裝箱,基本數(shù)據(jù)類型-包裝類 int c = b;/自動拆箱,包裝類-基本數(shù)據(jù)類型,即兩種類型可以自動相互轉(zhuǎn)換,沒其它制約。32.String轉(zhuǎn)換成基本型:調(diào)用包裝類的parse*方法,例如:String a = 12; int a = Integer.parseInt(a);33.=和equals,=比較的是堆內(nèi)存地址,后者堆內(nèi)存(即地址可以不同)。equals,用法:常量.equals(變量),要不然會出現(xiàn)空指針異常。34.字符串

14、池:當字符串直接賦值時,(string a = aa;)其堆內(nèi)存會進入字符串池,當下次在賦值相同時,String b =aa;b會直接引用a的堆內(nèi)存。但是當賦值為new 方法賦值時,其堆內(nèi)存不會進入字符串池,而是直接開辟一個新的空間。String c = new String(aa);35.三個空字符串的區(qū)別:String a = null;String b = ;String c = ;其中null,沒有分配堆內(nèi)存空間,b分配了堆內(nèi)存空間,里面放了一個空格;c雖然分配了內(nèi)存空間,但是沒有放東西。36.字符串拼接:不用String 而是用StringBuffer.append(),前者的對內(nèi)存

15、限定了,改變后重新分配內(nèi)存;后者可以添加內(nèi)存。就像前面是不能加車廂的汽車,每次都得換車;后者是可以加車廂的汽車。37.面向?qū)ο缶幊探蠴OP,還有一門知識叫OOAD(面向?qū)ο蟮姆治雠c設(shè)計),在OOAD中,繼承又叫派生,父類又叫超類。38.Override注釋:第四種注釋,給java編譯器看的,在編譯階段提示錯誤,在重寫父類方法時,一般加上此注釋,表示此方法是重寫的父類方法。39.Deprecated注釋:此方法不推薦使用(看文檔時),一般會有功能更強大的方法代替。SuppressWarrin40.繼承的7點特性:a.子類擁有父類的屬性和方法b.子類可以有自己行的屬性和方法c.子類可以重寫父類的方

16、法d.可以聲明父類,創(chuàng)建子類d_1.聲明什么類型,就只能調(diào)用什么類型的方法d_2.創(chuàng)建什么類型,運行什么類型的方法d_3要使用創(chuàng)建類型的方法,必須得強制轉(zhuǎn)化類型。41.this與super關(guān)鍵字 一般在子類中使用,this表示調(diào)用自己聲明的屬性和方法;super表示父類聲明的屬性和方法。static方法中不能使用this與super關(guān)鍵字。42.繼承中的構(gòu)造方法 創(chuàng)建對象一定會調(diào)用構(gòu)造方法? 創(chuàng)建子類對象一定會調(diào)用父類的構(gòu)造方法? 子類默認調(diào)用父類無參構(gòu)造方法? 子類只能調(diào)用父類存在的構(gòu)造方法? 子類構(gòu)造方法中使用super調(diào)用父類構(gòu)造方法,并且super必須放在第一行? 構(gòu)造方法中this表

17、示調(diào)用本類其他構(gòu)造方法,并且this必須放在第一行43.封裝定義:隱藏屬性,方法和方法實現(xiàn)細節(jié)的過程成為封裝。45.方法的說明符 方法的訪問說明符 1.public 任何地方都可以訪問 2.protected 子類或者同包,同類可以訪問,但是其它包的非子類不可以訪問 3.default 只有同類或者同包可以訪問 4.private 私有的方法,這里的私有指的是被被class所私有,其他類不能訪問,繼承的類也不行。 方法的其他說明符 1.static 2.final 此方法不可以被子類覆蓋。 3.abstract 抽象的方法 4.native 用戶可以使用,但是不能編寫的類。 5.synchro

18、nized 同步的方法面向?qū)ο?面向?qū)ο蟮某绦蜷_發(fā)實際上分為三種:OOA OOD OOP |-OOA:面向?qū)ο蟮姆治?|-OOD:面向?qū)ο笤O(shè)計 |-OOP:面向?qū)ο蟪绦?三大特性:封裝、繼承、多態(tài)。 對象的創(chuàng)建及使用:Person zcy = null;/聲明對象 zcy=new Person();/實例化對象 Person zcy = new Person(); 方法不需要創(chuàng)建,直接使用。47.封裝性 封裝性有很多體現(xiàn),但是最簡單的體現(xiàn)是假如“private”關(guān)鍵字。48.實體類:在開發(fā)過程中,有一些類與數(shù)據(jù)庫緊密聯(lián)系,其叫法有幾種,常用的有,entity 實體類;vo類 value obj

19、ect 值傳遞;dto,data transmission object 數(shù)據(jù)傳輸對象。Static49.static普通變量通過對象名.變量訪問;而static變量通過類命.變量訪問,因為static 修飾的變量為類變量。50.final,當定義一常量時,用final修飾,變量名大寫,通常情況下,final修飾,前面加上static,但是反之不成立!51.static方法,靜態(tài)方法,同樣是通過類名.方法名調(diào)用。靜態(tài)方法里面不能調(diào)用非靜態(tài)變量;靜態(tài)方法下面不能使用this,super等關(guān)鍵字。靜態(tài)方法中不能訪問普通方法,但可以調(diào)用靜態(tài)方法;即靜態(tài)方法里面不能出現(xiàn)非靜態(tài)的東西。52.靜態(tài)塊:在虛

20、擬機加載類時就調(diào)用,不需要等到創(chuàng)建對象時執(zhí)行。sun公司不推薦使用。多態(tài)53.方法重載相同的方面名稱,不同的參數(shù)列表(個數(shù)和類別不同),同時出現(xiàn)在一個類中。54.方法重寫:在子類中產(chǎn)生與父類相同的方法頭(參數(shù)列表也相同),但是方法體不同,屬于方法重寫,與方法重載有根本區(qū)別。子類也可以重載父類的方法,只是父子類的方法重載。55.多態(tài)定義:多種形態(tài),多種形式,多種表現(xiàn)形態(tài)。最直接的表現(xiàn)形式是方法重寫(父子類之間),方法重載(一個類里面)。抽象類,接口都為接口服務(wù)。abstract56.抽象方法(abstract):由abstract關(guān)鍵字修飾的方法叫做抽象方法,只有方法頭沒有方法體。56.抽象類(

21、abstract):由abstract關(guān)鍵字修飾的類叫做抽象類。只能聲明,不能創(chuàng)建。有抽象方法的類一定是抽象類,但抽象類不一定是抽象方法。當想讓一個方法只能被繼承,但是不能創(chuàng)建時,用到此種情況。57.抽象類子類:1實現(xiàn)父類的所有的抽象方法,2.或者自己聲明為抽象類,3.或者部份實現(xiàn)父類的方法,但自身還是要聲明成抽象類。58.取隨機數(shù):Random random = new Random();int selectTndex = random.nextInt(3);System.out.println(selectTndex);59.接口(interface):接口是一系列方法(功能)的聲明,即沒

22、有實現(xiàn)任何方法的抽象類(沒有abstract關(guān)鍵字,但出現(xiàn)也不會報錯);命名時,前面加上大寫字母I,在其子類中,子類 implements 接口,implements在這里是實現(xiàn)的意思。子類要么實現(xiàn)接口的所有方法,要么把自己變成抽象類。60.接口特點:一個子類可以實現(xiàn)多個接口,即變相的多繼承。接口可以繼承接口,一個接口可以繼承多個接口。接口只能聲明不能創(chuàng)建。61.接口的分類:a.普通接口,即一系列方法的聲明;b.常量接口,項目中常用的一些常量。C.標識接口(空方法接口),子類實現(xiàn)此接口,表示屬于某個體系接口,具有某種功能。Java中級HTML知識點:Html怎么轉(zhuǎn)換成jsp頁面供程序員使用1.

23、首行加上代碼2.重命名為jsptable修飾代碼鼠標來去特效與區(qū)別同樣是標示一個儲存格,唯一不同的是所標示的儲存格中的文字是以粗體出現(xiàn)URL重寫jjj.jsp?參數(shù)名稱=參數(shù)值&參數(shù)名稱=參數(shù)值&參數(shù)名稱=參數(shù)值方法重寫可以通過鏈接頁面跳轉(zhuǎn)傳遞參數(shù),其作用和表單中的隱藏域作用一樣。跳轉(zhuǎn)服務(wù)器跳轉(zhuǎn)和客戶端跳轉(zhuǎn):跳轉(zhuǎn)之后地址沒變,稱為服務(wù)器跳轉(zhuǎn),地址改變稱為客戶端跳轉(zhuǎn)。跳轉(zhuǎn)方式:客戶端跳轉(zhuǎn)setHeader() response.setHeader(refresh,2;url=ddd.jsp);屬于客戶端跳轉(zhuǎn)response.sendRedirect(DDD,JSP);客戶端跳轉(zhuǎn),頁面執(zhí)行完畢之后

24、再跳轉(zhuǎn),但是不能出傳遞request范圍的屬性。服務(wù)器跳轉(zhuǎn);服務(wù)器跳轉(zhuǎn),屬于無條件跳轉(zhuǎn),后面的內(nèi)容不執(zhí)行,故而數(shù)據(jù)庫的關(guān)閉不能放在后面。頁面間的兩種跳轉(zhuǎn)服務(wù)器跳轉(zhuǎn):超鏈接跳轉(zhuǎn)ssssscookie使用方法:Cookie c1 = new Cookie (dd,ddd); response.addCookie(c1);Cookie c = request.getCookies();for (int i=0;i-注意:發(fā)現(xiàn)瀏覽器關(guān)閉后,不能取得cookie內(nèi)容,原因為其內(nèi)容僅保存在瀏覽器中,并沒有保存在本地,保存本地,其保存時間必需得到設(shè)置。cl.setMaxAge(22);/插入此代碼即可out

25、.println()out.println()的換行去哪里了呢?這個換行只是針對于源文件中的換行,但是此換行會被HTML忽略掉,所以如果需要換行,可以直接編寫html語句。兩種include指令 include指令和指令語法格式為: include: 指令有兩種格式:語法一: 語法二: /想頁面1中傳遞參數(shù),再包含在本頁面中 四種屬性每種屬性都有三種操作方法:1.設(shè)置屬性setAttribute(String name,Object value) 取得屬性getAttribute (String name) 刪除屬性(removeAttribute)2.屬性范圍 pageContext 范圍僅

26、本頁面 范例:pageContext.setAttribute(name,mldn);/設(shè)置屬性 String re = (String)pageContext.getAttribute(name);/取得屬性 requset 屬性范圍表示在一次服務(wù)器跳轉(zhuǎn)中有效,只要是服務(wù)器跳轉(zhuǎn),則設(shè)置的request屬性可以一直傳遞下去,超鏈接則不行。 范例:request.setAttribute(name,dd); String ddd = (Sring)request.getAttribute(name); session 屬性范圍僅為一個客戶,兩種跳轉(zhuǎn)都可以 范例:seesion.setAttriu

27、te(name,dddd); String dddd = (String)seesion.getAttribute(ddd) application 范圍是在服務(wù)器上面設(shè)置一個屬性,所以一旦設(shè)置后任何用戶都可以瀏覽到此屬性。如果在服務(wù)器上設(shè)置過多的Application屬性,則會影響到服務(wù)器的餓性能。 亂碼轉(zhuǎn)換:產(chǎn)生原因:所有靜態(tài)web的執(zhí)行流程,是先從服務(wù)器上取得一個頁面,之后通過把內(nèi)同提交給服務(wù)器,之后服務(wù)器在提交的內(nèi)容返回給客戶進行顯示。設(shè)置page指令后,本頁面輸入的中文會得到正確的顯示,但是接受到的從其他頁面的參數(shù)卻還是亂碼,解決方法有兩個:第一個直接把接受到的內(nèi)容用服務(wù)器返回給客戶

28、的進行顯示,即加上str=new String(str.getBytes(ISO8859-1);/轉(zhuǎn)碼 第二種方法為:前面加上 request.getCharacterEnocoding(gbk);/按中文接受。兩種方法的區(qū)別為:第一種是接受了再轉(zhuǎn)換,第二種是轉(zhuǎn)換了再接受。接收多個同名參數(shù)在表單中,存在復(fù)選框,接收方法如下:abc若String inst = request.getParameter(inst);接收內(nèi)容只為選項最前面一個,解決方法如下:String inst = request.getParameteValues(inst);/接收表單參數(shù)% for(int i=0;i 、配

29、置tomcat虛擬目錄。1.文件目錄結(jié)果必須為:WEB TOOT/WEB-INF/WEB.xml。WEB.xml文件有格式要求??梢钥截怐:Tomcat 6.0webappsROOTWEB-INF里面的文件,但是注釋內(nèi)容去掉。2.修改serve.xml 正確位置加上:3.conf/web.xmllistings下面false改為true,項目完成記得改過來。登錄代碼系統(tǒng)登錄 用戶名:密碼: 錯誤的用戶名或者密碼! if(!(.equals(name)|name=null)&(.equals(password)|password=null)這條很重要!String轉(zhuǎn)換package com.zc

30、y;/* * author yangzhi * */public class Test04 public static void main(String args) String str1 = 10;String str2 = 10.2;String str3 = boolean;/與基本數(shù)據(jù)類型對應(yīng)的有八個包裝類int a = Integer.parseInt(str1);System.out.println(a);float b = Float.parseFloat(str2); System.out.println(b);boolean c = Boolean.parseBoolean(

31、str3);System.out.println(c);輸入輸出package com.zcy;import java.util.Scanner;/* * 測試輸入輸出 * author 楊志 * */public class Test03 public static void main(String args) Scanner input = new Scanner(System.in);int age;float money;String name;System.out.println(請輸入您的姓名:);name = input.next();System.out.println(請輸入

32、您的年齡:);age = input.nextInt();System.out.println(請輸入您的工資:);money = input.nextFloat();System.out.println(name = +name);System.out.println(age = +age);System.out.println(money = +money);方法的說明符方法的訪問說明符 1.public 任何地方都可以訪問 2.protected 子類或者同包,同類可以訪問,但是其它包的非子類不可以訪問 3.default 只有同類或者同包可以訪問 4.private 私有的方法,這里的

33、私有指的是被被class所私有,其他類不能訪問,繼承的類也不行。方法的其他說明符 1.static 2.final 此方法不可以被子類覆蓋。 3.abstract 抽象的方法 4.native 用戶可以使用,但是不能編寫的類。 5.synchronized 同步的方法面向?qū)ο?面向?qū)ο蟮某绦蜷_發(fā)實際上分為三種:OOA OOD OOP |-OOA:面向?qū)ο蟮姆治?|-OOD:面向?qū)ο笤O(shè)計 |-OOP:面向?qū)ο蟪绦蛉筇匦裕悍庋b、繼承、多態(tài)。 對象的創(chuàng)建及使用:Person zcy = null;/聲明對象 zcy=new Person();/實例化對象 Person zcy = new Pers

34、on(); 方法不需要創(chuàng)建,直接使用。封裝性 封裝性有很多體現(xiàn),但是最簡單的體現(xiàn)是假如“private”關(guān)鍵字。循環(huán) 處理次數(shù)用for,處理量的時候用while,while可以執(zhí)行0次,do while至少執(zhí)行1次javaBeanjavaBean的兩種引用方法:第一種:先引入類,然后創(chuàng)建對象,代碼如下 Simple simple = new Simple();第二種:用jsp中的標簽指令: 其中simple指的是對象,class指的是類,scope:javabean的保存范圍,page、request、session、applicationjavabean加載 JavaBean每次修改之后都必

35、需重新啟動服務(wù)器,因為這樣才能將新的類重新加載進來,等待用戶使用。每次修改JavaBean都必需重修啟動服務(wù)器,解決方法:修改server.xml文件。servel.xml最后一行, 配制虛擬目錄后面加上reloadable=true。傳統(tǒng)傳值操作:姓名:使用jsp指令操作:姓名:JSP相關(guān)知識四種屬性范圍pageContext、request、session、application 屬性操作方式:設(shè)置屬性(setAttribute)、取得屬性(getAttribute)、刪除屬性(removeAttribute)。 實例:設(shè)置pageContext.setAttribute(name,yzh

36、i);取得pageContext.getAttribute(name);內(nèi)置對象含義:Java使用對象,先聲明,后創(chuàng)建,再使用;但是在jsp中,有一部分對象不需要聲明,創(chuàng)建,可以直接使用,這種對象叫做jsp內(nèi)置對象,也叫做jsp隱含對象。九種內(nèi)置對象pageContext,request,response,session,application,config,out,page,execption.轉(zhuǎn)碼1:String str = request.getParameter(name);str=new String(str.getBytes(ISO8859-1);/將字符串內(nèi)容重新轉(zhuǎn)變?yōu)閎yte數(shù)

37、組。 2:request.setCharacterEncoding(GBK);/按中文接收 String str = request.getParameter(name); response: session: application: config: out: page: execption:數(shù)據(jù)庫 jdbcjdbc中主要接口有: Driver用來表示驅(qū)動程序的類 connection此接口用于連接數(shù)據(jù)庫 statement執(zhí)行sql語句并將數(shù)據(jù)檢索到resultset中 resultset數(shù)據(jù)庫結(jié)果數(shù)據(jù)表,通常由執(zhí)行查詢數(shù)據(jù)庫語句產(chǎn)生 preparedStatement 執(zhí)行預(yù)編譯sql語

38、句。 基本上都是接口,出來DriverManager是個類之外。什么是jdbc?java database connectivity.SUN指定的java應(yīng)用程序了解數(shù)據(jù)庫的規(guī)范,通過一些類和接口實現(xiàn)。odbc(微軟制定的應(yīng)用程序連接數(shù)據(jù)庫的規(guī)范)-oledb(odbc升級) ado是規(guī)范的一個實現(xiàn) 95java出現(xiàn),sun制定了java程序連接數(shù)據(jù)庫的規(guī)范jdbc,即java database coonectivity。sun指定規(guī)范,微軟等數(shù)據(jù)庫公司實現(xiàn)規(guī)范供客戶使用。jdbc是規(guī)范的同時,也是一門技術(shù),學好這門規(guī)范,我們就可以連接各種不同的數(shù)據(jù)庫。 當然我們實際使用的時候操作的是Driv

39、erManager這個類,如Connection,statement,等這些接口,所以說jdbc規(guī)范更具體點說是一些類和接口。(更主要是一些接口的集合)在我們使用java.sql包里面的任何一個類(包括接口)的方法時,都會出現(xiàn)一個編譯時異常SQLException。我們必須處理!cmd ipconfig 查看本機ip 程序員測試用替代本機ip,等價與localhoststatement接口具體方法有: row = stmt.executeUpdate(sql);返回sql語句影響的行數(shù);插入,通過此方法還可以實現(xiàn)DML:insert,update,delete;DDL:create,drop等

40、 b.ResultSet rs = stmt.execuQuery(sql);rs為查詢的數(shù)據(jù)包,rs.next();取得遍歷每行數(shù)據(jù),rs.getInt(ss)得到每行數(shù)據(jù)。查詢PrepareStatement接口具體方法有:1.預(yù)編譯的,執(zhí)行速度快;2.addBatch();executeBatch()3.當同時執(zhí)行相同sql語句時使用;4.防止sql注入;故而在登錄時,最好用PrepareStatement處理。5. pstmt.setString(1, sssssss);在不知道sssssss的數(shù)據(jù)類型時,都可以用pstm.setObject()搞定pstmt = conn.prepa

41、reStatement(sql);pstmt.setString(1, sssssss);pstmt.setString(2, ssefegege);pstmt.executeUpdate();pstmt.setString(1, ssdddds);pstmt.setString(2, aaaaeegege);pstmt.executeUpdate();可優(yōu)化為:pstmt = conn.prepareStatement(sql);pstmt.setString(1, sssssss);pstmt.setString(2, ssefegege);pstmt.addBatch();pstmt.s

42、etString(1, ssdddds);pstmt.setString(2, aaaaeegege);pstmt.addBatch();pstmt.executeBatch();關(guān)于局部變量:在那個大括號里面聲明的,就在本括號里面作用。20.在計算機程序里面,指向第一個元素永遠用0表示,出去在jdbc中,例如:rs.getInt(name)這里的name表示第一例的屬性,可以用rs.getInt(1)表示。關(guān)于jdbc-odbc橋連接,有些數(shù)據(jù)庫如access,沒有連接數(shù)據(jù)庫的jar包,只能用jdbc-odbc橋連接進行數(shù)據(jù)庫連接。(關(guān)于連接Access的過程在視頻第十二章06的5分鐘開始。

43、)首先得在電腦上設(shè)置odbc數(shù)據(jù)源;加載程序為sun.jdbc.odbc.JdbcOdbcDriver;其它操作一樣。橋連接基本不用。三層架構(gòu) 表示層業(yè)務(wù)層-持久化層(數(shù)據(jù)訪問層)-db .案例在一個客廳里面,服務(wù)員接受客戶,然后將訂單給接單者,接單者給廚房,廚房到倉庫拿菜,做菜,將做好的菜返回給接單者,接單者將菜給客戶。dao,date access object.數(shù)據(jù)訪問對象。即數(shù)據(jù)訪問層。數(shù)據(jù)庫操作步驟: 1.建立一個文件,將連接數(shù)據(jù)庫的jar包加載進去。 2.加載驅(qū)動程序 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDrive

44、r);調(diào)出 com.microsoft.sqlserver.jdbc.SQLServerDriver方法1:sqlserverdriver A+/方法2:C+S+T 調(diào)用driver ,接口java sql f4后者c+t Class.forName()為靜態(tài)方法,通過類名點方法名調(diào)用。class.forName()加載驅(qū)動到內(nèi)存;當jdbc驅(qū)動程序加載到內(nèi)存時,會自動向DriverManager注冊,然后DriverManager類就會用注冊的jdbc驅(qū)動程序來創(chuàng)建數(shù)據(jù)庫連接。DriverManager.getConnection()建立連接; 3.得到連接 Connection conn

45、= DriverManager.getConnection(url, sa, );url寫法: 這里的url必須包括ip,端口號,(sqlserver為1433;mysql3306;oracle1521),數(shù)據(jù)庫。具體格式為: sqlserver:jdbc:sqlserver:/localhost:1433;databaseName=dbName 例如: (jdbc:sqlserver:/localhost;databaseName=TestDB,sa,accp);sqlserver: jdbc:sqlserver:/localhost:1433;databaseName=dbNamemysq

46、l: jdbc:mydql:/ip:3306/dbNameOracle: jdbc:oracle:thin:ip:1521:dbName Access:jdbc:odbc:myds(數(shù)據(jù)源名稱) 4.創(chuàng)建statement 對象 String sql = insert into bookInfo values(跟楊志老師學java,8,武漢紡織大學出版社,陳剛老師,不錯,nullSmall.png,nullImg.png,50,20,1,30);Statement stmt = conn.createStatement(); 5.執(zhí)行sql語句int row = stmt.executeUpd

47、ate(sql); 6.關(guān)閉釋放資源連接數(shù)據(jù)庫案例加載驅(qū)動;2.取得連接;路通了,得準備車3.取車statement sta = conn.createStatement();4.車有了,可以拉貨或者干其它的事情,貨物就是sql語句,車怎么處理這些貨物,就要研究車有哪些方法。直接通過對象名.方法名(sql)來調(diào)用。package db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class DBMana

48、ger public static void main(String args) try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);System.out.println(yes);Connection conn = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;databaseName=yzhi, sa, );System.out.println(conn);String sql = insert into bookInfo values(跟楊志

49、老師學java,8,武漢紡織大學出版社,陳剛老師,不錯,nullSmall.png,nullImg.png,50,20,1,30);Statement stmt = conn.createStatement();int row = stmt.executeUpdate(sql);if (row =1) System.out.println(yes!);elseSystem.out.println(no!); catch (ClassNotFoundException e) System.out.println(no);e.printStackTrace(); catch (SQLExcepti

50、on e) System.out.println(nono);e.printStackTrace();數(shù)據(jù)庫操作語言 insert insert into article(TITLE,BODY,ADDDATE,ADDUSER) values(楊志,得到,sss,瑣瑣碎碎) delete delete from article where id = 7 update update article set TITLE = ZHANGCHOG where id = 8數(shù)據(jù)庫相關(guān)操作Configpackage com.zcy.db;public interface Config public stat

51、ic final String DRIVER = com.microsoft.sqlserver.jdbc.SQLServerDriver; public static final String URL = jdbc:sqlserver:/localhost:1433;databaseName=; public static final String DBNAME = bookshop; public static final String UNAME = sa; public static final String PWD = ;增刪改查語句范例:-insert into bookType

52、values(0,歷史小說,1,歷史小說);-delete from bookType where bookTypeId = 9;-update bookType set parentId = 2,bookTypeName = 長蟲樣,isDelete = 1,Context = 張重陽 where bookTypeId = 8;-select bookTypeId,parentId,bookTypeName,isDelete,context from bookType where bookTypeId = 1;-select bookTypeId,parentId,bookTypeName,

53、isDelete,context from bookType;連接數(shù)據(jù)庫Class.forName(com.mysql.jdbc.Driver); String url = jdbc:mysql:/localhost/bbs?user=root&password=root; Connection conn = DriverManager.getConnection(url);Insert into String sql=insert into article values(null,?,?,?,?,now(),0); PreparedStatement pstmt = conn.prepare

54、Statement(sql); pstmt.setInt(1,id); pstmt.setInt(2,rootid); pstmt.setString(3,title); pstmt.setString(4,cont); pstmt.executeUpdate();手動提交更改后的數(shù)據(jù) conn.setAutoCommit(false); mit(); conn.setAutoCommit(true);傳id str+=+rs.getInt(id)+rs.getString(title)+;接收id String strid = request.getParameter(id); int id

55、 = Integer.parseInt(strid); 或者int id = Integer.parseInt(request.getParameter(id); String amdin=(String)seesion.getAttribute(admin); 注意:request.getParameter()得到的是字符串,若原為數(shù)字,得轉(zhuǎn)換!接收字符串,seesion.getAttribute(admin)得到的是object類型,得轉(zhuǎn)換為string類型。 接收字符串時候,空格得不到顯示,用replaceAll,例如,cont=cont.replaceAll(n,);中文的接收問題 接

56、受前轉(zhuǎn)換:request.setCharacterEncoding(GB18030);成員變量 當一個變量為成員變量的時候,沒顯示一次,就會累積,所以每次顯示后得設(shè)為空,例如:用戶登錄 (action 傳值) 驗證: 表單: 用戶名: 密碼: 登錄后,驗證下一頁面是否登錄! session.setAttribute(admin, true);response.sendRedirect(ShowArticleTree.jsp); String admin=(String)session.getAttribute(admin); if(admin!=null&admin.equals(true)

57、login=true; 分頁 int pageSize = 3;String strPageNo = request.getParameter(pageNo);int pageNo;if (strPageNo = null | strPageNo.equals() pageNo = 1; else pageNo = Integer.parseInt(strPageNo.trim();if(pageNodate:String s = “1989-10-12 12:20:30”;Date date = new Date();DateFormat dateFormate = new SimpleDa

58、teFormat (yyyy-MM-dd HH:mm:ss);System.out.println(dateFormat.parse(s);Date-String :Date date = new Date();DateFormat dateFormate = new SimpleDateFormat (yyyy-MM-dd HH:mm:ss);Sysout(dateFormate.format(date);在日期上加上固定的時間段 CalendarCalendar cd = df.getCalendar();cd.setTime(dt);cd.add(Calendar.DATE, 7);Sy

59、stem.out.println(df.format(cd.getTime();數(shù)據(jù)庫相關(guān)知識(創(chuàng)建過程sqlservel)SQL Server 2005導入bak文件 1、右擊SQL Server 2005實例下的“數(shù)據(jù)庫”文件夾。就是與安全性、服務(wù)器對象同級的目錄。選擇新建數(shù)據(jù)庫。2、添加數(shù)據(jù)庫名稱,名稱與備份的數(shù)據(jù)庫名稱一致,點擊確定。3、在“數(shù)據(jù)庫”點擊右鍵,選擇還原數(shù)據(jù)庫,在目標數(shù)據(jù)庫選擇剛才新建的數(shù)據(jù)庫,選擇源設(shè)備,選擇瀏覽,備份位置選擇添加。知道指定的bak文件,點擊確定。把導入的bak文件勾選上,點擊確定。數(shù)據(jù)就導入成功。備注:如果是2000的bak文件要導入到2005。兩個數(shù)

60、據(jù)庫文件不兼容。需要注意以下問題:1.右擊要還原的數(shù)據(jù)庫屬性選項設(shè)置兼容級別為:SQL Server 2000 (80)2.在指定了要還原的*.bak文件以后,選項設(shè)置 還原選項覆蓋現(xiàn)有數(shù)據(jù)庫(選上),其它默認。語言規(guī)則1.use master select *from sysdatabases2.創(chuàng)建數(shù)據(jù)庫use mastergo if exists(select * from sysdatabases where name = student) drop database studentgo create database studentgo3.exists 語句的返回值是false和tu

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論