1、Java基础入门习题答案docJava基础入门习题答案第1章Java开发入门一、 填空题1、 Java EE Java SE Java ME2、 JRE3、 javac4、 bin5 path、classpath二、 选择题1、ABCD 2、C 3、D 4、B 5 B三、 简答题1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、 JRE (Java Runtime Environment, Java运行时坏境),它相当于操作系统部分,提供了 Java程序运 行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是捉供给 普通用户使用的,
2、如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装 JREoJDK (Java Development Kit, Java开发工具包),它包含编译工具、解释工具、文档制作工具、打 包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时, 首先必须下载和安装JDK。JDK中已经包含了 JRE部分,初学者安装JDK后不必再去下载和安装 JRE 了。四、 编程题public class HelioWorld public static void main(String args) System. out. print In ( n 这是第一个
3、 Java 程序!);第2章Java编程基础一、填空题1、class2、tnie 和 false3、单行注释、多行注释、文档注释4、基本数据类型、引川数据类型5、1、 2、 4、 86、& & 丨 II7、08、59、 3410、 56二、 判断题1、错 2、对 3、错 4、对 5、错三、 选择题1、AD 2、AD 3、C 4、ABCD5 C 6、A 7、AC 8、A 9、B 10、A四、 程序分析题1、 编译不通过。int值4和b相加时,由于变量b的类型为by取值范围没有int类型大,存不卜int 类型的值,因此编译不通过。2、 编译不通过。这是因为y是在故里层的代码块中定义的一个变虽,只冇
4、在那个代码块中才可使用, 在使用y = x;语句时已经超过了 y变最的作用域,所以编译无法通过。3、 打印结果为:3o4、 打印结果为:987五、 问答题1、 Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型, 占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型, 占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,冇true和false两个值,分别占 一个字节。2、 如果使用“&”在表达式Z间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。 如果使用“&”进行
5、连接,当“&”左边的表达式为false,则不会执行其右边的表达式。例如 定义int x = 2,y = 0; boolean b = x0表达是会发牛:被0除界常,因为x / y的表达式执行 了。而boolean b = x 0是不会出现这种异常的,因为xvy为false,表达式x/y不会 执行。3、 方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。 调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。六、 编程题1、 参考答案public class TestOl public static void main(String args) i
6、nt sum = 0;for (int i = 1; i v 100; i+) if (i % 2 != 0)sum += i;System.out.printin(sum);2、 参考答案public class Test02 public static void main(String args ) int y = function(0);System.out: .println (y);public static int function(int x) int y;if (x 0) y = x + 3; else if (x = 0) y = o; else y = x * x - 1
7、;return y;3、参考答案public class Test03 public static void main(String args) int arr = 25, 24, 12, 76, 101, 96, 28 ;for (int i = 0; i v arr.length - 1; i+) /定义内层循环for (int j = 0; j arrj + 1) / 比较相邻元素/下面的三行代码用于交换两个元素int temp = arr j;arr j = arr j + 1;arr j + 1 = temp;for (int i = 0; i private二、 判断题1、对2、对
8、3、错4、对5、错三、 选择题1、B 2、D 3、B 4、ABC 5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 1()、D四、 程序分析题1、 程序不能编译通过,因为在类A中的成员变量secret MJ private修饰,所以在类Testi中无法访问。2、 程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。3、 程序能够编译通过,运行的结果为inner五、 简答题1、 构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时 候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没冇返回值类型的声 明、在方法中
9、不能使用retum语句返冋一个值2、 单例模式可以保证在整个程序运行期间针对该类只存在一个实例对彖。六、 编程题1、参考答案class Student private String name;private double grade;public Student() public Student(String namer double grade) this name = name;this.grade = grade;public String getName() return name;public void setName(String name) this.name = name;pu
10、blic double getGrade() return grade;public void setGrade(double grade) this grade = grade;public class TestOl public static void main(String args) Student stul = new Student();stul setName(zhangsan);stulsetGrade(99);Student stu2 = new Student(lisi# 100);2、参考答案class Father private String name = zhang
11、jun11 ;class Child public void introFather() Syste m.out:. printin (nMy Father s name is 11 + name); public class Test02 public static void main(String args) Father.Child child = new Father).new Child();child introFather();第4章面向对象(下)一、填空题1、 继承2、 方法,抽象类3、 import4、 子类、父类、基类5s Exception6 final四、程序分析题1、
12、 程序编译能通过,这是因为int x = 2 /0; System.out.println(x);ii两条语句使用了 try块,捕获了程序 因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”进入finally 代码块”。2、 程序编译不通过,这是因为在程序屮使用了 final关键字修饰Animal类,使得Animal类不能被继 承。shout()方法中同样使用了 final关键字,使得该方法不能被重写。3、 程序编译能通过,输出结果为“动物叫!”和“汪汪”,因为在程序中调用shout()方法时,首先 会通过super.shout()调用父类的方法说岀“动物叫!”之
13、后再输出“汪汪”4、 程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中 的方法必须在子类中全部实现,由于nm()方法在子类中并没有重新实现,所以这也是错误的。五、 简答题1、 在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子 类的该方法重写(覆盖)父类的方法。2、 多态意味着一个对彖冇着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的 属性和方法。简单的说,多态就是使川父类类型的变量引用子类对象,根据被引用子类对象的特 性,程序会得到不同的运行效果。3、 在Java中,使用abstract关键字修饰的类
14、称Z为抽象类。抽象类是不能被实例化的,通常需要写一 个子类来继承抽彖类,同吋实例化子类来获得该类的对象。抽彖类通常用于表示一种抽象的概念。 接口可以说是-种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义 时需要使用interface关键字。六、 编程题1、参考答案class Student public String name;public int age;public Student(String namer int age)this name=name;this age=age;public void show()Systemoutprintin(nname: H +
15、name+ n age: H +age);class UnderGraduate extends Studentpublic String degree;public UnderGraduate(String name,int agez String degree)super(namez age);this degree=degree;public void show()Systemoutprintin(nname: H +name+ age: H+age+H degree: H +degree);public class Test01public static void main(Strin
16、g args) Student student = new Student(Mzhangsann, 16);student show();UnderGraduate underGraduate = new UnderGraduate ( lisi z 20 f Mbechalor11); underGraduate show();double areadouble givenValue);class Square implements Shapepublic double area(double sideLength) return sideLength*sideLength;class Ci
17、rcle implements Shapepublic double area(double r) return MathPI*r*r;public class Test02 public static void main(String args) Shape square = new Square();Shape circle = new Circle();System.out printIn(square area(2);System.out.printIn(circle area(3);3、参考答案class NoThisSongException extends Exceptionpu
18、blic NoThisSongException)super();public NoThisSongExceptionString message)super(message);class Playerpublic void playint index)throws NoThisSongException if(index10)throw new NoThisSongException (您播放的毗III不存在); System.out .printin (11 正在播放歌曲);public class Test03 public static void main(String args) P
19、layer player = new Player);try player.play13); catch (NoThisSongException e) System .out printin (” 异常信息为:H+e .getMessage ();第5章多线程一、 填空题1、线程、通信2 ThreadRunnable3、就绪4 synchronized 对象、this5、进程6新建状态(New)就绪状态(Runnable)运行状态(Running)、阻塞状态(Blocked)死亡状态(Terminated)7、 10、 18、 开启一个新线程、run()方法9 wait() notify()
20、 notifyAll()10 setDaemon(true) start()二、 判断题1、错 2、对 3、对* 4、错 5、错三、 选择题1、B 2、AC 3、ABC 4、BC 5、ABD 6、ABC 7、C 8、D 9、AB 10、ABCD四、 程序分析题1、 程序不能编译通过,因为RunHandler类没有实现Runnable接口,因此RunHandler的实例对象不 能作为参数传递给Thread的构造方法。2、 程序不能编译通过,因为Thread的子类A重写的mn()方法的访问级别不能低于父类nm()方法的。 访问级别3、 程序不能编译通过,因为同步方法中调用wait()方法的对彖必须
21、为同步锁对彖。4、t.start();五、简答题1、 种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运彳亍在线 程上的代码。new Thread() public void run().start();另一种就是实现java.lang.Runnable接口,同样是在run()方法屮实现运彳亍在线程上的代码。new Thread(new Runnable()public void run().start 02、 调用sleep。方法,正在执行的线程主动让出CPU去执行其他线程,在sleep。方法指定的时间过后, CPU才会回到这个线程上
22、继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁, 即使当前线程使用sleep()方法让出了 CPU,但其它被同步锁扌当住了的线程也无法得到执行。wait() 在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此 锁的线程可以得到同步锁并运行。生其它线程调用了 notify。方法后,调M wait()方法的线程就会 解除wait状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题1、 参考答案public class MyThread extends Threadpublic MyThread(String name) super(n
23、ame);public void run() System.out.printin(this getName);public static void main(String args) new MyThread ( Threadl11) start();new MyThread ( HThread2 11) . start ();2、 参考答案public class MyRunnable implements Runnable public void run() for (int i = 0; i 50; i+) System .out:, printin (new);public stat
24、ic void main(String args) new Thread(new MyRunnable()start();for (int i = 0; i 100; i+) System.out.printin(nmainn);3、 参考答案public class TestOl public static void main(String args) Teacher t = new Teacher();new Thread (tf ”陈老0帀new Thread (t,高老0帀) start ();new Thread (t r 李老0币”) start ();class Teacher
25、implements Runnable private int notes = 80;public void run() while (true) dispatchNotes () ; /调用售票方法if (notes 0) try Thread, sleep (10) ; /经过的线程休眠10亳秒 catch (InterruptedException e) e.printStackTrace();发岀的笔记System out printin(Thread currentThread() getName() + + notes-);4、参考答案public class Accumulato
26、r extends Thread private int stratNum;public static int sum;public Accumulator(int startNum) this stratNum = startNum;public static synchronized void add(int num) sum += num;public void run() int sum = 0;for (int i = 0; i 10; i+) sum += stratNum + i;add(sum);public static void main(String args) thro
27、ws Exception Thread threadList = new Thread10;for (int i = 0; i v 10; i+) threadListi = new Accumulator(10 * i + 1); threadListi start ();for (int i = 0; i Strings StringBuffer2、 Date Calendar DateFormat3、 getRuntime()4、 sqrt()5、 DateFormat6、 n、e7、 Random、java.util8 length()9、 静态10、 edcba二、 判断题1、错2、
28、错3、对4、错5、对三、 选择题1、C 2、C 3、D 4、C 5、C 6、B 7、C 8、A 9、A 10、B四、 程序分析题1、 程序编译能通过,输出结果如下570-8.0-58.1612、 程序编译能通过,输出结果如下str length():15str .charAt: (0) :dlastlndexOf(m):10substring(2,4):feindexOf(g):5五、 简答题1、 String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类 似String的缓冲区,可以修改字符串的值。2、 Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用屮,往往需要把一个口期
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1