欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java SE考試--編程題總結(jié)(優(yōu)秀范文五篇)

      時間:2019-05-12 13:05:56下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Java SE考試--編程題總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當然你在寫寫幫文庫還可以找到更多《Java SE考試--編程題總結(jié)》。

      第一篇:Java SE考試--編程題總結(jié)

      線程和進程的區(qū)別:

      (1)進程是運行中的程序,擁有自己獨立的內(nèi)存空間和資源;

      (2)一個進程可以有一個或多個線程組成,且至少有一個線程稱為主線程;(3)線程是最小的處理單位,多個線程共享一塊內(nèi)存和資源;

      (4)當一個線程改變了所屬進程的變量時,其它線程下次訪問該變量時得到這種改變。簡述什么是多線程。

      線程的最主要功能是多任務(wù)處理,即多線程。多線程也就是在主線程中有多個線程在運行,多個線程的執(zhí)行是并發(fā)的,在邏輯上“同時”,而不管是不是物理上的“同時”。

      多線程和傳統(tǒng)上的單線程在程序設(shè)計上的區(qū)別在于: 由于各個線程的控制流彼此獨立,使得各個線程之間的代碼是亂序執(zhí)行的,由此帶來的線程調(diào)度、同步等問題是需要重點留意的。

      引入線程的優(yōu)點: 充分利用CPU資源。2簡化編程模型。

      3簡化異步事件處理。4使GUI更有效率。5節(jié)約成本 線程狀態(tài):

      Thread和Runnable區(qū)別:

      (1)Thread是類,具有線程的所有方法,其對象就是一個線程對象。但繼承Thread,就不能再繼承其他的類(Java只支持單一繼承)。

      (2)Runnable是接口,只提供run()方法。實現(xiàn)該接口的類還可以繼承其他類,但其對象不是線程對象,不能直接運行,必須通過Thread將其啟動。通過Runnable接口創(chuàng)建線程的步驟如下:

      1、實例化實現(xiàn)Runnable接口的類;

      2、建立一個Thread對象,并將第一步實例化后的對象作為參數(shù)傳入Thread類的構(gòu)造方法;

      3、通過Thread類的start()方法建立線程。線程優(yōu)先級:

      (1)線程的優(yōu)先級代表該線程的重要程度。

      (2)當有多個線程同時處于可執(zhí)行狀態(tài)并等待獲得CPU時間時,線程調(diào)度系統(tǒng)根據(jù)各個線程的優(yōu)先級來決定CPU分配時間。

      (3)優(yōu)先級高的線程有更大的機會獲得CPU時間。

      (4)線程的默認優(yōu)先級值:Thread.NORM_PRIORITY,值為5。每個新線程均繼承創(chuàng)建線程的優(yōu)先級。setPriority()設(shè)置線程優(yōu)先級。

      值為MIN_PRIORITY(1)和MAX_PRIORITY(10)之間的值。getPriority()獲取線程的優(yōu)先級值。線程通信:

      (1)線程通信的方法:wait()、notify()和notifyAll()(2)調(diào)用notify()方法時可以隨機選擇一個在該對象調(diào)用wait()方法的線程,解除它的阻 塞。

      (3)調(diào)用notifyAll()方法可以喚醒等待該對象的所有線程。但喚醒時無法控制喚醒哪個線程,喚醒過程完全由系統(tǒng)來控制。

      (4)notify()方法和notifyAll()方法只能在同步方法或同步塊內(nèi)部使用。產(chǎn)生死鎖的原因主要是:

      所謂死鎖,是指兩個或多個線程都在等待對方釋放對象資源而進入的一種不可“調(diào)節(jié)”的狀態(tài)。

      1、因為系統(tǒng)資源不足;

      2、進程運行推進的順序不合適;

      3、資源分配不當?shù)取?/p>

      如果系統(tǒng)資源充足,進程的資源請求都能夠得到滿足,死鎖出現(xiàn)的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。其次,進程運行推進順序與速度不同,也可能產(chǎn)生死鎖。wait()方法區(qū)別于sleep()方法的是:

      (1)wait()方法調(diào)用時會釋放對象鎖,而sleep()方法不會(2)sleep()使當前線程進入停滯狀態(tài)(阻塞當前線程),讓出CPU的使用(3)sleep()是Thread類的Static(靜態(tài))的方法;(4)wait()方法是Object類里的方法;wait()使用notify或者notifyAlll或者指定睡眠時間來喚醒當前等待池中的線程。

      (5)wait()必須放在synchronized block中,否則會在運行時扔出”java.lang.IllegalMonitorStateException“異常。

      通信協(xié)議指網(wǎng)絡(luò)中傳遞、管理信息的一些規(guī)范。TCP/IP協(xié)議,IPX/SPX協(xié)議,NetBEUI協(xié)議等。

      TCP/IP協(xié)議

      IP協(xié)議:網(wǎng)絡(luò)層協(xié)議,保證計算機之間發(fā)送和接收數(shù)據(jù),能適應(yīng)各種網(wǎng)絡(luò)硬件。無連接,不可靠的協(xié)議。

      TCP協(xié)議:端對端的協(xié)議,端與端之間建立連接、發(fā)送、接收數(shù)據(jù)以及終止連接。利用重發(fā)技術(shù)和擁塞控制機制,向應(yīng)用程序提供可靠通信連接。

      區(qū)別與聯(lián)系:IP協(xié)議只保證計算機能發(fā)送和接受分組數(shù)據(jù),而TCP協(xié)議則可提供一個可靠的、可流控的、全雙工的信息流傳輸服務(wù)。兩個協(xié)議統(tǒng)稱為TCP/IP協(xié)議。

      A類地址:0-126,默認掩碼:255.0.0.0。B類地址:128-191,默認掩碼:255.255。C類地址:192-223,默認掩碼:255.255.255.0。D類地址:廣播地址,E類地址保留。

      常用端口以及對應(yīng)的服務(wù) 7:Echo服務(wù)端口

      21:FTP服務(wù)端口

      23:Telnet服務(wù)端口 25:SMTP服務(wù)端口 80:HTTP服務(wù)端口 網(wǎng)絡(luò)API:

      (1)Java中有關(guān)網(wǎng)絡(luò)方面的功能都定義在java.net包中。(2)使用InetAddress類封裝IP地址和域名

      (3)URL由四部分組成。協(xié)議名:指明獲取資源所使用的傳輸協(xié)議。主機名:指定獲取資源的域名。端口:指定服務(wù)的端口。文件路徑:指定訪問的文件名以及路徑。URLConnection類:

      (1)通過URL的方法openStream()只能從網(wǎng)絡(luò)上讀取數(shù)據(jù),如果如要輸出數(shù)據(jù),就要用到URLConnection類。(2)URLConnection是個抽象類,代表與URL指定的數(shù)據(jù)源的動態(tài)連接。

      (3)URLConnection類提供比URL類更強的服務(wù)器交互控制,允許用Post或者Put和其他HTTP請求方法將數(shù)據(jù)送回服務(wù)器。Socket的工作步驟:

      1根據(jù)指定的地址和端口創(chuàng)建一個Socket對象。

      2調(diào)用getInputStream()方法或getOutputStream()方法打開連接到Socket的輸入/輸出流。3客戶端與服務(wù)器根據(jù)一定的協(xié)議交互,直到關(guān)閉連接。4關(guān)閉客戶端的Socket。ServerSocket的工作步驟:

      1根據(jù)指定端口創(chuàng)建一個新的ServerSocket對象。

      2調(diào)用ServerSocket的accept()方法,在指定的端口監(jiān)聽到來的連接。Accpet()一直處于阻塞狀態(tài),知道有客戶端試圖建立連接。這時accpet()方法返回連接客戶端與服務(wù)器的Socket對象。

      3調(diào)用getInputStream()方法或getOutputStream()方法打開連接到Socket的輸入/輸出流。

      4服務(wù)器與客戶端根據(jù)一定的協(xié)議交互,直到關(guān)閉連接。

      5關(guān)閉服務(wù)器端的Socket。6回到第2步,繼續(xù)監(jiān)聽下一次的連接。多線程Socket通信實現(xiàn):

      服務(wù)器總是在指定的端口監(jiān)聽是否有客戶端請求,一旦監(jiān)聽到客戶請求,服務(wù)器就會啟動一個專門的服務(wù)線程來響應(yīng)客戶請求,而服務(wù)器本身在啟動完線程之后馬上有進入監(jiān)聽狀態(tài),等待下一個客戶的到來。synchronized兩種使用方式:

      1.修飾方法,使調(diào)用該方法的線程均能獲得該對象的鎖。2.放在代碼塊中,修飾對象,當前代碼獲得對象的鎖。。鎖定的是對象,而不是方法或代碼塊。

      Swing的結(jié)構(gòu):

      (1)Swing組件位于javax.swing包中,javax是一個Java擴展包。(2)在javax.swing包中,定義了兩種類型的組件:

      頂層容器(不包含在其他容器中的容器,JFrame,JApplet,JDialog和Jwindow 4個)和輕量級組件。

      Swing組件都是AWT的Container類的直接子類和間接子類。布局:

      (1)用來管理組件在容器中的布局格式。

      (2)FlowLayout, BorderLayout, GridLayout和CardLayout四種。位于java.awt包中。(3)FlowLayout流布局一般用來安排面板中的按鈕。它使得按鈕呈水平放置,直到同一條線上再也沒有適合的按鈕。線的對齊方式由align屬性確定。(4)BorderLayout邊界布局,JFrame的默認布局。

      (5)GridLayout網(wǎng)格布局,類似于表格,按照行列排列所有組件,每個單元格大小一樣。添加組件使,按照從左至右,自上而下的順序加入。

      (6)CardLayout卡片布局,將加入到容器的組件看作一疊卡片,只能看到最上面的組件 常用的事件類:

      java.awt.event包中常用的事件類:

      ActionEvent, AdjustmentEvent, ItemEvent, FocusEvent, KeyEvent, MouseEvent, WindowEvent。java.awt.event包中常用的監(jiān)聽接口:

      ActionListener,AdjustmentListener, ItemListener, FocusListener, KeyListener, MouseListener, WindowListener。適配器:

      (1)擴展監(jiān)聽接口時,有些事件處理方法是不需要的,但必須重寫。

      (2)出于簡化代碼的目的,java.awt.event包中提供了一個抽象適配器類,分別實現(xiàn)每個具有多個事件處理方法的監(jiān)聽接口。

      (3)繼承適配器后,可以僅重寫需要的事件處理方法。事件處理的步驟:

      1創(chuàng)建監(jiān)聽類,監(jiān)聽類中,事件處理方法中編寫事件處理代碼 2創(chuàng)建監(jiān)聽對像。

      3利用組件的addXXXListener()方法將監(jiān)聽對象注冊到組件上 3者區(qū)別聯(lián)系:

      監(jiān)聽類:是一個擴展監(jiān)聽接口的類,可以擴展一個或多個監(jiān)聽接口。

      事件處理方法:是監(jiān)聽接口中已經(jīng)定義好的相應(yīng)的事件處理方法,要重寫。監(jiān)聽對象:是監(jiān)聽類的一個實例對象,具有監(jiān)聽功能。

      事件用于實現(xiàn)用戶界面的交互,是GUI編程的重要組成部分。Java最新的事件處理方法是基于委派事件模型的。

      事件包含3個組件:事件對象、事件源和事件處理程序。

      事件是一個描述事件源狀態(tài)改變的對象,不是通過new 創(chuàng)建的,而是由用戶操作觸發(fā)的。一個事件源可能會生成不同類型的事件??梢詫⒁粋€事件發(fā)送到多個監(jiān)聽器對象。

      監(jiān)聽類是實現(xiàn)監(jiān)聽接口的類,監(jiān)聽對象是監(jiān)聽類的實例化對象 在組件中注冊監(jiān)聽器的方法是:addXxxxListener()。適配器是實現(xiàn)相關(guān)監(jiān)聽接口的類,目的是簡化程序代碼 創(chuàng)建菜單的步驟:

      1創(chuàng)建一個JMenuBar菜單欄對象,將其設(shè)置到窗體中。

      2創(chuàng)建若干個JMenu菜單對象,將其放置到JMenuBar對象中,或按要求放到其他JMenu對象中。

      3創(chuàng)建若干個JMenuItem菜單項對中,將其放置到對應(yīng)的JMenu對象中。JPopupMenu:彈出式菜單 位置不固定、無標題

      (JDialog類)模式對話框:必須首先對該對話框進行響應(yīng)(單擊“確定”或“取消”)后,才能對對話框以外的應(yīng)用程序進行操時;

      無模式對話框:可以不響應(yīng)對話框,對其以外的程序進行操作。JTable類--表格模型 TableModel:

      TableModel本身是個接口,若要實現(xiàn)此接口建立表格非常復(fù)雜,因此Java提供了兩個類實現(xiàn)了TableModel接口:(1)AbstractTableModel:抽象類,實現(xiàn)了大部分的TableModel方法。AbstractTableModel 類 對 TableModel 接口中大部分方法提供部分實現(xiàn),它關(guān)注監(jiān)聽器的管理,并生成TableModeEvents 事件,以及把他們發(fā)送到監(jiān)聽器提供方便。

      (2)DefaultTableModel:繼承AbstractTableModel,是默認的表格模型類。

      (3)要創(chuàng)建一個TableModel,可以簡單擴展AbstractTableModel類并且至少實現(xiàn)下列三 個方法 public int getRowCount()、public int getColumnCount()、public Object getValueAt(int row,int column)使用JDBC訪問數(shù)據(jù)庫的基本步驟:

      1加載JDBC驅(qū)動程序(Class.forName(“oracle.jdbc.driver.OracleDriver”);)。2建立數(shù)據(jù)庫連接(Class.forName(“oracle.jdbc.driver.OracleDriver”);Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”, “scott”, “tiger”);)。3創(chuàng)建Statement對象 4執(zhí)行SQL語句。5 處理返回結(jié)果。6 關(guān)閉創(chuàng)建的對象 Statement中3個執(zhí)行方法的不同:

      (1)execute():用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者的混合。(2)executeUpdate():用于執(zhí)行insert、update、delete語句及SQl DDL語句。插、更、刪效果是修改表中的行或列,返回值一個整數(shù),即影響行數(shù)。對于建立、刪除返回值為0。(3)executeQuery():用于產(chǎn)生單個結(jié)果集的語句,例如select語句。事務(wù)的ACID特性:

      數(shù)據(jù)庫中的操作通常是一個獨立單元,事務(wù)是構(gòu)成單一邏輯單位的操作集合。已提交事務(wù)是指成功執(zhí)行完畢的事務(wù),未能成功完成的事務(wù)成為中止事務(wù),對中止事務(wù)造成的變更需要進行撤銷處理,成為事務(wù)回滾。原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durabilily)。

      保存點: 集元數(shù)據(jù): 集元數(shù)據(jù) Meta Data,是有關(guān)數(shù)據(jù)庫和表格結(jié)構(gòu)的信息,如數(shù)據(jù)庫的表、表的列、表的索引、數(shù)據(jù)類型、對SQL的支持程度等信息。DatabaseMetaData接口

      (1)主要用來得到數(shù)據(jù)庫的信息,如:數(shù)據(jù)庫中所有表格的列表、系統(tǒng)函數(shù)、關(guān)鍵字、數(shù)據(jù)庫產(chǎn)品名和數(shù)據(jù)庫支持的JDBC驅(qū)動名。

      (2)通過Connection.getMetaData()方法創(chuàng)建。(3)主要提供了兩大類方法:

      1.返回類型boolean的,用于檢查數(shù)據(jù)庫或驅(qū)動器是否支持某項功能。2.用于獲取數(shù)據(jù)庫或驅(qū)動器本身的某些特征值。

      通過Statement實現(xiàn)靜態(tài)SQL查詢

      使用PreparedStatement實現(xiàn)動態(tài)SQL查詢 使用CallableStatement實現(xiàn)存儲過程的調(diào)用

      DatabaseMetaData接口用于得到關(guān)于數(shù)據(jù)庫的信息 ResultSetMetaData接口主要用來獲取結(jié)果集的結(jié)構(gòu) JDBC默認的事務(wù)提交模式是自動提交

      通過setAutoCommit()方法控制自動提交模式,使用rollback()方法實現(xiàn)事務(wù)回滾 開發(fā)RMI--步驟: 定義遠程接口。2 實現(xiàn)遠程接口。3 編寫和實現(xiàn)遠程服務(wù)類。4 編寫客戶端程序 RMI機制原理:

      2個獨立程序。服務(wù)器端、客戶端 服務(wù)器端:(1)創(chuàng)建多個遠程對象,(2)調(diào)用注冊服務(wù)程序使得名字與遠程對象關(guān)聯(lián),使得這些遠程對象能夠被引用,(3)等待客戶端調(diào)用這些遠程對象的方法??蛻舳耍?/p>

      (1)在服務(wù)器上的注冊服務(wù)程序中用遠程對象名稱查找一個或者多個遠程對象的引用,(2)調(diào)用遠程對象的方法。

      JOptionPane類中四種對話框的靜態(tài)方法

      1消息對話框(showmessagedialog)2輸入對話框(input)3確認對話框(Option)4選項對話框(Confirm)Locale常用定義:

      Locale類是用來標識本地化消息的重要工具類。該類包含對主要地理區(qū)域的地域化特征的封裝。通過設(shè)定Locale為特定的國家或地區(qū),提供符合當?shù)匚幕?xí)慣的字體、圖標和表達格式。

      簡述java異常處理機制 :

      java提供了兩種處理異常的機制:一是捕獲異常,二是聲明拋出異常.在java運行過程中系統(tǒng)得到一個異常對象時,它會沿著方法的調(diào)用棧逐層回溯,尋找處理這個異常的代碼,找到后,系統(tǒng)把當前異常對象教給這個方法處理,這就是捕獲異常.如果方法中不知道如何處理所出現(xiàn)的異常,則可在定義方法時,聲明拋出異常.使用JDBC查詢Scott用戶的emp表中的所有信息? String sql=“select * from emp”;PreparedStatement stmt =conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();int columnCount = rs.getMetaData().getColumnCount();//這地方補充了一下 while(rs.next()){ for(int i = 1;i <= columnCount;i++){ System.out.println(md.getColumnName(i)+ “--” + rs.getObject(i));} } JDBC API的三個組成部分: 1 JDBC驅(qū)動程序管理器 2 JDBC驅(qū)動程序測試包 3 JDBC-OCBC橋

      加載JDBC驅(qū)動程序中加載驅(qū)動程序的一種簡單方法是使用Class.forName方法顯示加載: Class.forName(“DriverName”);對于JDBC/ODBC橋,加載JDBC-ODBC數(shù)據(jù)庫驅(qū)動程序的方法為: Class.forName(“sun.jdnc.odbc.JdbcOdbcDriver”);而對于Oracle數(shù)據(jù)庫,加載數(shù)據(jù)庫驅(qū)動程序的方法為: Class.forName(“oracle.jdbc.driver.OracleDriver”);對于Oracle驅(qū)動連接的是URL是:

      Jdbc:oracle:thin:@serverName:port:instance 通過Oracle驅(qū)動獲得數(shù)據(jù)庫連接的實力語句:

      Class.forName(“oracle.jdbc.driver.OracleDriver”);Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”,”scott”,”tiger”);

      多線程Socket通信中多個while循環(huán)是用來監(jiān)聽的。

      TableModel本身是一個借口,若是要直接實現(xiàn)此接口來建立表格是非常復(fù)雜的,因此java中還提供了AbstractTableModel和DefaultTableModel這兩個類分別實現(xiàn)TableModel接口。ListSelecyionModel接口中的常量:

      static final int SINGLE_SELECTION 單一選擇模式 static final int SINGLE_INTERVAL_SELECTION 連續(xù)區(qū)間選擇模式 static final int MULTIPLE_INTERVAL_SELECTION 多重選擇模式

      簡述實現(xiàn)一個自定義的對話框的步驟?

      (1)繼承JDialog類,在構(gòu)造方法中傳入?yún)?shù)(2)在對話框中添加用戶界面組件(3)添加事件處理(4)設(shè)置對話框大小

      什么是檢查型異常,非檢查型異常

      檢查型異常:指編譯器要求必須處置的異常,是程序運行時由于外界因素造成的一般性異常 非檢查型異常:指編譯器不要求強制處理的異常,該異常是因設(shè)計或?qū)崿F(xiàn)方式不當導(dǎo)致的,可以避免這種異常的發(fā)生.簡述一下使用泛型有什么優(yōu)點?

      答:泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。Java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查類型安全,并且所有的強制轉(zhuǎn)換都是自動和隱式的,提高代碼的重用率。

      2.簡要描述ArrayList,Vector,LinkedList的存儲性能和特性? 答:ArrayList支持可隨需要而調(diào)整的動態(tài)數(shù)組。其內(nèi)部封裝了一個動態(tài)再分配的Object[]數(shù)組。每個ArrayList對象有一個capacity,表示存儲列表中元素的數(shù)組的容量。當元素添加到ArrayList時,它的capacity自動增加。在向一個ArrayList對象添加大量元素的程序中,可使用ensureCapacity()方法增加Capacity,此法可以減少或增加重分配的數(shù)量。Vector 由于使用了synchronized 方法(線程安全),通常性能上較ArrayList 差,而LinkedList 使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進 行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。3.簡述Collection和Collections的區(qū)別。

      答:java.util.Collection 是一個集合接口集合接口集合接口集合接口。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現(xiàn)。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。java.util.Collections 是一個包裝類。它包含有各種有關(guān)集合操作的靜態(tài)靜態(tài)靜態(tài)靜態(tài)多 態(tài)方法多態(tài)方法多態(tài)方法多態(tài)方法。此類不能實例化不能實例化不能實例化不能實例化,就像一個工具類個工具類個工具類個工具類,服務(wù)于Java的Collection框架。Java代碼。

      4、List、Map和Set三個接口,存取元素時,各有什么特點? 答:List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。

      5、描述HashMap和Hashtable的區(qū)別。答:Hashtable和HashMap類有三個重要的不同之處。第一個不同主要是歷史原因。Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(xiàn)。最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是只有HashMap可以讓你將空值作為一個表的條目的key或value。HashMap中只有一條記錄可以是一個空的key,但任意數(shù)量的條目可以是空的value。這就是說,如果在表中沒有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個空的值,那么get()將返回null。如果有必要,用containKey()方法來區(qū)別這兩種情況。

      6、簡述序列化和反序列化概念?

      對象的序列化就是把對象寫入到一個輸出流中,對象的反序列化是指從一個輸入流中讀取一個對象。

      7、簡述適配器與監(jiān)聽接口的區(qū)別?

      區(qū)別:適配器只需要重寫需要的事件處理方法,而監(jiān)聽接口需要實現(xiàn)全部的方法。

      監(jiān)聽接口中定義了抽象的事件處理方法,這些方法針對不同的操作進行不同的處理。在程序中,通常使用監(jiān)聽類實現(xiàn)監(jiān)聽接口中的事件處理方法。監(jiān)聽接口定義在java.awt.event包中,該包中提供了不同事件的監(jiān)聽接口,這些接口中定義了不同的抽象的事件處理方法。擴展監(jiān)聽接口時,有些事件處理方法是不需要的,但必須重寫。

      處于簡化代碼的目的,java.awt.event包中有提供了一套抽象適配器類,分別實現(xiàn)每個具有多個事件處理方法的監(jiān)聽接口。這樣繼承適配器后,可以僅重寫需要的事件處理方法。

      第二篇:javase總結(jié)

      建議開發(fā)較大規(guī)模的java應(yīng)用程序都考慮使用mvc模式

      首先考慮系統(tǒng)架構(gòu),學(xué)習(xí)使用第三方成熟的jar包,并import到自己的項目中

      1、開發(fā)時考慮包的規(guī)劃,model,view層

      2、應(yīng)用結(jié)對編程原理進行開發(fā),隨時保證程序的可運行性。(針對接口的編程)

      3、編譯調(diào)試代碼,注意異常問題的處理

      4、注意javadoc文檔的編寫應(yīng)該和代碼的編寫同步進行

      5、Log4j日志的記錄,Junit單元測試工具的使用

      6、代碼編寫完畢,將其使用jar打包成可執(zhí)行的jar文件

      7、使用Ant自動化編譯測試打包部署工具完成代碼的最終發(fā)布

      第三篇:編程題總結(jié)

      C作業(yè)匯總

      1.short a,b=32767;/*short類型在內(nèi)存中占2B*/ a=b+1;問:a的值是多少?并分析原因。

      2.有一4位數(shù)整數(shù),假設(shè)用abcd表示,請把這個4位數(shù)的每個數(shù)位用表達式表示出來。3.從鍵盤輸入圓的半徑r,計算并輸出圓的面積s(要求:半徑r定義為float型;圓周率?定義為符號常量;面積s保留2位小數(shù))#define PI 3.14159 #include void main(){ float r,s;printf(“請輸入半徑r:n”);scanf(“%f”,&r);s=PI*r*r;printf(“面積是:%.2fn”,s);}

      4.輸入m>=3的正整數(shù),判斷m是否素數(shù)。畫出算法流程圖及NS圖

      5.有一函數(shù):

      x?1 ?x ?y??2x?1 1?x?10

      ?3x-11 x?10 ?寫一段程序,輸入x,輸出y值。

      要求x,y聲明為float類型,y保留2位小數(shù)。#include void main(){ float x,y;printf(“請輸入x的值:n”);scanf(“%f”,&x);

      if(x<1)

      y=x;else

      if(x<10)

      y=2*x-1;

      else

      y=3*x-11;

      }

      printf(“y=%.2fn”,y);

      x3x5x7x9?????,6.課后習(xí)題4.17(P159)利用泰勒級數(shù)sinx?x?計算sinx的3!5!7!9!值。要求最后一項的絕對值小于10,并統(tǒng)計出此時累加了多少項。#include #include void main(){ float x,sinx=0;float term;

      /*記錄每個項數(shù)*/ int n=1,count=0;/*count記錄累加了多少項*/

      printf(“請輸入x值(弧度):n”);scanf(“%f”,&x);

      term=x/n;while(fabs(term)>1e-5)

      /* while循環(huán)*/ {

      sinx+=term;

      count++;

      n+=2;

      term=-term*x*x/((n-1)*n);}

      /* do

      /*do while循環(huán)*/ {

      sinx+=term;

      count++;

      n+=2;

      term=-term*x*x/((n-1)*n);}while(fabs(term)>1e-5);

      */

      printf(“sin(%.2f)=%.4fn”,x,sinx);printf(“一共累加了:%d項。n”,count);}

      7.用牛頓迭代法求下面方程在1.5附近的根:

      2x?4x?3x?6?0 32?5

      牛頓迭代公式:

      x1?x0?f(x0)f?(x0)

      #include #include void main(){ float x0,x1=1.5;float y1,y2;

      /*y1記錄f(x0),y2記錄f(x0)的導(dǎo)數(shù)*/

      do {

      x0=x1;

      y1=2*x0*x0*x0-4*x0*x0+3*x0-6;

      y2=6*x0*x0-8*x0+3;

      x1=x0-y1/y2;}while(fabs(x1-x0)>1e-5);

      printf(“the root is:%.2fn”,x1);}

      8.寫一函數(shù),輸入一個16進制整數(shù),輸出相應(yīng)的10進制數(shù)。例:從鍵盤輸入2a,輸出結(jié)果是42。

      要求:若輸入數(shù)據(jù)不合法,則輸出提示信息。如輸入了35g,輸出“您輸入的16進制數(shù)不合法!”。

      #include #include void main(){ char c;int sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);

      while((c=getchar())!='n'){

      if(c>='0' && c<='9')

      sum=sum*16+c-'0';

      else

      if(c>='a' && c<='f')

      sum=sum*16+c-87;

      else

      if(c>='A' && c<='F')

      sum=sum*16+c-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      } }

      printf(“相應(yīng)的10進制數(shù)是:%dn”,sum);} 方法2:用字符串處理的方式 #include #include void main(){ char str[20];int i,sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);gets(str);

      for(i=0;str[i];i++){

      if(str[i]>='0' && str[i]<='9')

      sum=sum*16+str[i]-'0';

      else

      if(str[i]>='a' && str[i]<='f')

      sum=sum*16+str[i]-87;

      else

      if(str[i]>='A' && str[i]<='F')

      sum=sum*16+str[i]-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      } }

      printf(“相應(yīng)的10進制數(shù)是:%dn”,sum);} 方法3:用字符數(shù)組及指針處理的方式 #include #include void main()

      { char str[20],*p=str;int sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);gets(p);

      while(*p){

      if(*p>='0' && *p<='9')

      sum=sum*16+*p-'0';

      else

      if(*p>='a' && *p<='f')

      sum=sum*16+*p-87;

      else

      if(*p>='A' && *p<='F')

      sum=sum*16+*p-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      }

      p++;}

      printf(“相應(yīng)的10進制數(shù)是:%dn”,sum);} 9.編寫一個小函數(shù),其功能是計算兩個整數(shù)的平均值,該函數(shù)要在主函數(shù)中調(diào)用。

      #include void main(){ int x,y;float avg;float average(int,int);printf(“輸入x,y的值,用空格分隔兩個數(shù):n”);scanf(“%d%d”,&x,&y);

      avg=average(x,y);

      printf(“%d,%d的平均值是:%.2fn”,x,y,avg);}

      float average(int x,int y)

      { return(x+y)/2.0;}

      10.有N(N用宏定義為符號常量)個元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機輸入。然后,將這個整型數(shù)組中的值逆序存放。例如,原來5個元素的順序為8、1、4、6、5,逆序之后各元素的值是5、6、4、1、8 #define N 5 #include void main(){ int a[N];int i,t;

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      printf(“數(shù)組原來的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      for(i=0;i

      t=a[i];

      a[i]=a[N-1-i];

      a[N-1-i]=t;}

      printf(“n逆序之后數(shù)組的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      printf(“n”);} 11.有N(N用宏定義為符號常量)個元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機輸入。然后,對該數(shù)組元素進行由小到大排序(要求,該功能用函數(shù)實現(xiàn)),輸出數(shù)組中各元素值。最后,從鍵盤隨機輸入一個整數(shù),并把該整數(shù)插入上述數(shù)組中(該功能用函數(shù)實現(xiàn)),使得插入該整數(shù)后的數(shù)組仍然有序,輸出數(shù)組中各元素的值。#define N 5 #include void main(){ int a[N+1];

      int i,x;void sort(int array[],int n);void insert(int array[],int n,int x);

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      sort(a,N);

      /*調(diào)用sort對數(shù)組進行排序*/

      printf(“n升序排序之后數(shù)組的值是:n”);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n輸入一個x值插入到數(shù)組中:n”);scanf(“%d”,&x);

      insert(a,N,x);

      printf(“n插入%d之后數(shù)組的值是:n”,x);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n”);}

      void sort(int array[],int n)/*用選擇法對數(shù)組array升序排序*/ { int i,j,t,min;

      for(i=0;i

      min=i;

      for(j=i+1;j

      if(array[j]

      min=j;

      if(min!=i)

      {

      t=array[i];

      array[i]=array[min];

      array[min]=t;

      } } }

      void insert(int array[],int n,int x){ int i,pos;

      for(i=0;i

      pos=i;

      for(i=n-1;i>=pos;i--)

      array[i+1]=array[i];

      array[pos]=x;}

      12.有一整型數(shù)組,N(N用宏定義為符號常量)個元素,該數(shù)組中各元素值從鍵盤隨機輸入。從鍵盤隨機輸入一個整數(shù)x,刪除該數(shù)組中值與x相同的所有元素(該功能用函數(shù)實現(xiàn)),輸出數(shù)組中各元素的值。#define N 5 #include void main(){ int a[N];int i,x,n;int delet(int a[],int n,int x);

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      printf(“數(shù)組原來的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      printf(“n請輸入要刪除的值x:n”);scanf(“%d”,&x);

      n=delet(a,N,x);

      /*n值是刪除與x相同的元素后,數(shù)組剩余元素的個數(shù)。*/

      printf(“刪除%d之后數(shù)組的值是:n”,x);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n”);

      }

      int delet(int a[],int n,int x){ int i,j;

      for(i=0,j=0;i

      if(a[i]!=x)

      a[j++]=a[i];

      return j;}

      13.從鍵盤隨機輸入一字符串,將所有ASCII值為偶數(shù)的字符輸出。例如:輸入abc123,輸出結(jié)果是b2(因為b的ASCII值是98,2的ASCII值是50,其他字符的ASCII值都是奇數(shù))

      #include #define N 40 void main(){ char str[N];int i;

      printf(“輸入字符串:n”);gets(str);

      printf(“ASCII碼是偶數(shù)的字符有:”);for(i=0;str[i];i++)

      if(str[i]%2==0)putchar(str[i]);

      printf(“n”);}

      14.從鍵盤輸入兩個字符串s1,s2,把s2連接到s1的末尾。不能用strcat函數(shù) #include #define N 40 void main(){ char str1[N],str2[N];void mystrcat(char *p1,char *p2);

      printf(“輸入兩個字符串,輸入回車鍵結(jié)束:n”);gets(str1);gets(str2);

      mystrcat(str1,str2);

      printf(“連接在一起的字符串是:n”);puts(str1);

      }

      void mystrcat(char *p1,char *p2){ while(*p1)p1++;while(*p2)

      *p1++=*p2++;*p1='