intn=a[j];a[j]=a[i];a[i]=n;
}
}
}
System.out.printf(“%d,%,d%d,%d,%d”,a[0],a[1],a[2],a[3],a[4]);
第3章作业题
1.有一函数:
编写一个Java应用程序,从键盘输入一个x值,程序输出y的值。
2.编写一个Java应用程序,使用while循环计算1~1000之间能被3和7同时整除的整数之和。
3.编写一个Java应用程序,使用for循环计算8+88+888+8888+88888+…的前10项之和。
4.编写一个Java应用程序,计算1-1/3+1/5-1/7+1/9-1/11+…的前10000项之和。
5.编写一个Java应用程序,计算1+2!
+3!
+4!
+…从第10项到第20项之和。
第4章问答题及作业题
第4章问答题
1、在声明类时,类名应遵守哪些习惯?
2、类体内容有哪两种重要的成员?
3、实例方法可以操作类变量吗?
类方法可以操作实例变量吗?
4、当类的字节码加载到内存时,类变量就一定分配了内存空间吗?
5、类的实例变量在什么时候会被封分配内存空间?
6、一个类的类变量被该类创建的所有对象共享吗?
7、不同对象的实例变量分配的内存空间地址一定不同吗?
8、什么叫方法重载?
构造方法可以重载吗?
9、请阐述,为什么类方法不可以调用实例方法。
10、请阐述,为什么类方法不能操作实例成员变量。
11、实例方法可以用类名直接调用吗?
12、关键字this可以出现在构造方法中吗?
可以出现在实例方法中吗?
可以出现在类方法中吗?
13、源文件中声明编写的类一定在同一个包中吗?
14、“importjava.awt.*;”和“importjava.awt.Button”有什么不同?
15、程序中如果使用了“importjava.util.*”,程序运行时,要加载java.util包中全部的类到内存中吗?
16、有几种访问权限修饰符?
说出其中一种修饰符的作用?
17、怎样反编译一个类?
第4章作业题
1、编写一个类,该类创建的对象可以计算等差数列的和。
2、编写一个类,该类创建的对象可以输出英文字母表。
3、编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。
要求:
该类的所有对象共享常数项。
4、编写两个类,A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个数的最小公倍数。
要求:
类B中有一个成员变量是用类A的声明对象。
5、编写使用了包语句的类,然后在应用程序中用import语句引入类,并用该类创建对象。
第5章问答题及作业题
第5章问答题
1、子类在什么情况下可以继承父类的友好成员?
2、子类通过怎样的办法可以隐藏继承的成员变量?
3、子类重写继承的方法的规则是什么?
4、子类的构造方法的第一条语句是什么?
5、子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗?
6、子类重写继承的方法时,可以降低方法的访问权限吗?
7、关键字super的用法?
8、假设父类有一个方法?
publicdoublef(doublex,doubley){
returnx+y;
}
是否允许子类再声明如下一个方法?
publicfloatf(doublex,doubley){
return23;
}
9、父类的final方法可以被子类重写吗?
10、什么类中可以有abstract(抽象)方法。
11、什么叫上转型对象?
12、什么叫接口会掉?
13、与类有关的匿名类一定是该类的一个子类吗?
与接口有关的匿名类一定是实现该接口的一个类吗?
14、怎样声明一个泛型类?
怎样评价SDK1.5新推出的泛型?
15、阅读下列程序,说出程序的输出结果。
classNegativeIntegerExceptionextendsException
{
Stringmessage;
publicNegativeIntegerException()
{
message="方法的参数值不是正整数";
}
publicStringtoString()
{
returnmessage;
}
}
classMaxCommonDivisor
{
publicintgetMaxCommonDivisor(inta,intb)throwsNegativeIntegerException
{
if(a<0||b<0)
thrownewNegativeIntegerException();
intr=0;
if(b>a)
{
intt=a;a=b;b=t;
}
r=a%b;
while(r!
=0)
{
a=b;
b=r;
r=a%b;
}
returnb;
}
}
classMinCommonMultipleextendsMaxCommonDivisor
{
publicintgetMinCommonMultiple(inta,intb)throwsNegativeIntegerException
{
if(a<0||b<0)
thrownewNegativeIntegerException();
inty=0;
intx=getMaxCommonDivisor(a,b);
y=(a*b)/x;
returny;
}
}
publicclassExample
{
publicstaticvoidmain(Stringargs[])
{
intmaxCommonDivisor,minCommonMultiple;
MaxCommonDivisormax=newMaxCommonDivisor();
MinCommonMultiplemin=newMinCommonMultiple();
try
{
maxCommonDivisor=max.getMaxCommonDivisor(18,12);
System.out.println("最大公约数:
"+maxCommonDivisor);
minCommonMultiple=min.getMinCommonMultiple(18,12);
System.out.println("最小公倍数:
"+minCommonMultiple);
maxCommonDivisor=max.getMaxCommonDivisor(-64,48);
System.out.println("最大公约数:
"+maxCommonDivisor);
}
catch(NegativeIntegerExceptione)
{
System.out.println(e.toString());
}
}
}
第5章作业题
1、编写一个类,该类有一个方法
Publicintf(inta,intb)
{
//要求该方法返回a和b的最大公约数
}
然后编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。
要求:
在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。
2、首先编写一个抽象类,要求该类有如下3个抽象方法:
publicabstractvoidf(intx);
publicabstractvoidg(intx,inty);
publicabstractdoubleh(doublex);
然后分别给出该类的3个子类。
要求:
在应用程序的主类中使用这些子类创建对象,然后让它们的上传型调用方法:
f(),g()和h()。
3、编写一个类,要求该类实现一个接口,该接口有如下3个抽象方法:
publicabstractvoidf(intx);
publicabstractvoidg(intx,inty);
publicabstractdoubleh(doublex);
要求:
在应用程序的主类中使用该类创建对象,并使用接口回调来调用方法:
f(),g()和h()。
4、举例说明匿名类的用法。
5、编写一个异常类,并具体给出一个产生该异常的方法。
在一个应用程序中测试该异常类。
第6章问答题及作业题
第6章问答题
1、对于字符串
Strings1=newString(“ok”);
Strings2=newString(“ok”);
说出下列表达式的值。
s1==s2
s1.equals(s2)
2、对于字符串
Strings1=newString(“Iloveyouzhht”);
Strings2=s1.replaceAll(“love”,”hate”);
说出System.out.printf(“%s,%s”,s1,s2)的结果
3、Stirng类和StringBuffer类有何不同?
4、对于StirngBuffer串
StirngBufferstr=newStringBuffer(“abcdefg”);
str=str.delete(2,4);
说出System.out.println(str)的结果。
5、StringTokennizer类的主要用途是什么?
该类有哪几个重要的方法?
6、下列System.out.printf语句的输出结构是什么?
Strings=newString(“we,go,to,school”);
StringTokenizertoken=newStingTokenizer(s,”,”);
Stringword=token.nextToken();
intn=token.countTokens();
System.out.printf(“%s,%d”,word,n);
7、请说明Matcher对象的find()方法和LookingAt()方法有什么不同?
8、正则表达式中的元字符[123]代表什么意思?
9、说明与模式”A[135]{2}”匹配的4个字符串。
10、下列哪些字符串匹配模式”boy\\w{3}”?
A.boy111B.boy!
@#C.boyweoD.boyboyboyboy
补充问答题:
1、子类在什么情况下可以继承父类的友好成员?
2、子类通过怎样的办法可以隐藏继承的成员变量?
3、子类重写继承的方法的规则是什么?
4、子类的构造方法的第一条语句是什么?
5、子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗?
6、子类重写继承的方法时,可以降低方法的访问权限吗?
7、关键字super的用法?
8、假设父类有一个方法?
publicdoublef(doublex,doubley){
returnx+y;
}
是否允许子类再声明如下一个方法?
publicfloatf(doublex,doubley){
return23;
}
9、父类的final方法可以被子类重写吗?
10、什么类中可以有abstract(抽象)方法。
11、什么叫上转型对象?
12、什么叫接口回调?
13、与类有关的匿名类一定是该类的一个子类吗?
与接口有关的匿名类一定是实现该接口的一个类吗?
第6章作业题
1、编写一个应用程序,用户从键盘输入一行字符串,程序输出该字符串中与模式”[24680]A[1357]{2}”匹配的子字符串。
2、编写一个应用程序,用户从键盘输入一行含有数字字符的字符串,程序仅仅输入字符串中的全部数字字符。
第8章问答题及作业题
第8章问答题
1、线程和进程是什么关系?
2、线程有几种状态?
3、引起线程中断的常见原因是什么?
4、一个线程执行完run()方法后,进入了什么状态?
该线程还能再调用start()方法吗?
5、线程处于什么状态时,调用isAlive()方法返回的值是false?
6、线程调用interrupt()的作用是什么?
7、将例8-9中Bank类中的saveOrTake()方法前的synchronized修饰去掉。
然后重新编译、运行例8-9,注意观察运行结果。
8、wait()、notify()和notifyAll()的作用分别是什么?
9、将例子10中的TicketSeller类中出现的循环条件:
while(fiveNumber<1)
改写成:
if(fiveNumber<1)
是否合理,说明你的理由。
10、将例8-10中的TicketSeller类中出现的:
wait();
改写成:
thread.sleep(2000)
然后重新编译、运行例8-10,注意观察运行结果。
11、什么叫守护线程?
第8章作业题
1、上机调试例8-1,反复运行,观察每次运行的结果是否相同。
2、模仿例8-2,编写3个线程,分别在命令行窗口输出信息。
3、模仿例8-3,编写3个线程,使它们有更多的共享单元。
4、模仿例8-10,设计5个人排队买票,并规定买票规则和排队顺序。
第9章问答题及作业题
第9章问答题
1、如果准备读取一个文件的内容,应当使用FileInputStream流还是FileOutputStream流?
2、FileInputStream流的read()方法和FileReader()流的read()方法有何不同?
3、BufferedReader流能直接指向一个文件对象吗?
4、ByteArrayOutputStream流怎样获取缓冲区中的内容?
5、DataInputStream类和DataOutputStream类的主要用途是什么?
6、使用ObjecInputStream类和ObjectOutputStream类有哪些注意事项?
7、怎样使用输入/输入对流技术克隆对象?
8、使用RandomAccessFile类读写文件的好处是什么?
第9章作业题
1、编写一个应用程序,读取一个文本文件的内容。
2、编写一个应用程序,将用户从键盘输入的10行文字存入文件。
3、使用数组字符将俄文字母写入内存,然后再从内存读出。
4、编写一个应用程序,将用户从键盘输入的10个整数存入文件,然后顺序读出。
5、编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据。
6、使用RandomAccessFile流将一个文本文件倒置读出。