新聞中心
JAVA筆試題(與構(gòu)造函數(shù)、靜態(tài)變量有關(guān))
1.amethod()方法被重寫
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了黃平免費建站歡迎大家使用!
2.getMyClass()中輸出一次,main()中再輸出一次
求java考題,筆試題
Java面向?qū)ο?/p>
1. super()與this()的區(qū)別?
This():當(dāng)前類的對象,super父類對象。
Super():在子類訪問父類的成員和行為,必須受類繼承規(guī)則的約束
而this他代表當(dāng)前對象,當(dāng)然所有的資源都可以訪問.
在構(gòu)造函數(shù)中,如果第一行沒有寫super(),編譯器會自動插入.但是如果父類沒有不帶參數(shù)的構(gòu)造函數(shù),或這個函數(shù)被私有化了(用private修飾).此時你必須加入對父類的實例化構(gòu)造.而this就沒有這個要求,因為它本身就進行實例化的構(gòu)造.
而在方法中super和this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時的區(qū)別?
Public:不同包、 同一包、 類內(nèi)都可用
Private: 類內(nèi)
Protected:不同包的子類、同一包、 類內(nèi)都可用
不寫時: 同一包內(nèi)、類內(nèi)
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i 5; i++) {
for(int j = 5; j i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委托機制和垃圾回收機制
Java事件委托機制的概念,一個源產(chǎn)生一個事件并將它送到一個或多個監(jiān)聽器那里。在這種方案中,監(jiān)聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監(jiān)聽器將處理這個事件,然后返回。
垃圾回收機制垃圾收集是將分配給對象但不再使用的內(nèi)存回收或釋放的過程。如果一個對象沒有指向它的引用或者其賦值為null,則次對象適合進行垃圾回收
5. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
用break; return 方法。
6. 什么是java序列化,如何實現(xiàn)java序列化?(寫一個實例)
序列化:處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。
序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
7. 一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?
可以。如果這個類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)
快速排序的偽代碼。
9. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
重寫Override,子類覆蓋父類的方法,將子類傳與父類的引用調(diào)用的還是子類的方法。
重載Overloading 一個類多個方法,名稱相同,參數(shù)個數(shù)類型不同。
兩者都是Java多態(tài)性的不同表現(xiàn)。
Overloaded的方法是可以改變返回值的類型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+”88”+8+8);
}
} 168888
(方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型。)
10. Final類有什么特點?
屬性常量 方法不可以overridding 類不可以繼承
11. 繼承時候類的執(zhí)行順序問題,一般都是選擇題,問你將會打印出什么?
答:父類:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結(jié)果:
C:java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 內(nèi)部類的實現(xiàn)方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
輸出結(jié)果:
C:java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA實現(xiàn)一種排序,JAVA類實現(xiàn)序列化的方法(二種)?
14. 如在COLLECTION框架中,實現(xiàn)比較要實現(xiàn)什么樣的接口?
15. 用插入法進行排序代碼如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;inum ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;ial.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;jMaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;ial.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA類實現(xiàn)序例化的方法是實現(xiàn)java.io.Serializable接口
Collection框架中實現(xiàn)比較要實現(xiàn)Comparable 接口和 Comparator 接口
16. 編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個,如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(knum){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java編程,打印昨天的當(dāng)前時刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件讀寫,實現(xiàn)一個計數(shù)器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是編碼的原因,如果直接寫入int的話,將出現(xiàn)java編碼和windows編碼的混亂,因此此處寫入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的運行結(jié)果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b
ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b2b
}
}注:類的static 代碼段,可以看作是類首次加載(被虛擬機加載)執(zhí)行的代碼,而對于類的加載,首先要執(zhí)行其基類的構(gòu)造,再執(zhí)行其本身的構(gòu)造
18、抽象類和接口的區(qū)別?
(1)接口可以被多重implements,抽象類只能被單一extends(2)接口只有定義,抽象類可以有定義和實現(xiàn)(3)接口的字段定義默認為:publicstatic final, 抽象類字段默認是"friendly"(本包可見)
當(dāng)功能需要累積時用抽象類,不需要累積時用接口。
19、什么是類的反射機制?
通過類(Class對象),可以得出當(dāng)前類的fields、method、construtor、interface、superClass、modified等,同是可以通過類實例化一個實例、設(shè)置屬性、喚醒方法。Spring中一切都是返射、struts、hibernate都是通過類的返射進行開發(fā)的。
20、類的返射機制中的包及核心類?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三個過程是什么?
①對象.getClass()②類.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何喚起類中的一個方法?
①產(chǎn)生一個Class數(shù)組,說明方法的參數(shù)②通過Class對象及方法參數(shù)得到Method③通過method.invoke(實例,參數(shù)值數(shù)組)喚醒方法
23、如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
24、如何將數(shù)字轉(zhuǎn)換為字符?
1+”” 1.0+””
25、如何去小數(shù)點前兩位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小時分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得從1970年到現(xiàn)在的毫秒數(shù)
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何獲取某個日期是當(dāng)月的最后一天?
當(dāng)前日期加一天,若當(dāng)前日期與結(jié)果的月份不相同,就是最后一天。
取下一個月的第一天,下一個月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
}else{
System.out.println("不是取后一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期轉(zhuǎn)化為字符串
System.out.println(str);
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //將字符串轉(zhuǎn)化為日期
30、編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
應(yīng)該是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));
求java筆試,面試題,有答案的,在此謝過了,郵箱:chixinjd521@163.com
一、基礎(chǔ)知識填空題(2*20)
1. 面向?qū)ο笳Z言的三個典型特征是____、____、____。
2. java中數(shù)值型變量被聲明而未賦值時,是帶有缺省值的,boolean類型聲明的缺省值是____,float類型聲明時的缺省值是___.
3. String s = new String(“xyz”)創(chuàng)建了____個String Object.
4. JavaBean 的 scope(生命周期)一般可為四種類型:request,____,____,____.
class A {
void method1(){
System.out.println("method1() in class A");
}
void method2(){
System.out.println("method2() in class A");
}
}
class B extends A{
void method1(){
System.out.println("method1() in class B");
}
void method3(){
System.out.println("method2() in class B");
}
}
class C{
public static void main(String[] args) {
A a = new B();
a.method1(); //a _________
a.method2(); //b _________
}
}
當(dāng)運行class C后,請在注釋a/b處填寫輸出內(nèi)容.
6. int a=2; int v=++a + ++a * ++a;那么v = _______.
7.
class C {
public static void main(String[] args){
int i = 1;
int j=i++;
System.out.println("i="+i+",j="+j);
}
}
當(dāng)運行class C后,會輸入_________?
8. public class Test{
private void paraTest(int x, java.util.Vector y){
x+=5;
y.add("22");
System.out.println("x:"+x);
System.out.println("y:"+y.size());
}
public static void main(String[] args){
int a= 5;
java.util.Vector b = new java.util.Vector();
b.add("11");
System.out.println(a); //a ________.
System.out.println(b.size()); //b ________.
Test test = new Test();
test.paraTest(a, b);
System.out.println(a); //c ________.
System.out.println(b.size()); //d ________.
}
}
當(dāng)運行class Test后,請在注釋a,b,c處填寫輸出內(nèi)容.
9. Ajax無需刷新頁面便可向server端傳輸或讀寫數(shù)據(jù),這一點主要基于browser的一個對象實現(xiàn),這個對象是______.
10. XML的解析方法有兩種,包括______解析和______解析.
二、
1. java中的char類型對象可以儲存一個漢字.( )
2. 如果沒有顯式調(diào)用父類的構(gòu)造函數(shù),java總是調(diào)用父類的黑夜構(gòu)造函數(shù),即在執(zhí)行當(dāng)前類的構(gòu)造函數(shù)之前會先執(zhí)行默認的super()語句( )
3. 靜態(tài)方法中可以使用類中定義的非靜態(tài)成員變量.( )
4. java中只允許單一繼承, 可以在繼承的同時實現(xiàn)一個接口.( )
5. java中的boolean類型可以作為數(shù)字處理.( )
6. 局部變量(方法內(nèi)部變量)在使用時必須顯式初始化.( )
7. 如果一個對象實例為null, 則不會被instanceof其父類或接口的.( )
8. switch語句可以作用在char上,byte上,short上.( )
9. try{}里有一個return語句,那么跟在try后的finally{}里的代碼不會被執(zhí)行.( )
10. 一個一般的類(沒有父類),其初始化的順序是: static變量, static方法塊, 一般的實例變量, 構(gòu)造函數(shù).( )
三、綜合知識問答題(3*10)
1. 請描述java語言中類的修飾符, public, protected, private, 以及沒有修飾符時的作用范圍.
2. MVC是一種典型的架構(gòu)模式, Sturts是Mvc2的一種實現(xiàn)形式, 請簡述Struts的體系結(jié)構(gòu)和其主要組成部分的作用.
3. 簡單工廠模式和工廠方法模式均屬于設(shè)計模式之創(chuàng)建模式的一種, 請從其OO法則及實現(xiàn)原理等方面論述二者的實現(xiàn)過程(寫出示例代碼亦可).
4. JDK1.5導(dǎo)入了一些新的語言特性, 更有利于代碼的書寫, 如支持泛型, 自動拆/裝箱,增強的for循環(huán)等, 請結(jié)合代碼給出示例.
5. OO法則是OO語言書寫時需要遵從的約定俗成的規(guī)則, 如開放--關(guān)閉法則,請簡述你所知道的其它OO法則.
6. 給出冒泡排序的代碼實現(xiàn).
7. Overload和Override的區(qū)別?
8. 請試圖描述java語言中的GC(Gabage Collection)
9. 請傳述數(shù)據(jù)庫中的幾種表連接方式, 或代碼未例.
10. 請描述你對自己的職業(yè)規(guī)劃或者未來的職業(yè)發(fā)展目標(biāo).
誰能發(fā)個全國計算機考試的JAVA真題給我?筆試題
Java是一個很好的面向?qū)ο笳Z言,這是08年的試題。你可以在網(wǎng)上下更全套的試題練習(xí)。
全國2008年10月考試Java 語言程序設(shè)計(一)試題
課程代碼:04747
一、單項選擇題(本大題共10小題,每小題1分,共10分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.下述字符組合不能作為Java程序標(biāo)識符的是( )
A.Aa12 B.大x
C.y小 D.5x
2.以下程序代碼的輸出的結(jié)果是( )
int x=53;
System. out. println(1.0+x/2);
A.27.0 B.27.5
C.1.026 D.1.026.5
3.參照以下Java代碼,以下四個敘述中最確切的是( )
class A{
int x; static int y;
void fac(String s){Syatem. out. println(”字符串:”+s);}
}
A.x、y和s都是成員變量
B.x是實例變量、y是類變量、s是局部變量
C.x和y是實例變量、s是參數(shù)
D.x、y和s都是實例變量
4.需要分析字符串,并將字符串分解成可被獨立使用的單詞,可使用java. util包中的類是
( )
A.String B.StringBuffer
C.StringTokenizer D.stringTokenizer
5.要為程序的子窗口設(shè)定一個由字符串s指定的名字,可以采用的代碼是( )
A.JFrame(s) B.window(s)
C.new JFrame(s) D.super(s)
6.以下關(guān)于菜單的敘述中,正確的是( )
A.菜單分三級定義,最高一級的是菜單條,菜單條中放菜單,菜單中放菜單項
B.菜單分三級定義,最高一級的是菜單,菜單中放菜單條,菜單條中放菜單項
C.菜單分兩級定義,最高一級的是菜單,菜單中放菜單項
D.菜單分兩級定義,最高一級的是菜單條,菜單條中放菜單項
7.以下所述內(nèi)容全部是字型要素的是( )
A.字體、字形和大小 B.字體、風(fēng)格和字號
C.字形、風(fēng)格和字號 D.字形、顏色和字號
8.用Thread子類實現(xiàn)多線程的步驟順序是( )
A.聲明Thread類的子類,創(chuàng)建Thread子類的實例,讓線程調(diào)用start()方法
B.聲明Thread類的子類,在子類中重新定義run()方法,創(chuàng)建Thread子類的實例
C.創(chuàng)建Thread子類的實例,讓線程調(diào)用start()方法
D.聲明Thread類的子類,在子類中重新定義run()方法,創(chuàng)建Thread子類的實例,讓線程調(diào)用start()方法
9.為16位Unicode字符流提供讀和寫操作支持的類分別是( )
A.FileInputStream類和FileOutputStream類
B.InputStream類和OutputStream類
C.FileReader類和FileWriter類
D.File_Reader類和File_Writer類
10.能利用對象提供的方法獲得流對象和實現(xiàn)網(wǎng)絡(luò)連接的是( )
A.URLConnection對象 B.URL對象
C.InetAddress對象 D.TCP/IP對象
二、填空題(本大題共10小題,每小題2分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
11.一個小應(yīng)用程序必須定義成一個_________。
12.用條件運算符構(gòu)造一個表達式:goal等于10時,表達式的值為“對了!”,否則,表達式的值為“錯了!”。這個表達式是_________。
13.類是對一組相同對象的描述,類概括了同類對象的共有性質(zhì):_________。
14.設(shè)有數(shù)組a和b的定義如下:
int[]a={1,2,3};int[]b={4,5,6}
……
執(zhí)行以下代碼“a=b;”,除了完成賦值操作之外,引起系統(tǒng)額外要做的工作是_________。
15. _________布局使容器的多個組件擁有同一個顯示空間,某一時刻只能顯示一個組件。
16.Java語言為處理鼠標(biāo)事件提供兩個接口:_________接口和MouseMotionListener接口。
17.某個繪圖方法設(shè)置成“異或模式”繪圖,并用黃色作為異或模式設(shè)定的繪圖顏色。如果當(dāng)時背景色為紅色,并用紅色繪制線段,則線段的實際顏色是_________。
18.程序員用Java語言編寫多線程應(yīng)用程序,程序員能控制的關(guān)鍵性工作有兩個方面:一是編寫線程的_________方法;二是建立線程實例。
19.BufferedWriter類是提供緩沖式輸出的類。程序需要先創(chuàng)建_________對象,再利用這個對象創(chuàng)建BufferedWriter對象。
20.在Java語言中,客戶端使用的套接字類是_________。
三、簡答題(本大題共6小題,每小題3分,共18分)
21.請寫出表示條件“x=2與y=3有且只有一個成立”的Java表達式”。
22.如果類Student是類Person的子類,類Undergraduate是類Student的子類,請指出以下代碼行中哪些是不合法的。
Person p1=new Student();
Person p2=new Undergraduate();
Student s1=new Person();
Student s2=new Undergraduate();
Undergraduate ug1=new Person();
Undergraduate ug2=new Student();
Object ob=new Student();
23.請寫出程序處理文本框輸入結(jié)束事件(回車)添加監(jiān)視器的方法,以及監(jiān)視器類必須實現(xiàn)的接口方法。
24.請寫出一條語句,能夠繪制一條從點(20,30)開始,長為100像素的水平線段。設(shè)調(diào)用的對象是類型為Graphics的g。
25.某Java程序要使用文件輸入輸出流,請寫出該程序所需要的import語句。
26.JDBC是Java程序與數(shù)據(jù)庫連接的API,請寫出JDBC能做的三件事情。
四、程序填空題(本大題共5小題,每空2分,共20分)
27.方法int maxDigit(int n)的功能是找出十進制整數(shù)n各位中最大的一位數(shù)字。例如,n=23765,該方法的返回值是7。
static int maxDigit(int n){
int c=0,d;
while(n>0){
d=_______;
if(d>c) c=d;
n/=10;
}
________;
}
28.某程序的界面包含一個文本區(qū)text1、一個文本框text2和一個按鈕button。實現(xiàn)在文本區(qū)中輸入整數(shù)序列后,點擊按鈕,程序響應(yīng)按鈕事件,累計文本區(qū)輸入的整數(shù)序列,并將總和輸出在文本框中。這里給出的是其中相應(yīng)按鈕事件的方法。
public void actionPerformed(ActionEvent e){
int sum;
if(e.getSource()==button){
String s=text1.________;//獲取text1中的信息
StringTokenizer fenxi=new StringTokenizer(s,”,,,\n”);
int n=fenxi.countTokens();
double a[]=new double[n];
for(int i=0;i<n;i++){
String temp=fenxi.nextToken();
a[i]=Double.valueOf(temp).doubleValue();
}
sum=0;
for(int i=0;i<n;i++){
__________;
}
text2.setText(””+sum);//刷新顯示。
}
}
29.以下是生成菜單項對象,以及菜單項選擇事件處理方法的部分代碼。要求當(dāng)菜單項singingItem被選中時,在文本框text中輸出“唱歌菜單項被選中!”的字樣。
……
singingItem=new________(”唱歌”);//生成菜單項對象
……
public void actionPerformed(ActionEvent e){
if(e.getSource()==singingItem)
text.setText(e.________()+ ”菜單項被選中!”);
}
30.某小應(yīng)用程序?qū)崿F(xiàn)幻燈片放映。小應(yīng)用程序的init()方法將幻燈片讀入數(shù)組中存儲和注冊鼠標(biāo)監(jiān)視器。程序運行時,單擊鼠標(biāo),就順序變換放映幻燈片的序號。這里給出的是其中的paint()方法和mousePressed()方法。
final int number=30;//假定幻燈片有30張
int count=0;
Image[]pic=new Image[number];
public void paint(______gc){
if((pic[count])!=null)
gc.drawImage(pic[count],10,10,pic[count].getWidth(this),
pic[count].getHeight(this),this);
}
public void mousePressed(MouseEvent e){
count=(count+1)% number;//循環(huán)逐張顯示
__________;
}
31.以下定義的類shareDataManager用于管理多個線程共享數(shù)據(jù)data。一些線程要減少data,另一些線程要增加data。由于data不可以是負值,修改data的方法對這些線程來說不僅要互斥,還要同步。類提供一個方法modiData()供修改data的線程調(diào)用,該方法在data修改結(jié)束后,應(yīng)通知其它等待進入這個方法的線程。
class ShareDataManager{
int data=0;
________void modiData(int delta){
if(delta>=0){
data+=delta;
}else {
while(data <delta){
try{System.out.println(”發(fā)生等待!”);
wait();
}catch(InterruptedException e){ }
}
data-=delta;
}
_________;
}
ShareDataManager(int ititData){data=initData;}
}
五、程序分析題(本大題共5小題,每小題4分,共20分)
32.閱讀下列程序,請寫出該程序的輸出結(jié)果。
import java.applet.*;import java.awt.*;
class Point{
int x,y;
Point(int xx,int yy){ x=xx;y=yy;}
Point(Point p){x=p.x;y=p.y; }
void m(int dx,int dy){x+=dx;y+=dy;}
}
class Circle extends Point{
int r;
Circle(Point p, int rr){ super(p); r=rr; }
float c(){ return 3.14f*2.0f*r; }
float a(){ return 3.14f*r*r;}
}
public class sample extends Applet{
Circle yuan; Point d;
public void init() {d=new Point(2,5);yuan=new Circle(d,10);}
public void paint(Graphics g){
g.drawString(”yuan Circle”+(int)(yuan.c()*100.0)/100.0,5,20);
g.drawString(”yuan Area”+(int)(yuan.a()*100.0)/100.0,5,40);
}
}
33.閱讀下列程序,請寫出該程序的功能。
import java. util.*;
public class Class1{
public static void main(Srting args[]){
Date date1=new Date();
System. out. println (datel);
String t=datel.toString();
int endPos=t.indexOf(‘C’);
t=t.substring(11,endPos);
System. out println(t);
}
}
34.閱讀下列程序,請寫出該程序的功能。
import java.applet.*;import javax.swing.*;import java.awt.event.*;
public class Class l extends Applet implements ActionListener{
JTextField text1,text2;
public void init(){
text1=new JTextField(10); text2=new JTextField(10);
setSize(200,100); add(text1); add(text2);
text1.addActionListener(this);
}
public void actionPerformed(Action Event e){
long n;
if(e.getSource()==text1){
n=Long.parseLong(text1.getText());
text2.setText(String.valueOf(n*n));
}
}
}
35.閱讀以下程序,請寫出該程序的功能。
import javax.swing.*; import java.awt.*;import java.awt.event.*;
class MyScrollBar extends JscrollBar{
public MyScrollBar(int init, int len, int low, int high){
super(JScrollBar. HORIZONTAL, init,len,low,high);
}
}
class MyWindow extends JFrame implements AdjustmentListener{
private JTextField text;
MyWindow(String s){
super(s);
MyScrollBar myBar=new MyScrollBar(10,10,0,255);
Container con=this. getContentPane();
con. setLayout(new GridLayout(2,1));
this. setSize(200,100);
this. setLocation(100,100);
myBar.addAdjustmentListener(this);
text=new JTextField(””,20);
con. add(text);con.add(myBar);
this.setVisible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e){
MyScrollBar myBar=(MyScrollBar)e.getAdjustable();
text.setText(””+myBar.getValue());
}
}
public class Class1{
public static void main(String[]args){
MyWindow myWindow=new MyWindow(”text5_4”);
}
}
36.小應(yīng)用程序創(chuàng)建一個線程。例子使用容器類方法getGraphics()獲得Graphics對象,給線程作為畫筆使用。請寫出該程序中這個線程的工作內(nèi)容。
import java.applet.*;import java.awt.*;
public class Class1 extends java.applet.Applet implements Runnable{
Thread redBall;Graphics redPen;
int rx=0,ry=0;
public void init(){
setSize(250,200);
redBall =new Thread(this);
redPen=getGraphics();
redPen. setColor(Color.red);
setBackground(Color.gray);
}
public void start(){ redBall.start(); }
public void run(){
while(true){
if(Thread.currentThread()==redBall){
rx=(int)(80*Math.random());
ry=(int)(80*Math.random());
red Pen.setColor(Color.red);
red Pen.fillOval(100+rx,100+ry,10,10);
try{redBall.sleep(500);}
catch(InterruptedException e){}
redPen.setColor(Color.gray);
redPen.fillOval(100+rx,100+ry,10,10);
}
}
}
}
六、程序設(shè)計題(本大題共2小題,每小題6分,共12分)
37.編寫一個方法halfArray(),要求該方法有一個元素類型為int的數(shù)組參數(shù),方法返回一個新數(shù)組,新數(shù)組的長度與參數(shù)數(shù)組的長度相同,而新數(shù)組元素的值是參數(shù)數(shù)組各元素的一半。
38.一個Java小應(yīng)用程序,界面有三個文本框和兩個按鈕,前兩個文本框用于輸入整數(shù),第三個文本框用于輸出結(jié)果。兩個按鈕分別表示加和減運算。當(dāng)前兩個文本框輸入整數(shù)后,點擊相應(yīng)按鈕,程序就將計算結(jié)果輸出在第三個文本框中。以下是程序的大部分,其中監(jiān)視按鈕事件的方法未給出,試編寫處理按鈕事件的方法。
注:這里是給定部分的程序,你要編寫的是actionPerformed(ActionEvent e)方法。
import java.applet.*;import javax.swing.*;
import java.awt.*; import java.awt.event.*;
class Panel1 extends JPanel{
JTextField text1, text2, text3;JButton addButton,subButton;
Panel1(){
text1=new JTextField(10);text2=new JTextField(10);
text3=new JTextField(10);setLayout(new GridLayout(5,1));
addButton=new JButton(”加”);subButton=new JButton(”減”);
add(text1); add(text2);
add(text3); add(addButton); add(subButton);
}
}
public class Classl extends Applet implements ActionListener{
Pane1 panel;
public void init(){
setSize(100,200); panel=new Panel1();add(panel);
(panel.addButton).addActionListener(this);
(panel.subButton). addActionListener(this);
}
public void actionPerformed(ActionEvent e){
本文題目:java筆試題庫和代碼 java筆試題大全帶答案簡書
本文鏈接:http://www.dlmjj.cn/article/dojejie.html