




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 java语言概述2.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗?答:不正确3. java应用程序的主类必须含有怎样的方法?答:含有main方法4。“java应用程序必须有一个类是public类”这句话正确吗?答;不正确,只能有一个public类5。“java applet程序的主类必须是public类”这句话正确吗?答:正确,因为java applet主类必须是applet类的子类并且是public的类6。请叙述java源程序的命名规则。答:与public的类同名。7。源文件生成的字节码文件在运行时都加载到内存中吗?答:非也,动态随需要运行才加载。8. 面向对象的
2、程序设计语言有那些基本特征?答:封装;继承;多态性。9. 在java程序中有多个类文件时,用java命令应该运行那个类?答:具有main方法的类第二章 基本数据类型和数组4。下列哪些语句是错的?int x=120;byte b=120;b=x;答:b=x;错应为 b=(byte)x5。下列哪些语句是错的?答:y=d;错,应y=(float)d6。下列两个语句是等价的吗?char x=97;char x=a;答:是等价的。7。下列system.out.printf语句输出结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)(-129);system.ou
3、t.printf(“%c,%d,%d”,a,b1,b2);如果输出语句改为:system.out.printf(“%d,%d,%d”,a,b1,b2);输出什么?答:输出a , -128, 127修改后输出 97,-128,1278. 数组是基本数据类型吗?怎样获取数组的长度?答:不是基本数据类型,是复合数据类型。可以通过:数组名.length的方法获得数组长度9。假设有两个int类型数组:int a=new int10;int b=new int8; b=a;a0=100;b0的值一定是100吗?答;一定,因为a数组与b数组引用相同。10。下列两个语句的作用等价吗?int a=1,2,3,4
4、,5,6,7,8;int a=new int8;答:不等价,前者有初值,后者指分配空间。初值数组元素为011.有语句: int a=1,2,3,b=4,5; a=b; 求a0=? b1=? 为什么?答: a0=4 ; b1=5 因为有相同的引用,同指向b.12. java语言使用_编码,每个字符占_字节_byte位unicode 2 16第3章 运算符、表达式与语句 1。下列语句输出的结果是什么?int a=100, x,y;x=+a;y=a-system.out.printf(“%d, %d,%d”,x,y,a);答:101,101,1002。下列语句那些有错误?int x=0;x=5.0/
5、2;float y=12.5f;y=5.0/2;答:x=5.0/2; 错。3。下列语句那些有错?byte x=32;char c=a;int n=c-x; c=c-x;答:c=c-x;错 应为 int类型。4下列语句正确的是a.表达式“12+5634”的值是trueb.表达式“12+56|34”是非法表达式c.表达式“x+y=12”是非法表达式d.表达式“12+5634”的值是13答: (a, c )5。对于整数m, m9)y=100;z=200;else y=-100; z=-200;system.out.printf(“%d,%d,%d”,x,y,z);输出: 10,100,-2008.下
6、列for语句输出结果是什么?for(int i=1; i=4; i+)switch(i)case 1: system.out.printf(“%c”,a);case 2: system.out.printf(“%c”,b);break;case 3: system.out.printf(“%c”,c);case 4: system.out.printf(“%c”,d);break; 输出:a,b, b,c,d,d9. 下列system.out.printf语句输出的结果是什么?char a=a,b,c,d,e;for(i=0; i=a.length/2; i+) char c=ai; ai=a
7、a.length-(i+1); a a.length-(i+1)=c;system.out.printf(“%c%c%c%c%c”a0,a1,a2,a3,a4);输出:e,d,c,b,a10.下列system.out.printf语句输出的结果是什么? int a=3,4,1,2,-6;for(int i=0; ia.length;i+) for(int j=i+1;ja.length;j+) if(ajai)int n=aj; aj=ai; ai=n; system.out.printf(“%d,%d,%d,%d,%d”,a0,a1, a2,a3,a4);输出:-6,1,2,3,411.pu
8、blic class tick public static void main(string args)int a=3,4,1,2,-6;for(int i=0; ia.length;i+) for(int j=i+1;ja.length;j+) if(ajai) int n=aj; aj=ai; ai=n; system.out.printf(%d,%d,%d,%d,%d,a0,a1, a2,a3,a4);第四章 类与对象1. 在声明类时,类名应遵循哪些习惯?答:首字母大写, 望名知意2. 类体内容有哪两种重要成员?答:成员变量,和成员方法。3。实例方法可以操作类变量吗?类方法可以操作实例变
9、量吗?答:实例方法可以操作类变量。而类方法不可以操作实例变量。4. 当类的字节码加载到内存时,类变量就一定分配了内存空间吗?答:实例成员变量不分配内存,而类变量一定分配内存。5. 类的实例变量在什么时候分配内存?答:声明之后,在用new关键字创建实例的时候才分配内存。6. 一个类的类变量被该类创建的所有对象共享吗?答:共享7. 不同对象的实例变量分配的内存地址一定不同吗?答:当出现引用赋值语句时两个实例变量的内存地址相同。8. 什么叫方法的重载?构造方法可以重载吗?答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。构造方法可以
10、重载。9. 请阐述为什么类方法不能调用实例方法?答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道一个方法从何处开始执行,当然不能调用。10. 请阐述,为什么类方法中不能操作实例成员变量?答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类创建之前,实例成员变量还没有分配内存空间。没内存空间当然无法操作。11. 实例方法可以用类名直接调用吗?答:不能,因为实例方法,用new创佳对象后才分配入口地址,而类名,一经声明就分配类名
11、地址。而这时对象创建之前实例方法还没有入口地址。实例方法表现实例的功能,或改变实例变量。用类调用改变那个实例的实例变量,表现那个实例的功能,不明确。12. 关键字this可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方法中吗?答:可以出现在构造方法中,代表该类构造方法所创造出的对象。可以出现在实例方法中,代表使用该方法的当前对象。this不能出现在类方法中,因为类方法是通过类名调用的。13. 源文件声明编写的类一定在同一个包中吗?答:不一定,当不在同一包中时,可用import语句将其所在的包引入该源文件中。14. “import java.awt.*”与“import java.
12、awt.button”有什 么不同?答:前者引入了awt包中的所有类,后者只引入了button一个类。15. 程序中使用了“import java.util.*;”程序运行时,是要加载java.util包中的全部类到内存吗?答:不,只加载本程序用到的类到内存中,因为java程序是动态加载,字节码类文件。16. 有哪几种访问权限修饰符?说出一种的作用。答:访问权限修饰符有public, private,protected.private作用是只允许本类的对象访问。17. 怎样反编译一个类?答:使用sdk提供的反编译器javap.exe文件可以实现将字节码文件反编译为源码文件。可查看源码中publ
13、ic方法和public成员变量的名字。如加入参数-private则可列出其全部的成员方法和成员变量。如:javap private java.awt.button则可以列出button类中全部的方法和成员变量。18. 下面程序中那个语句是错的?class a private float weight; /weight被修饰为private的float型变量。 public float f(float a,float b) /方法 f是public方法。 return a; public class b void g() a a=new a(); a.weight=23f; a.f(3,4);
14、答:a.weight=23f;错1. 编写一个类,该类创建的对象可以计算等差数列的和。解:class dengcha int start,d; dengcha() dengcha(int start,int d) this.start=start; this.d=d; void setstart(int s) start=s; void setd(int d) this.d=d; int getsum(int n) int sum=0,i=1; while(i=0) root1=(-b+math.sqrt(disk)/(2*a); root2=(-b-math.sqrt(disk)/(2*a)
15、; system.out.printf(方程的根:%f,%fn,root1,root2); else system.out.printf(方程没有实根n); else system.out.println(不是一元2次方程); public void setcoefficient(double a,double b,double c) this.a=a; this.b=b; squareequation.c=c; if(a!=0) boo=true; else boo=false; public class zuoye4_3 public static void main(string arg
16、s ) squareequation equation1=new squareequation(4,5,1); squareequation equation2=new squareequation(3,5,-7); equation1.getroots(); equation2.getroots(); 4.程序源文件example.java如果使用了包语句,例如: package tom.jiafei;并且有c:1000tomjiafei的目录结构, 并且将源文件编译后得到的全部字节码文件拷贝到目录c:1000tomjiafei中。问在哪个目录中运行此文件,运行命令是什么?答:运行程序时必须
17、到tomjiafei的上一层目录1000中来运行,如: c:1000java tom.jiafei. example第五章 继承、接口与泛型1。子类在什么情况下可以继承父类的友好成员?答:父子类在同一包中时子类可以继承父类的友好成员。2。子类通过什么办法,可以隐藏继承的成员变量。答:子类成员变量与父类成员变量同名。3。子类重写继承方法的规则是什么?答:重写隐藏父类的方法需:返回的数据类型相同,参数的个数相同,并且类型相同。如果重写父类的方法后参数的个数或类型不同会出现子类方法的重载。4. 子类的构造方法的第一条语句是什么?答:如果需要调用父类构造方法,则应是用super关键词调用父类的构造方法
18、。5。子类一旦重写了继承的方法,就会隐藏继承的方法。是这样吗?答:不一定。在参数的个数或类型不同时会产生重载。如果只有返回值的类型不同,将会产生编译错误。(5) 子类隐藏父类的方法,参数必须_相同并且_相同.答: 个数 ,类型6。子类重写继承方法时,可以降低方法的权限吗?答:重写继承方法时不能降低访问权限。7。简述关键字super的用法。答:1)子类调用父类的构造方法。2)子类对象引用被隐藏了的父类方法,或成员变量。8.假设父类有一个方法:public double f(double x, double y) return x+y;是否允许子类再声明如下的方法:public float f(d
19、ouble x, double y) return 23;答:不允许。9。父类的final方法可以被子类重写吗?答:不可以10。什么类中可以有abstract方法?答:被abstract修饰的类。接口中也可以有abstract方法11。什么叫做对象的上转型对象?答:用子类的构造方法构造出来的对象,赋值给父类对象。12。什么叫接口回调?答:用实现接口的类创建的对象,赋值给该接口声明的接口变量。13。与类有关的匿名类一定是该类的子类吗?与接口有关的匿名类一定是实现该接口的一个类吗?答:一定,因为类创建对象时,除了构造方法还有类体,此类体被认为是该类的一个子类去掉类声明后的类体。即匿名类,匿名类就是
20、一个子类。与接口的匿名类相同。一定是子类。14。怎样声明一个泛型类?答:我们可以这样声明一个泛型类: class a 其中a时泛型的名称,e是其中的泛型,即我们没有指定e是何种类型的数据,它可以是任何对象或接口,但不能是基本数据类型。15阅读下列程序,并说明输出结果。class negativeintegerexception extends exception string message; public negativeintegerexception() message=方法的参数值不是正整数; public string tostring() return message; class
21、 maxcommondivisor public int getmaxcommondivisor(int a, int b)throws negativeintegerexception if(a0|bb) int t=a; a=b; b=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; return b; class mincommonmultiple extends maxcommondivisorpublic int getmincommonmultiple(int a, int b)throws negativeintegerexception if(a0|
22、b0) throw new negativeintegerexception(); int y=0; int x=getmaxcommondivisor(a,b); y=(a*b)/x; return y; public class example public static void main (string arg) int maxcommondivisor, mincommonmultiple; maxcommondivisor max=new maxcommondivisor(); mincommonmultiple min = new mincommonmultiple(); try
23、 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(negati
24、veintegerexception e) system.out.println(e.tostring(); 3。编写一个类要求实现一个接口,该接口有3个abstract方法:public abstract void f( int x);public abstract void g(int x, int y);public abstract double h(double x);要求在应用程序主类中使用该类创建对象,并使用接口回调调用方法f(), g() 和h().解:interface a public abstract void f(int x); public abstract void
25、 g(int x,int y); public abstract double h(double x);class a1 implements a public void f(int x) system.out.println(x); public void g(int x,int y) int z=x+y; system.out.println(z); public double h(double x) return x*x; class a2 implements a public void f(int x) system.out.println(hello:+x); public voi
26、d g(int x,int y) int z=x-y; system.out.println(z); public double h(double x) return math.sqrt(x); class a3 implements a public void f(int x) system.out.println(你好:+x); public void g(int x,int y) double z=(double)x/y; system.out.println(z); public double h(double x) return 1/x; public class zuoye5_3
27、public static void main(string args ) a a=new a1(); a.f(10); a.g(12,20); system.out.println(a.h(100); a=new a2(); a.f(10); a.g(12,20); system.out.println(a.h(100); a=new a3(); a.f(10); a.g(12,20); system.out.println(a.h(100); 利用面向接口编程的方法,编写计算锥形体积的完整程序,注意锥形的底可以为圆形,矩形,或梯形等。(对细节满足开闭原则。)4求下列程序运行结果:class
28、 a public double y=11.456789; public void f() y=y+1; system.out.printf(y是double型的变量,y=%fn,y); class b extends a int y=0; public void g() y=y+100; system.out.printf(y是int型的变量,y=%dn,y); class example5_3 public static void main(string args ) b b=new b(); b.y=200; b.g(); /调用子类新增的方法 b.f(); /调用子类继承的方法 5.求
29、下列程序运行结果class a int m=0,n=0; long f() return m+n; class b extends a int m=1,n=1; long f() long result=0; super.m=10; super.n=20; result=super.f()+(m+n); return result; long g() long result=0; result=super.f(); return result/2; public class example5_7 public static void main(string args ) b b=new b()
30、; b.m=3; b.n=7; long resultone=b.g(); long resulttwo=b.f(); long resultthree=b.g(); system.out.println(resultone=+resultone); system.out.println(resulttwo=+resulttwo); system.out.println(resultthree=+resultthree); (6) 即所谓的开闭原则,对_关闭,对_开放。答: 修改,扩展(7) 编写一个面向抽象的完整程序,求柱形体积,计算方法底*高,但底面积的算法经常要变化。于是对于求底面积可以
31、设一个抽象类geometry 。柱形面对具有抽象类的geometry设计。最后完成对圆形底面积的柱形,和梯形底面积的柱形计算体积。(8)求下列程序的运行结果。interface show void show();class a implements show public void show() system.out.println(i love this game); class b implements showpublic void show() system.out.println(我喜欢看nba); class c public void f(show s) /接口作为参数 s.sh
32、ow(); public class example5_13 public static void main(string args) c c=new c(); c.f(new a(); c.f(new b(); 答: i love this game我喜欢看nba(9)写出下面程序的运行结果:public class example5_18 public static void main(string args ) int n=0,m=0,t=0; try t=9999; m=integer.parseint(8888); n=integer.parseint(12s3a); /发生异常,转
33、向catch system.out.println(我没有机会输出); catch(exception e) system.out.println(发生异常); n=123; system.out.println(n=+n+,m=+m+,t=+t); 答:发生异常 n=123, m=8888, t=9999第六章 字符串和正则表达式 1。对于字符串string s1=new string(“ok”);string s2=new string(“ok”);说出下列表达式的值:s1=s2s1.equals(s2)答:(1) false (2) true2.对于字符串string s1=new st
34、ring(“i love you zhht”);string s2=s1.replaceall(“love”,”hate”);说出system.out.printf(“%s, %s”, s1,s2)的结果。结果:i love you zhht , i hate you zhht3. string 类和stringbuffer类有何不同?答:string 类创建的字符串对象存储空间是不能修改的。而使用stringbuffer类创建的对象是可以修改其字符串序列,即该类的对象的实体内存空间是可以改变的,便于存放可变字符串。4。对于stringbuffer串stringbuffer str=new s
35、tringbuffer(“abcdefg”); str=str.delete(2,4);说出system.out.println(str)的结果。答:abefg (4为需要删除的下一个字符的下标)5.stringtokenizer类的主要用途是什么?该类有哪几个重要的方法?答:当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的stringtokenizer类.可以使用nexttoken()方法逐个获取字符串分析器中的语言符号(单词),每当获取到一个语言符号,字符串分析器中的负责计数的变量的值就自动减一,该计数变量的初始值等于字符串中的单词数目.字符串分析
36、器调用counttokens()方法可以得到计数变量的值。字符串分析器通常用while循环来逐个获取语言符号,为了控制循环,我们可以使用stringtokenizer类中的hasmoretokens()方法,只要计数的变量的值大于0,该方法就返回true,否则返回false。6。下列system.out.printf语句的输出结果是什么?string s=new string(“we, go, to, school”);stringtokenizer token=new stringtokenizer(s,”,”);string word=token.nexttoken();int n=tok
37、en.counttokens();system.out.printf(“%s,%d”,word,n); 答:we ,37。请说出matcher对象的find()方法和lookingat()方法有什么不同?答:public boolean find() :寻找input和pattern匹配的下一子序列public boolean lookingat():判断从input的开始位置是否有和pattern匹配的子序列。8。正则表达式中的元字符123代表什么意思?答:代表1,2,3中的任何一个9。说出与模式“a1252”匹配的4个字符串。答:a12,a25,a15,a5210。下列哪些字符串匹配模式“
38、boyw3”boy111 b. boy!#c. boyweo d. boyboybpy答:c。 boyweo a.boy11111.有模式pattern=“a1359?”求和模式pattern相匹配的全部字符串?答: “a” , “a1”, “a3”, “a5”, “a9”12. 一个正则表达式是含有一些具有_的字符串,这些特殊字符称作正则表达式中的_答:特殊意义字符, 元字符第七章 常用实用类1.怎样实例化一个calendar对象?答:calendar类在java.util包中。使用calendar类的static方法getinstance()可以初始化一个日历对象,如:calendar c
39、alendar= calendar.getinstance();2. calendar对象调用set(1949, 9,1)设置的年月日分别是多少?答:1949年10月1日3. 怎样得到一个1-100之间的随机数?答:int randomnumber=(int)(math.random()*100)+14. biginteger类的常用构造方法是什么?答:可以使用构造方法: public biginteger(string val)5. 两个biginteger类对象怎样进行加法运算?答:biginteger n1=new biginteger (大整数字符串), n2=new biginteg
40、er(大整数字符串), result=null; result=n1.add(n2);6. linkedlist泛型类是一种什么数据结构?答:是一种链表类数据结构。7. 对于需要经常查找的数据,应选用linkedlist还是选用hashmap?答:选用hashmap第八章 线程1. 线程和进程是什么关系?答:线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。2. 线程有几种状态?答:新建状态, 运行状态,中断状态,死亡状态3. 引起线程中断的常见原因是什么?答:有4种:有4种原因的
41、中断:(a) jvm将cpu资源从当前线程切换给其他线程,使本线程让出cpu的使用权处于中断状态。(b)线程使用cpu资源期间,执行了sleep(int millsecond)方法。(c)线程使用cpu资源期间,执行了wait()方法。 (d) 线程使用cpu资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。4. 一个线程执行完run()方法后,进入什么状态?该线程还能再调用start()方法吗?答:一个线程执行完run()方法进入死亡状态,之后还能再调用start()方法运行5. 线程在什么状态时,调用isalive()方法后返回值是false?答:当线程进入死亡状态后(实体内
42、存被释放),线程仍可以调用方法isalive(),这时返回的值是false。(线程未调用start方法之前,调用isalive()方法返回false).6. 线程调用interrupt()的作用是什么?答: intertupt方法经常用来“吵醒”休眠的线程。当一些线程调用sleep方法处于休眠状态时,一个使用 cpu资源的其它线程在执行过程中,可以让休眠的线程调用interrupt 方法“吵醒”自己,即导致休眠的线程发生interruptedexception异常,从而结束休眠,重新排队等待cpu资源。8. wait(), notify(), notifyall()的作用分别是什么?答:wai
43、t()、notify()和notifyall()都是object类中的final方法,被所有的类继承,且不允许重写的方法。 当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait()方法。使用wait()方法可以中断方法的执行,使本线程等待,暂时让出cpu的使用权,并允许其它线程使用这个同步方法。其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyall()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。(如果使用notify()方法则只通知处于等待中的某一个线程结束等待)
44、 9.将例子10中的ticketseller类中的循环条件:while(fivenumber1)改写成:if(fivenumber1)是否合理,理由是什么?答:是合理的,因为此循环只有一种可能作循环体内的语句。10.将例子10中的ticketseller类中出现的:wait( )改写成:thread.sleep(2000)从新编译,运行,观察结果。答:sleep(2000)线程到时醒来排队,这期间中断的原因不一定解决,wait()则直到中断原因消失才结束等待。11. 什么叫守护线程?答:一个线程调用 void setdaemon(boolean on) 方法可以将自己设置成一个守护(daemon)线程,例如: thread.setdaemon(true); 线程默认是非守护线程,非守护线程也称作用户(user)线程。 当程序中的所有用户线程都已结束运行时,即使守护线程的run方法中还有需要执行的语句,守护线程也立刻结束运行。一般地,用守护线程做一些不是很严格的工作,线程的随时结束不会产生什么不良的后果。一个线程必须在运行之前设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轨道设备转让协议书
- 解除执行委托协议书
- 老年护理心理课程设计与实践
- 进校携带手机协议书
- 雇佣合同解约协议书
- 转运承包服务协议书
- 项目入股投资协议书
- 饮料展柜投放协议书
- 赠与房产抵押协议书
- 鲁能足球培训协议书
- 2025国网陕西电力省管产业单位供电服务业务部招聘(379人)高频重点提升(共500题)附带答案详解
- 2025年甘肃农垦集团招聘笔试参考题库含答案解析
- 住宅小区拆除施工方案
- 湖北武汉市2025届高三第一次调研测试数学试卷含解析
- 租房合同范本下载(可直接打印)
- 【MOOC】通信原理-电子科技大学 中国大学慕课MOOC答案
- 湖北省武汉市部分学校2025届高三第三次模拟考试数学试卷含解析
- 2024年-2025年电梯检验员考试题库及答案
- 02J915 公用建筑卫生间
- 混凝土搅拌站安全操作技术交底
- 兽用生物制品保藏、运输管理和相应的应急预案制度
评论
0/150
提交评论