freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

java程序設計與應用開發(fā)第2版下ppt-資料下載頁

2025-01-19 08:11本頁面
  

【正文】 on:將文件指針前移指定的字節(jié)數,返回實際移動的字節(jié)數。 讀取器和寫出器 在 Java和系統(tǒng)之間進行字符數據的轉換由讀取器 Reader和寫出器 Writer負責。 Reader和 Writer作為字符流的祖先,它們都是抽象類。 InputStreamReader和 OutputStreamWriter是我們常用的Reader和 Writer的具體實現的子類。 ? InputStreamReader可以從特定編碼的數據源中讀取文本信息,它的兩個常用構建器如下: ? OutputStreamWriter是與 InputStreamReader對應的輸出器,它可以按特定的編碼方式輸出字符數據,它的兩個常用構建器如下: 大多數情況下,我們可以依賴系統(tǒng)默認的字符集來處理文本數據,在某些特定的應用中我們需要明確指定字符集。 OutputStreamWriter和InputStreamReader都定義了一個方法: 該方法可以返回當前字符流的字符集名稱。 對象序列化 對象的序列化就是把一個對象的狀態(tài)轉化成一個字節(jié)流。我們可以把這樣的字節(jié)流存儲為一個文件,作為這個對象的一個復制;在一些分布式應用中,我們還可以把對象的字節(jié)流發(fā)送到網絡上的其他計算機。與序列化過程相對的是反序列化,就是把流結構的對象恢復為其原有形式。 對象輸出流 ObjectOutputStream繼承了類 OutputStream并實現了接口 ObjectOutput。 ObjectOutputStream的方法 writeObject()用于對象序列化。 對象輸入流 ObjectInputStream繼承了類 InputStream并實現了接口 ObjectInput。 ObjectInputStream的方法 readObject()從字節(jié)流中反序列化對象。 第 9章 訪問數據庫 本章主要內容 JDBC 簡介 建立數據庫連接 執(zhí)行 SQL語句 使用 PreparedStatement 事務處理 編寫數據庫工具類 JDBC 簡介 Java使用 JDBC(Java DataBase Connectivity)技術進行數據庫的訪問。使用 JDBC技術進行數據庫訪問時, Java應用程序通過 JDBC API和 JDBC驅動程序管理器之間進行通信,例如 Java應用程序可以通過 JDBC API向 JDBC驅動程序管理器發(fā)送一個 SQL查詢語句。 JDBC驅動程序管理器又可以以兩種方式和最終的數據庫進行通信:一種是使用 JDBC/ODBC橋接驅動程序的間接方式;另一種是使用 JDBC驅動程序的直接方式。 建立數據庫連接 ? 使用 JDBC/ODBC橋接 驅動程序 ? 使用 JDBC驅動程序 ? 使用配置文件 使用 JDBC/ODBC橋接驅動程序 1. 載入驅動程序 使用 JDBC/ODBC橋接驅動程序,該驅動程序的名稱為 Driver,使用下面的語句將載入 JDBC/ODBC橋接驅動程序: 2. 建立連接 使用下面的語句建立一個和數據庫的連接: 使用 JDBC驅動程序 本小節(jié)介紹如何使用 JDBC驅動程序直接和運行在 MS SQL Server 2022服務器上的數據庫建立連接。 1. 載入驅動程序 MS SQL Server 2022 JDBC驅動程序的名稱為 (參看該驅動程序安裝目錄下的文檔 ) 。 使用下面的語句將載入 MS SQL Server 2022 JDBC驅動程序: 2. 建立連接 使用下面的語句建立一個和數據庫的連接: 使用配置文件 使用 JDBC的一個優(yōu)點就是:數據庫編程獨立于平臺和數據庫類型。也就是數據庫類型改變后,訪問數據的代碼不需要改變 (數據庫驅動程序名稱和數據庫 url需要做相應的變動 )。 驅動程序名稱和數據庫 url都被“硬”編碼到應用程序中。一旦所訪問的數據庫類型改變后,必須修改程序中的驅動程序名稱和數據庫url,重新編譯后才能運行 .這對于應用程序的用戶是不能接受的,另一方面也削減了 JDBC數據庫編程獨立于數據庫類型的優(yōu)點??梢酝ㄟ^使用配置文件來解決這個問題:提供一個設置界面,用戶可以在該界面中指定驅動程序的名稱以及數據庫 url,并將結果保存到一個配置文件中。應用程序進行數據庫連接時使用配置文件中的信息,這樣可以提高應用程序的靈活性。 執(zhí)行 SQL語句 ? executeUpdate ? executeQuery ? executeBatch executeUpdate executeUpdate(SQL)方法用來執(zhí)行那些會修改數據庫的 SQL語句,例如 insert、 update、 delete以及 create等命令。 executeQuery 如果對數據庫進行查詢操作 , 那么使用方法 executeQuery(SQL),該方法將返回一個 ResultSet類型的結果集對象 , 該對象中包含了所有查詢結果 。 要訪問結果集中的一條記錄 , 需要定位到該記錄 。 ResultSet類型的對象中提供了 next()方法 , 用于依次定位結果集中的每條記錄 。 ResultSet類型的對象中還提供了 getXXX()方法 , 用于訪問當前記錄中字段的值 。 依據字段的 SQL數據類型的不同 , getXXX()方法采用不同的形式:如 getString()用于訪問 varchar類型的字段 , 而 getFloat()用于訪問 float類型的字段 。 使用 getXXX()必須在方法參數中指明所訪問字段的列索引或是列名 。 executeBatch executeBatch()方法用來批量執(zhí)行 SQL語句。需要注意的是,這些要批量執(zhí)行的 SQL語句是更新類型 (如 insert、 update、 delete以及create等 )的,即會對數據庫進行修改操作的 SQL語句,并且其中不能包含查詢類型 (select)的 SQL語句。 使用 PreparedStatement 前面介紹了使用數據庫連接對象創(chuàng)建 Statement對象,然后通過Statement對象向 DBMS發(fā)送 SQL語句。其實還可以通過數據庫連接對象創(chuàng)建 PreparedStatement類型的對象,然后通過它向 DBMS發(fā)送 SQL語句。 在有些情形下, PreparedStatement類型的對象與 Statement類型對象相比,有兩個優(yōu)點:效率高和使用方便。 注意: Statement類型的對象在執(zhí)行 executeQuery(SQL)方法時,是將SQL語句作為 executeQuery(SQL)方法的參數傳遞進去的。在執(zhí)行時將SQL語句發(fā)送給 DBMS,編譯后再執(zhí)行。而 PreparedStatement類型對象的 executeQuery()方法不需要傳遞 SQL語句,它使用的是創(chuàng)建PreparedStatement對象時預先編譯好的 SQL語句。同樣,兩者的executeUpdate()方法也存在類似的區(qū)別。 事務處理 系統(tǒng)中我們用到了 LocationRO與 Location兩個類,都是用于定位及方向判斷,但是不同的是其中 Location類中位置是可讀寫的,而LocationRO則是只讀的,不可以用 setX()等方法對位置進行動態(tài)設置。 編寫數據庫工具類 Java編程語言中提供了用于數據庫訪問的各種 API。有的時候,一些 API總是要組合在一起使用。為此,我們可以編寫一個方法,然后將該方法封裝到一個自定義的類中。這樣 ,要創(chuàng)建一個數據庫連接,只需要一個語句: 這樣可以更加高效、簡潔地編寫出應用程序。 第 10章 多 線 程 本章主要內容 什么是線程 定制線程類 線程的生命周期 線程中斷 線程的優(yōu)先級 線程同步 什么是線程 線程是在程序中的一個單獨的控制流,類似于我們以前介紹的順序執(zhí)行程序。一個線程在執(zhí)行期間同樣有一個開始、一個執(zhí)行序列和一個結束點。但是在這里要特別指出的是單個線程不是一個程序,并不能依靠自身單獨執(zhí)行,它必須在程序中執(zhí)行。 線程和進程相似,都是獨立的線性控制流。因此,線程有時也稱為輕量級進程 (lightweight process)。之所以稱為輕量級,是因為線程是在進程 (process)提供的環(huán)境下執(zhí)行的,線程只能在進程的作用域內活動。同時,線程作為一個獨立的控制流,在執(zhí)行時必須有自己的運行環(huán)境,例如堆棧、程序計數器等。 定制線程類 ? 繼承線程類 ? 實現 Runnable接口 繼承線程類 實現線程最重要的是實現其中的 run方法, run方法決定了線程所做的工作。 Java中有一個線程類 Thread, 該類中提供的 run是一個空方法 。 為此 , 我們可以繼承 Thread, 然后覆蓋 (override)其中的run, 使得該線程能夠完成特定的工作 。 實現 Runnable接口 定制線程類提供 run方法的第二種常用的方法就是實現 Runnable接口。 Runnable接口中定義了唯一的方法: 任何實現了 Runnable接口的類所生成的對象均可用于創(chuàng)建線程對象。 注意: 從 理論上講,定制線程類可以使用繼承線程類 Thread和實現Runnable接口兩種方法中的任意一種。但是由于 Java只支持單繼承,因此,當用戶定制的線程類需要繼承其他類時,就只能使用實現Runnable接口的方法。 線程的生命周期 ? 創(chuàng)建線程 ? 啟動線程 ? 線程運行 ? 線程阻塞 ? 終止線程 創(chuàng)建線程 例 語句: 用于創(chuàng)建一個線程對象 t1。 注意:該語句執(zhí)行完畢后,線程對象 t1處于 new狀態(tài),它并沒有擁有運行線程所需要的系統(tǒng)資源,也就是說這個時候線程還不可運行。當線程處于new狀態(tài)的時候,唯一能做的就是啟動 (start)這個線程。調用 start之外的任何方法都不能使該線程執(zhí)行,并且會引發(fā)一個IllegalThreadStateException異常。事實上,在線程的生命周期中,任意時刻調用一個當前不能被執(zhí)行的方法,線程都將拋出一個IllegalThreadStateException異常。 啟動線程 線程對象創(chuàng)建后 , 緊接著執(zhí)行的語句為: start方法創(chuàng)建了運行線程所必需的系統(tǒng)資源 , 并調用線程的 run方法 。 start方法返回之后 , 線程就進入可運行 (runnable)狀態(tài) 。 線程運行 由于許多計算機只有一個處理器,這就不可能在同一個時刻同時運行所有處于可運行狀態(tài)的線程。 Java運行系統(tǒng)必須有一套合理的時間分配方案來調度 (schedule)所有處在可運行狀態(tài)的線程。因此,在某一個具體時刻,處于可運行狀態(tài)的線程可能正等待處理器分配時間。也就是說,處于可運行狀態(tài)的線程,只有被調度 (schedule)執(zhí)行時,才真正處于運行 (running)狀態(tài)。 線程阻塞 當以下任一事件發(fā)生時,正在運行的線程將由運行狀態(tài)轉化為阻塞(blocked)狀態(tài): ? 休眠方法被調用。 ? 線程調用 wait方法,并且等待一個指定的條件被滿足。 ? 線程在 I/O處阻塞。 當一個線程處于阻塞狀態(tài),如何讓其重新進入可運行狀態(tài)?下面給出了由阻塞狀態(tài)進入可運行狀態(tài)的條件。 ? 線程處于睡眠狀態(tài),那么必須睡眠相應的指定時間。 ? 線程在等待一個特定條件,那么必須由其他
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1