版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目1
一、思考題
1.Java程序有幾種版本,分別是什么?
Java有三種版本,分別是J2ME、J2SE、J2EE
2.Java程序有何特點?
Java語言的特點如下:
①面向?qū)ο螅褐С执a繼承及重用,是完全面向?qū)ο蟮?,它不支持類似C語言那樣的面
向過程的程序設(shè)計技術(shù)。
②解釋執(zhí)行:Java解釋器(運行系統(tǒng))能直接運行目標(biāo)代碼有令。
③平臺無關(guān):Java源程序被編譯成一種高層次的與機器無關(guān)的Byte-codes格式語言,被設(shè)
計在Java虛擬機上運行。
?多線程:Java提供的多線程功能使得在一個程序里可同時執(zhí)行多個小任務(wù)。多線程帶來
的好處是可以有更好的交互性能和實時控制性能。
⑤健壯性:Java致力于檢查程序在編譯和運行時的錯誤,類型檢查幫助檢查出許多開發(fā)早
期出現(xiàn)的錯誤。
3.什么是JVM,為什么需要JVM?
JVM即Java虛擬機,是一臺可以存在于不同的真實的軟、假件環(huán)境下的虛擬的計算機,其
功能是將字節(jié)碼解釋為真實平臺能執(zhí)行的指令。Java正是通過虛擬機JVV技術(shù),實現(xiàn)了與平臺
無關(guān),實現(xiàn)“編寫一次,到處運行”。因此,任何平臺只要安裝相應(yīng)的Java虛擬機環(huán)境,就能
運行Java程序。
4.如何理解Java程序的基本結(jié)構(gòu)?
①語句packagepl;是建立?一人包(文件夾),生成的類文件將存放于包中。
②程序第一行publicclass類名}是一個類定義語句。public關(guān)鍵字指明類的訪問方式為
公有,也就是在整個程序內(nèi)都可以訪問到它。如果將類定義為public,則類其名稱必須與主文件名
一致,并口大小寫敏感。
③類后大括號內(nèi)可以定義類的成員和方法,對于一個可■執(zhí)行的Java類,main方法是必
需的,而且該main方法必須是公有(public)、靜態(tài)(stalic)和沒有返回值(void)的,同時它只能帶一
個字符串型(StringU)的參數(shù)。
?程序的一行“〃……”是注釋,只說明不運行。
⑤每個命令語句結(jié)束,必須以結(jié)尾。
二、編程
1.編寫一Java應(yīng)用程序,要求在屏幕上輸出字符串“HappyNewYear!”。
classPracl
publiestaticvoidmain(Stringargs[])
(
System,printIn("H叩pyNewYear!");
)
)
2.編寫一個簡單的Java程序,在屏幕上輸出如下圖形:
*********
classBirdimplementsCanFlypublicvoidfly0(
System,out.priming鳥需借助翅膀飛上了天空。;)
classTest
(publicstaticvoidmain(Stringargs[])(Planep=newPlaneo;
Birdb=ncwBird();p.fly0;b.fly0;)
}項目4一、選擇題
I.關(guān)于異常的定義,下列描述中最正確的一個是(D)。
A)程序編譯錯誤B)程序語法錯誤
C)程序自定義的異常事件D)程序編譯或運行時發(fā)生的異常事件
2.拋出異常時,應(yīng)該使用的子句是(A)。
A)(hrowB)catchC)finallyD)throws
3.自定義異常類時,可以繼承的類是(C)。
A)ErrorB)AppletC)Excepiion及其子類D)AssertionError
4.當(dāng)方法產(chǎn)生異常但卻無法確定該如何處理時,應(yīng)采用的方法是(C)。
A)聲明異常B)捕獲異常C)拋出異常D)自定義異常
5.對于try(…)catch子句的排列方式,正確的一項是(A)。
A)子類異常在前,父類異常在后B)父類異常在前,子類異常在后
C)只能有子類異常D)父類異常與子類異常不能同時出現(xiàn)
6.下列關(guān)于try、catch和finally的表述,錯誤的是(C)。
A)(ry語句塊后必須緊跟catch語句塊B)catch語句塊必須緊跟在try語句塊后
C)可以有try但無catchD)可以有try但無finally
7.下列描述中,錯誤的一項是(A).
A)一個程序拋出異常,其他任何運行中的程序都可以捕獲
B)算術(shù)溢出需要進(jìn)行異常處理
C)在方法中檢測到錯誤但不知如何處理時,方法就聲明異常
I))任何沒有被程序捕獲的異常最終被默認(rèn)處理程序處理
8.下面程序運行時,會產(chǎn)生的異常是(C)o
classTcst(
publicstaticvoidmain(Stringarf])(intx=O,y二20,z;
z=(x+y)/(x*y);
System,out.printin("z="+z);
)B)NumberFormatException
D)NulIPointerException
A)
ArraylndexOutOfBoundsExceptionAnB)NumberFormatException
C)thMelicExceplion二、填空題
D)NulIPointerException
1.一個try代
碼段后必須跟calch代碼段,finally代碼段可以沒有。
2.自定義異常類必須繼承£2^國皿類或其子類。
3.異常處理機制可以允許根據(jù)具體的情況選擇在何處處理異常’,可以在當(dāng)前方法中捕獲并
處理,也可以用throws子句把它交給調(diào)用方法去處理。
4.數(shù)組卜標(biāo)越界對應(yīng)的類是ArrayIndexOutOfBoundsException。
5.為達(dá)到高效運行的要求,運行時產(chǎn)生一的異常,可以直接交給Java虛擬機系統(tǒng)來處理,
而Exception類派生出的非運行異常,要求編寫程序捕獲或者聲明,
三、編程題
1.從鍵盤輸入5個數(shù),求出5個數(shù)的階乘之和。若輸入負(fù)數(shù)時,產(chǎn)生異常并進(jìn)行相應(yīng)的處理。
importjavax.swing.*;classExceptionExam{
publicstaticvoidmain(Stringargs[])
inti,sum=0,j;for(i=0;i<5;i++)j=l;int
x=lnteger.parselnt(JOptionPane.showlnputDialog(null,"input:"));try(
if(x<0)thrownewException();fbr(intk=l;k<=x;k++)j=j*k;sum=sum4j;
}catch(Exccptionc){
System.out.printlnf輸入了一個負(fù)數(shù),請重新輸入!i-;))System.out.printlnf
階乘和為:"+sum);
2.設(shè)計自己的異常類,從鍵盤輸入-?個數(shù),若輸入的數(shù)不小于0,則輸出它的平方根。若小于
0,則輸出提示信息“輸入錯誤”。(求平方根的方法為:Math.sqrl(inlx))importjavax.swing.*;class
MyExceptionextendsException{
staticinti=3;
MyException()
(supero產(chǎn)生異常!”);
))classExceptionTest(
publicstaticvoidmain(Stringargsfl)
{intx=intcgcr.parsclnt(JOptionPanc.showlnputDialog(nuIl,''input:"));try(
if(x<0)thrownewMyException();System.oul.prinUn("輸入數(shù)的平方根
為:"+Math.sqrt(x));}catch(MyExccptione){
System.out.println(e.getMessage());(〃異常編號為:"+e.i);}
}}項目5—、選擇題
1.下面屬于容器類的是(A)
A.JFrameB.JTcxtFicldC.ColorD.JMenu
2.FlowLayout的布局策略是(A)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
3.BorderLayout的布局策略是(C)
A.按添加的順序由左至右將組件排列在容器中o
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
4.GridLayout的布局策略是(B)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
5.JFrame中內(nèi)容窗格缺省的布局管理器是(B)
A.FlowLayoutB.BordcrLayoutC.GridLayoutD.CardLayout
6.監(jiān)聽事件和處理事件(B)
A.都由Listener完成B.都由相應(yīng)事件Listener處注冊的構(gòu)件完成
C.由Listener和構(gòu)件分別完成D.由Lislener和窗口分別完成
7.在下列事件處理機制中不是機制中的角色的是(A)
A.事件B.事件源C.事件接口D.事件處理者
A.當(dāng)有事件發(fā)生時,應(yīng)該使用this監(jiān)聽器
8.ciddActionListener(this)方法中的this參數(shù)表示的意思是(B)
&街曲事伸傀施用其他事他用this監(jiān)聽器B.(his對象類會處理此事件
90.下列關(guān)于Component的方法中,錯誤的是(A)
(tot南能優(yōu)nT其他事件D.只是一種形式
11.下列關(guān)于Component的方法中,錯誤的是(A)
A.getName()用于獲得組件的名字B.getSize()用于獲得組件的大小
C.setColor()用于設(shè)置前景顏色D.setVisible()設(shè)置組件是否可
10.當(dāng)窗口關(guān)閉時,會觸發(fā)的事件是(C)
D.Mous^氏翅胞啤陛題ItemEventC.WindowEvent
I.AWT的用戶界加組件庫被更穩(wěn)定、通用、靈活的庫取代,該庫稱為swing.
2.布局管理器用于安排容器上的GUI組件。
3.設(shè)置容器布局管理器的方法是selLayoulO0
4.當(dāng)釋放鼠標(biāo)按鍵時,將產(chǎn)生mouseRelease事件。
5.Java為那些聲明了多個方法的Listener接口提供了一個對應(yīng)的固諼,在該類中實現(xiàn)了
對應(yīng)接I1的所有方法。
6.ActionEvent事件的監(jiān)聽接II是ActionListener,注冊方法名是addActionListener(),事
件處理方法名是_DublicvoidactionDerfonned,。
7.圖形用戶界面通過』住響應(yīng)用戶和程序的交互,產(chǎn)生事件的組件稱為一坐住遮。
8.Java的Swing包中定義菜單的類是JMenu三、編程題
1.設(shè)計如圖所示樣式的圖形用戶界面(不要求實現(xiàn)功能)。
當(dāng)前時間:廠時冒廠分懺"秒I鬧鐘時間:時~分「1秒
鬧鐘設(shè)置王I蘭Iimportjavax.swing.*;cIassDemopubIicDemoO
JLabelbl=newJLabclC當(dāng)前時間:〃);
JLabclb2=newJLabelC時”);
JLabelb3=newJLabel("分”);
JLabelb4=newJLabel(“秒”);
JLabelb5二new比abelC鬧鐘時間:”);
JLabclb6=newjGhel(〃時〃):
JLabelb7=newJLabelC分“);b8=new
JLabelJLabelC秒“);b9=newJLabel("
JLabel鬧鐘設(shè)置”).jTcxtFicld("8",3);
JTextFicl?Tcxt^iclS^,57,,,3);JTextField(,,59,\
JTexlFi叫);j忌牌fd(3);JTextField(3);
JText!例1rex臃瞰);
JTextFieldt4=ne\v
J'lexthieldt5=ne\v
@同祖講出也也受g陶&圖6映后0KAm此且岫^^單?羽能觸理g創(chuàng)隼軸由爆玄邸闞蝴i仲#i說之頌'rame
}
publicstaticvoidinain(Stringarg[])(newDemo();
)
)
2.編寫一個將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個文木框愉入華氏溫度,另一個文
本框顯示轉(zhuǎn)換后的攝氏溫度,一個按鈕完成溫度的轉(zhuǎn)換。使用下面的公式進(jìn)行溫度轉(zhuǎn)換:攝氏溫
度=5/9x(華氏溫度-32)。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classDemoimplementsAction!.istener
(JLabclbl,b2;
TJcxtFicId
publicDemo()
(bl=newJLabelC華氏溫度:;b2=newJLabelC攝氏溫度:");tl=newJ(6);
t2=newJTextField(6)JButtonbtl=ncwJButlon(/轉(zhuǎn)換”);JFramewin=new
JFrameO;win.setLayout(newFlowLayoutO);
win.add(bl);win.add(tl);win.add(b2);win.add(t2);
win.add(bll);btl.addActionListcncr(this);win.sctSize(160,120);win.setVisiblc(truc);
)
publicvoidactionPerformed(Ac(ionEven(e)
{t2.setText(""+5.0/9*(Float.parseFloat(t1.getText())-32));
)
publicstaticvoidmain(Slringarg[])
{newDemoO;
)
)
3,設(shè)計一個界面如圖。當(dāng)點擊“確認(rèn)”按鈕后,使“開始考試”按鈕可用,并使“學(xué)號”、
“姓名”后的文本框及“確認(rèn)”按鈕不可用。點擊“開始考試”按鈕后,使“下一題”按鈕可用,
同時設(shè)置“開始考試”按鈕不可用。
.c,s考汰系
importjava,awl.*;
importjava.awt.event.*;
importjavax.swing.*;
classTestPanelextendsJPanelimplementsActionListener
(JButtonstartButton;JLabeltimeLabel;JTextAreaquestionArea;
JRadioButtonradioButton口二newJRadioButton[5]:〃五個單選按鈕,目的是設(shè)置前四個答
案選項都不選中,而第五個選項選中,但第五個按鈕設(shè)置為不可見ButtonGroup
buttonGroup二newButtonGroupO;JButtonanswerBLitton;JButtonqucstionButton;
JButtonscorcButton;publicTestPaine1()
(sctl.ciyout(newBorderUiyout());JPanelnorthPcinel=newJPaneK);northPanel.
setLayout(newGridLayout(2,1));startButton=newJButton(〃開始考試“);startButtDn.
addActionListener(this):timeLabel=newJLabelC考試剩余時間”);northPanel.
add(startButton);northPanel.add(timcLabel);
add(northPanel,BorderLayout.NORTH);questionArea=newJTextArea(30,10);
questionArea.setLineWrap(true);questionArea.setWrapSty1eWord(true);questionArea.
setFont(newFontC幼圓〃,Font.PLAIN,16));intvScroll=ScrolIPaneConstants.
VERTICALSCROLLBARASNEEDED:inthScrolI=ScroIlPaneCons(ants.
HORlZOXrAL_SCROLLBAR_NEVER;add(new
JScrollPane(questionArea,vScroll,hScroll),BorderLayout.CENTER);JPanelsouthPancl=ncw
JPanel();JPanelradioPanel=newJPanel();〃放5個單選按鈕的面板Strings[]=
〃,〃〃};for(inti=0;i<radioButton.length;i++)(
radioBultonli]=ne\vJRadioButton(sli],false);buttonGroup.add(radioButton[i]);
radioPaneLaddiradioButton[i]);}
radioButton[radioButton.length-1].setVisible(false);單選按鈕不可見〃第五個
answerButton=newJButton(,,提交答案”):answerButton.setEnabled(false);
answcrButton.addActionListcncr(this);qucstionButton=ncwJButton('?卜一題”);qucstionButton.
setEnabled(false);questionButton.addActionListener(this);scoreButton二newJButton("成績〃);
scoreButton.setEnabled(false);scoreButlon.addActionListener(this);southPcinel.add(radioPanel);
southPanel.add(answerButton);southPane].add(questionButton);southPanel.add(scoieButton);add
(southPcinel,BorderLayout.SOUTH);}
publicvoidactionPerfdrmed(ActionEventc){if(e.getSource()==startButton)(
questionButton.setEnabled(true):
startBullon.setEnabled(false);
)}
classMyFrameextendsJFramcimplementsActionListencr
(
JBultonstartButton;
JLabelxh,xm;
JTcxtFieldxhl,xml;
JButtonok;TestPanellp=newTestPanelO:
MyFrame()
(
JPanclp=newJPanclO;xh=newJLabel(*學(xué)號:");xm=ncwJLabelC姓名:");xhl=new
JTcxtFicld(lO):xml=newJTextField(10):ok=newJButtonC確認(rèn)”):p.add(xh):p.add(xhl):
p.add(xm);p.add(xml);p.add(ok);add(p,BorderLayout.NORTH);add(tp);ok.
addActionListener(this);setSize(400,300);setVisible(true);
JpublicvoidactionPerformed(Ac(ionEven(e)(tp.startButton.setEnabled(true);
xhl.setEnabled(false);xml.setEnabledJ'alse);ok.setEnabled(false);
}publicstaticvoidmain(Stringar[])(newMyFrameO;}
)項目6—、選擇題
1.以下類中,具有繪圖能力的類是(B)。
A)ImageB)GraphicsC)FontD)Color
2.Graphics類中提供的繪圖方法分為兩類:一類是繪制圖形,另一類是繪制(B)。
A)屏幕B)文本C)顏色D)圖像
3.下列方法中不屬于Graphics類的顯示文本的方法是(D)。
A)drawBytesB)drawCharsC)drawStringD)drawLine
4.下面的程序?qū)崿F(xiàn)了在窗口中繪制一個以(70,70)為圓心,50為半徑,邊框是綠色的圓,圓
心是紅色的。應(yīng)填入的語句行是(B)。
classexamextendsFrame
(
publicvoi(1paint(Graphicsg)
(g.setColor(Color,green);g.drawOval(20,20,100,100);g.setColor(Color,red);
1
1
A)drawRect(70,70,I,l);B)g.drawRect(70,70,1,1);
C)g.drawLine(70,70,L1);D)g.drawOval(70,70,70,70);
5.在窗體的坐標(biāo)(50,50)處以紅色顯示“紅色文字”,填入的正確語句是(C)。
classexamextendsFrame
(publicvoidpaint(Graphicsg)
g.drawString(?紅色文字”,50,50);
)
A)g.se(Color(Color.Red);B)se(Color(Color,red);
C)g.setColor(Color,red);D)setcolor(Color,red);
6.下列方法中不能完成畫直線的方法是(D)。
A)drawPolylineB)drawRectC)drawLineD)drawChars二、填空題
1.paint。方法的參數(shù)是Graphics類的實例。
2.drawRect(intxl.intyl,intx2,inty2)中,x2和y2分別代表矩形的寬度、高度b
3.如果在(60,80)處畫一個點,通過drawOva1方法實現(xiàn),則該方法中的參數(shù)應(yīng)為(60.80.1.1)。
4.如果畫圓角矩形,drawRect方法中的參數(shù)應(yīng)為。個,其中后兩個參數(shù)的作用是o
5.如果設(shè)定輸出在某個組件上的文本的字體,用的方法是setFontO.該方法中的參數(shù)應(yīng)是_
Font類的對象。
6.以下程序輸出的是。
classexamextendsFrame
(publicvoidpaint(Graphicsg)
{g.setColor(Color,green);g.drawRect(20,20,1,30);)
)三、編程題
1.編寫程序,藍(lán)色輸出26個大寫字母,隨機彩色輸出26個小寫字母。
importjava.awt.*;publicclassExercise61extendsFrame(
publicExercise4_3_l()
(setSize(600,200);setVisibIe(true);
i
publicvoidpaint(Graphicsg)
(chars[]=newchar(26];inti;g.setColor(Co!or.blue);
for(i=0;i<26;i++)s[i]=(char)('A'+i);
classPrac2
publicstaticvoidmain(Stringargs[])
System,out.printing*");
System,out.printing****");
System,out.printing1*****");?02-、選擇題
1.數(shù)組中可以包含什么類型的元素?(D)
A.int型B.String型C.數(shù)組D.以上都可以
A.Arr.length()B.Arr.length
2.Java中定義數(shù)組名為An■,下面哪項可以得到數(shù)組元素的個數(shù)?(B)
A.Arr.lcngth()B.Arr.lengthC.Arr(xyz)D.Arr(xyz)
3.下面哪條語句定義了3個元素的數(shù)組?(A)
A.int[]a={20,30,40);
B.inta[]=newint(3);
C.int[3]array;
D.int[]arr;
4.下面的代碼段中,執(zhí)行之后i和j的值是(B)。
inti=10;
intj;
j=i++;
A.10,10B.II,IOC.10,HI).11,11-編程
1.試編與一個程序,輸入三條邊長值,并判斷這三條邊長能小能構(gòu)成三角形,如果能,能構(gòu)
成什么樣的三角形(一般、等邊、等腰)。
importjava.util.*;
classPracticcl{
publicstaticvoidmainfStringargs[])(Scanners=ncwScanncr(Systcm.in);int
a,b,c;a=s.nextlnt();b=s.nextlnt();
c=s.nextlnt();if(a+b>c&&a+c>b&&b+c>a)if(a==b&&a=c)System.out.print("構(gòu)成的三角
形為等邊三角形?!?;elseif(a==b||a==c||b==c)
Systcm.out.print("構(gòu)成的ZS角形為等腰三角形。");else
for(i=0;i<26;i4-+)g.drawChars(s,i,l,20+i*20,50);for(i=0;i<26;i++)s[i]=(char)(s[i]+32);
floatx,y,z;for(i=0;i<26;i++){x=(float)Math.random();y=(float)Math.random();
z=(noat)Math.random();Colorc=new
Color(x,y,z);g.setColor(c);g.drawChars(s,i,l,20+i*20,100);
}
)
publicstaticvoidmain(String[]args)
{newExcrcise4_3_l();
))
2.定義顯示字符數(shù)組的方法drawChars(),將字符串中第1、3、5體中,要…個字符顯示在窗
求顯示字體為:宋體、斜體、大小30點。
importjava.awt.*;publicclassExcrcise62extendsFramc(
Strings(r=,'abcdefgh";
charc[]=str.toCharAnay();
publicExcrcisc4_3_2()
(setSize(300,200);setVisible(true);
i
publicvoidpaint(Graphicsg)
{inti;Fontf;f=newFont(“宋體〃,F(xiàn)ont.ITALIC,30);
g.sctFont(f);for(i=0;i<c.Icngth;i=i+2)g.drawChars(c,i,l,10+i*20,60);
]
publicstaticvoidmain(Stringsargs)ncwExcrcise4_3_2();項目7
一、選擇題
1.下列數(shù)據(jù)流中,屬于輸入流的是(B)。
A)從內(nèi)存流向硬盤的數(shù)據(jù)流B)從鍵盤流向內(nèi)存的數(shù)據(jù)流
C)從鍵盤流向顯示器的數(shù)據(jù)流D)從網(wǎng)絡(luò)流向顯示器的數(shù)據(jù)流
2.Java語言中提供輸入輸出流的包是(I))。
A)java,sqIB)java,util
C)java,mathD)java,io
3.不是沁包中的接口的一項是(A)o
A)DatalnputR)DataOutput
C)DataInputStreamD)Objeclinput
4.下列流中那一個使用了緩沖區(qū)技術(shù)?(A)。
A)BufferedOutputStreamB)FilelnputStream
C)DataOutputS(reamD)FileReader
5.下列說法中,錯誤的是(B)。
A)FileReader類提供將字節(jié)轉(zhuǎn)換為Unicode字符的方法
B)InputStrcamReader提供將字節(jié)轉(zhuǎn)化為Unicode字符的方法
C)FileReader對象可以作為BufferedReader類的構(gòu)造方法的參數(shù)
I))[nputStreamReader對象可以作為BufferedReader類的構(gòu)造方法的參數(shù)
6.下列哪個方法返回的是文件的絕對路徑?(B)。
A)getCanonicalPath()B)getAbsokitePath()
C)getCanonicalFile()D)getAbsoluteFile
7.下列程序建立一個myFileldat文件,并且允許按照不同的數(shù)據(jù)類型向里面寫入數(shù)據(jù),選
擇正確的一項填入程序中的橫線處9)0
importjava.io.*;
publicclassTesti(
publicstaticvoidmain(Stringa[])(try(FileOu(putSlreamfos=new
FileO.itputStream(',myFilel.daf,);}
catch(Exccptione)(e.printStrace();)
}
}
A)OutpulStreamos二newOuiputStream(fos);
B)DataOutputStrcamdos=ncwDataOutputStrcam();
C)Da(aOu(putStreamdos=ncwDataOutputStream(fos):
D)FilcOutputStrcamfos=ncwFilcOutputStrcam(fos);
8.下列說法錯誤的是(D)。
A)Java的標(biāo)準(zhǔn)輸入對象為System,in
B)打開一個文件時不可能產(chǎn)生lOException
C)使用File對象可以判斷一個文件是否存在
D)使用File對象可以判斷一個目錄是否存在二、填空題
1.按照流的方向來分,I/O流包括輸入流和輸出流。
2.流是一個流動的數(shù)據(jù)緩沖區(qū),數(shù)據(jù)從數(shù)據(jù)是流向數(shù)據(jù)口數(shù)地°
3.FilelnputStream實現(xiàn)對磁盤文件的讀取操作,在讀雙字符的時候,它一般與和
InDutSlreamReaderBufferedReader一起使用。
4.向DaiaOulpulSlream對象dos的當(dāng)前位置寫入一個保存在變量d中的浮點數(shù)的方法是dos,
iteFloat(d)。
5.使用BufferedOutputStreani輸出時,數(shù)據(jù)首先寫入緩沖區(qū),直到寫滿才將數(shù)據(jù)寫入輸出
Mo
三、編程題
1.程序在運行過程中產(chǎn)生數(shù)組形式的數(shù)據(jù)如下:{2.23,4.67,6.54,2.22,
1.45,64},編程將數(shù)據(jù)存儲到文件中去,以備后面再讀入進(jìn)行處理。imporljava.io.*;
classPracticel(publicstaticvoidmain(Stringa||){try(
FilcOutputStrcamfos=newFileOutputStrcam(ze:\\l\\a.txt");
DataOutputStreaindos:newDataOutputStream(fos);
doublearr[]={2.23,4.67,6.54,2.22,1.45,5.64);
for(inti=0;i<arr.length;i++)
dos.writeDouble(arr[i]);
)
catch(Exceptionc)(
e.printStackTrace();
)
)
}
2.利用輸入輸出流編程實現(xiàn)籽文件a2.ixl中的文本內(nèi)容以可打的形式復(fù)制到文件a3.(xl
中去。
importjava.io.*;
importjava.io.*;
classPractice2
{publicstaticvoidmain(Stringargsl|)throvvsiOException(try(
FileReaderfr=newFileReader("a2.txt");Fi1eWriterfw=newFi1eWriter(-2a3.txtw);int
n;
while((n=fr.read())!=-l)(fw.write(n);)fr.close();
fw.close0;}caich(Excepiionc)(}}
)項目8—、選擇題
1.JDBC是面向(B)的。
A.過程B.對象
C.用戶D.應(yīng)用
2.JDBCAPI主要都定義在下列哪個包中?(A)
A.java,sqlB.java,io
C.java,awtD.java,util
3.若要查詢數(shù)據(jù)庫的信息可以使用以下哪個方法?(D)
A.Connection類的getMetaDalaO方法B.DriverManager類的gctConncction()方法
C.Connexion類的createStaiemenl方法D.SlaiemenL類的ExecuteQuery()方法
4.Stalement類的execuleQuery()方法返I用的數(shù)據(jù)類型是(D)。
A.Statement類的對象B.Connection類的對象
C.DcitcibaseMetaDat類的對象D.ResuItSet類的對象
5.下列哪項不是gelConneclion()方法的參數(shù)?(C)
A.數(shù)據(jù)庫用戶名B.數(shù)據(jù)庫的訪問密碼
C.JDBC驅(qū)動器的版本D.連接數(shù)據(jù)庫的URL二、填空題
1.Java使用JDBC作為數(shù)據(jù)庫的訪問機制。
2.支持JDBC的數(shù)據(jù)庫很好的實現(xiàn)了跨數(shù)據(jù)庫平臺的無去性。
3.JDBC驅(qū)動程序負(fù)責(zé)將應(yīng)用程序中基于類和接口的Java方法轉(zhuǎn)換為多種關(guān)系數(shù)據(jù)庫能
夠理解的命令。
4.查詢數(shù)據(jù)庫的標(biāo)準(zhǔn)步驟是:加載驅(qū)動程序類,定義連接的URL.生成連接對象,建立
Statement對象,執(zhí)行查詢,處理結(jié)果,關(guān)閉連接。
5.指向數(shù)據(jù)庫的URL中一般包含:班溟和數(shù)據(jù)源o
7.JDBCDriverManager是連接數(shù)據(jù)庫中的一個負(fù)責(zé)管理JDBC驅(qū)動程序的個塊。
三、編程題
I.查詢Sludeni數(shù)據(jù)庫中的學(xué)生信息表Slulnfo,按年齡從低到高順序愉出各行數(shù)據(jù).
importjava,sql.*;
classQueryDemo(publicstaticvoidmain(String[]args)throwsException(Connectioncon二
null;
Class.forName("com.mysql.jdbe.Driver");〃加載MySQL驅(qū)動類String
connectionURL--jdbc:mysql://l27.0.0.l:3306/Student";con=DriverManager.
getConnection(connectionURL,"root",“123”);Statementstat=con.createStatement
();〃建立執(zhí)行sql語句的容器Stringquery=〃select*fromStulnfoorderby年
齡〃;
Resul(Setrs=sta(.executeQuery(query);〃執(zhí)行查詢數(shù)據(jù)庫的語句System,oul.
printin("Stulnfo用戶表中的內(nèi)容”);
System,out.printin(,,學(xué)號\t\t姓名\t性別\t年齡\t身高\t家庭住址〃);while(rs.
next())(
intxh=rs.getlnt產(chǎn)學(xué)號”);
Stringxm=rs.getString-姓名");
Stringxb=rs.getSlring("性別〃);
intnl=rs.getlnt(“年齡");floatsg=rs.getFloat(*身高”);
Stringzhuzhi=rs.getString("家庭住址”);
System,out.printin(xh+”\t”+xm+”\T'+xb+”\t”+nl+”\t"+sg+“\t”
+zhuzhi);)
2.對Student數(shù)據(jù)庫中的學(xué)生信息表Stulnfo插入數(shù)據(jù)行,插入如下記錄:(學(xué)號:20060307,
姓名:吳祥雷,性別:男,年齡:16,身高:1.73,家庭住址:王集鎮(zhèn)大王村,電話:再以表格形
式輸出表中數(shù)據(jù)。
importjava.sql.*;importjava.awt.*:importjavax.swing.*;importjava.util.*;
classPractice?extendsJFrame)
publicstaticfinalStringDBDRIVER="com.mysql.jdbc.Driver";
publicstaticfinalStringDBURL=,jdhc:mysql://:3306/Studcnt";
publicstaticfinalStringDBUSER="root";
publicstaticfinalStringDBPASS="123";
privateResultSetresultSet;
privateResultSetMetaDatarsmd:
privateJButtonsubmilQuery;
privateJTabletable;
VectorcolumnHeads;
VectorcuirentRowzVectorrows;
publicstaticvoidmain(Stringargs。)throwsException!〃所有的異常拋;Connectionconn=
null;//數(shù)據(jù)庫連接Statementstmt=null;//數(shù)據(jù)庫操作Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);stmt=
conn.createStatemenlO;//實例化Statement對象intid=20060307;Stringname=〃吳祥
云田”?,
Stringsex="男";intage=167;floatheight=1.7368f;Stringadress="王集鎮(zhèn)大王村”;
Stringsql="inscrtintoStulnfovalucs(',+id+"z',+name+,,7"
+sex+T'+age+”,''+height+”,”』adress+〈'”+phone+”')“;
stmt.executeUpdate(sql);stmt.close();conn.close();
Practicc2p=ncwPracticc2();p.showData();
)
publicvoidshowData()
(
try(Class.forName("com.mysql.jdbc.Driver");"加載MYSQLJDBC驅(qū)動程序Stringconstr=
"jdbc:mysql://localhost:3306/Student";Connec(ionconnection=
DriverManager.getConnectionfconstr/'root"/'123");columnHeacs=newVector();rows=new
Vector();Stringquery="SELECT*FROMstuinfo";
Statementstatement=connection.createStatement();resultSet=
statemcnt.executeQucryCquery);rsmd=resultSct.getMctaDataf);for(inti=1;i<=
rsmd.gctColumnCountO;iii)columnlleads.addElcmcnt(rsmd.gctColumnNamc(i));
while(resuItSet.nextO)(
currentRow=newVector();for(inti=1;i<=rsnid.getColumnCount();++i)
currentRow.addElement(resultSet.getString(i));rows.addElement(currentRow);)
)catch(Exceptionsqlex){sqlex.printStackTrace();)
tabic=newJTablc(rows,columnHeads);
JScrollPanescroller=newJScrollPaneftable);
add(scroller);
setSize(500z200);
setVisible(true);
}}項目9
一、選擇題
1.一個java程序運行后,在系統(tǒng)中作為一個(B)。
A)線程B)進(jìn)程
C)進(jìn)程或線程D)不可預(yù)知
2.設(shè)已編好了一個線程類MyThroad,要在main()中啟動該線程,需使用的方法是(B)。
A)newMyThread
B)MyThreadmyThread=newMyThread();myThread.start。;
C)MyThreadmyThread=newMyThrcad();myThread.run():
D)newMyThread.start();
3.處于激活狀態(tài)的線程可■能不是當(dāng)前正在執(zhí)行的線程,原因是(B)。
A)為當(dāng)前唯一運行的線程B)線程被掛起
。線程被繼續(xù)執(zhí)行D)通知線程某些條件二、填空題
1.線程的創(chuàng)建方式是繼承T是cad類和。
2.線程生命周期的五種狀態(tài)為:創(chuàng)建、可運行運行中、瓜塞、和死亡o
3.一個線程對象的具體操作是由runO方法的內(nèi)容確定的,但是Thread類的該方法是空的,
其中沒有內(nèi)容,所以用戶程序要么派生一個Thread的子類并在子類里重新定義此方法,要么使-
個類實現(xiàn)Runnable接口并書寫該方法的方法體。
4.當(dāng)一個線程睡眠時,sleep。方法不消耗CEU時間。
三、編程題
1.設(shè)計4個線程對象,兩個線程執(zhí)行減操作,兩個線程執(zhí)行和操作。
publicclassThreadiest1{
privateintj;
publicstaticvoidmain(Stringargs[]){
ThreadTestItt=newThreadTestl();
Incinc=u.iicwInc();
Decdcc=t(.newDec();
foriinti=0;iv2;i++){
Threadt=newThread(inc);
LstartO;
t=ncwThrcad(dcc);
t.start();
);
privatesynchronizedvoidinc(){
j++;
Systcni.out.piintln(Thrcad.currcntThicad().gctNanic()+"-inc:"+j);
privatesynchronizedvoiddcc(){
j-;
System.out.println(Thrcad.currcntThrcad().gctNameO+''-dcc:"+j);
)
classIncimplementsRunnable{
publicvoidrun()(
for(in(i=0;i<IOO;i++)(
inc();classDecimplementsRunnable(publicvoidrun(){foninti=0;i<100;i++)(dec();
1
)
2.設(shè)計一個生產(chǎn)電腦和搬運電腦類,要求生產(chǎn)一臺電腦就搬走一臺電腦,如果沒有新的電腦
生產(chǎn)出來,則搬運工要等待新電腦產(chǎn)出;如果生產(chǎn)出的電腦沒有搬走,則要等待電腦搬走之后再
生產(chǎn),并統(tǒng)計出生產(chǎn)的電腦的數(shù)量,
classInfo{〃定義信息類privateStringname="生產(chǎn)者”;//定義name屬性privateStringcontent
="制造機器”;〃定義content屬性privatebooleanflag=false;//設(shè)置標(biāo)志位
publicsynchronizedvoidsct(Stringname,String
content){if(!flag)(try{super.wait();)catch(InterruptedExceptionc){
e.priniStackTrace();)}this.setNanie(name);//設(shè)置名稱
try{Thread.sleep(300);}catch(In(crruptcdExccptionc){e.printS(ackTrace();}
this.setConteni(contenl);"設(shè)置內(nèi)容flag=false;〃改變標(biāo)志位,表示可以取走
supcr.notifyO;publicsynchronizedvoidget(){iftflag){
lry{super.wait();)catch(IntcrruptedExceptionc){c.printStackTracc();}
}try{Thread.sIeep(300);}catch(In(erruptedExceplione){
e.printStackTrace();
}Systeni.out.println(this.getName()+"—>"+this.getContcntO);
flag=irue;〃改變標(biāo)志位,表示可以生產(chǎn)supcr.notifyO;}publicvoid
setName(Stringname)(=name;)
publicvoidsctContcnt(Stringcontent){this.content=content;(publicString
getName(){return;}
publicStringgetContent()(returnthis.content;}1classProducerimplements
Runnable{//通過Runnable實現(xiàn)多線程privateInfoinfo=null;//保存Info
引用
publicProducedInfoinfo)(=info;}publicvoidrun(){booleanflag=false;//
定義標(biāo)記位
for(inti=0;iv50;i++){if(flag)(.setC生產(chǎn)者",“制造機器");//設(shè)置名稱
flag=false;)else{
消費者“,“取走機器”);〃設(shè)置名稱flag=true;classConsumer
implementsRunnable{privateInfoinfb=null;publicConsumedInfb
infd)(=info;)
publicvoidrun(){for(inti=0;i<50;i++){.gei(
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇南京市建鄴區(qū)教育局所屬學(xué)校招聘教師27人考試參考題庫及答案解析
- 2026榆林子洲縣裴家灣中心衛(wèi)生院招聘考試備考題庫及答案解析
- 中國疾病預(yù)防控制中心教育培訓(xùn)處(研究生院)招聘合同制1人考試備考題庫及答案解析
- 2026華中師范大學(xué)幼兒園(非事業(yè)編B類崗)招聘1人(湖北)考試參考題庫及答案解析
- 吉安市市直機關(guān)事業(yè)單位編外工作人員招聘補充中招聘人數(shù)核減考試參考試題及答案解析
- 2026中國中化審計中心招聘考試備考題庫及答案解析
- 2026云南玉溪鴻康醫(yī)院有限責(zé)任公司見習(xí)人員招募20人考試備考題庫及答案解析
- 2026廣西東興國家重點開發(fā)開放試驗區(qū)管理委員會招聘考試備考題庫及答案解析
- 2026年鄭州市法律援助基金會招聘工作人員考試備考題庫及答案解析
- 2026年湖南師大附中雙語實驗學(xué)校(南校區(qū))教師招聘備考題庫及一套完整答案詳解
- 2026長治日報社工作人員招聘勞務(wù)派遣人員5人備考題庫附答案
- 四省天一聯(lián)考2025-2026學(xué)年高三上學(xué)期1月月考物理試題
- 沈陽職業(yè)技術(shù)學(xué)院單招《職業(yè)技能測試》參考試題庫(含答案)
- 防職場性騷擾培訓(xùn)課件
- 設(shè)備維護與管理培訓(xùn)課件
- 印刷排版人員配置方案
- 放射科質(zhì)控管理制度
- 《美容皮膚學(xué)》考試復(fù)習(xí)題庫(含答案)
- 01管道儀表流程圖中常用圖例符號
- 基本養(yǎng)老保險參保繳費證明
- 繼電保護課后習(xí)題答案第二版-張保會-尹項根
評論
0/150
提交評論