1、& | | 7、 08、 59、 3410、 56 二、判断题1、 错 2、对 3、错 4、对 5、错三、选择题1、 AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、A 9、B 10、A 四、程序分析题1、 编译不通过。int值4和b相加时,由于变量b的类型为byte,取值围没有int类型大,存不下int类型的值,因此编译不通过。2、 编译不通过。这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。3、 打印结果为:3。4、 打印结果为: 9 8 7五、问答题1、Java语言的八种基
2、本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&”进行连接,当“&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x 0表达是会发生被0除异常,因为x / y的表达式执行了
3、。而boolean b = x 0是不会出现这种异常的,因为x y为false,表达式x / y不会执行。3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。六、编程题1、参考答案public class Test01 int sum = 0; for (int i = 1; i 0) y = x + 3; else if (x = 0) y = 0; else y = x * x - 1; return y;3、参考答案public class Test03 int arr = 25, 2
4、4, 12, 76, 101, 96, 28 ; for (int i = 0; arr.length - 1; / 定义层循环 for (int j = 0; j arrj + 1) / 比较相邻元素 / 下面的三行代码用于交换两个元素 int temp = arrj; arrj = arrj + 1; arrj + 1 = temp; arr.length; System.out.print(arri + / 打印元素和空格第3章 面向对象(上)1、封装、继承、多态 2、new 3、成员变量、局部变量4、类、类5、this6、finalize()7、静态变量8、部类9、javadoc10、
5、private1、对 2、对 3、错 4、对 5、错1、B 2、D 3、B 4、ABC 5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D 1、程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问。2、程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。3、程序能够编译通过,运行的结果为“inner”。五、简答题1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时 候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声 明、在方法中不能
6、使用return语句返回一个值2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。class Student private String name; private double grade; public Student() public Student(String name, double grade) this.name = name; this.grade = grade; public String getName() return name; public void setName(String name) public double getGrade() ret
7、urn grade; public void setGrade(double grade) Student stu1 = new Student(); stu1.setName(zhangsan stu1.setGrade(99); Student stu2 = new Student(lisi, 100);class Father private String name = zhangjun; class Child public void introFather() System.out.println(My Fathers name is + name); Father.Child ch
8、ild = new Father().new Child(); child.introFather();第4章 面向对象(下)1、继承2、方法,抽象类3、import4、子类、父类、基类5、Exception6、final7、super8、 Object9、try、catch10、jar cvf,java jar 1、错 2、对 3、错 4、对 5、对1、B 2、C 3、ABC 4、 ABCD 5、C 6、AC 7、C 8、D 9、A 10、B1、程序编译能通过,这是因为int x = 2 / 0; System.out.println(x);这两条语句使用了try块,捕获了程序因为除以0而产
9、生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。2、程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。shout()方法中同样使用了final关键字,使得该方法不能被重写。3、程序编译能通过,输出结果为“动物叫!”和“汪汪”,因为在程序中调用shout()方法时,首先会通过super.shout()调用父类的方法说出“动物叫!”之后再输出“汪汪”4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中
10、并没有重新实现,所以这也是错误的。1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。3、在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象
11、方法。由于接口的特殊性,在定义时需要使用interface关键字。 public String name; public int age; public Student(String name,int age) this.name=name; this.age=age; public void show()name:+name+ age:+age);class UnderGraduate extends Student public String degree; public UnderGraduate(String name,int age,String degree) super(name
12、, age); this.degree=degree;+age+ degree:+degree);public class Test01 Student student = new Student(, 16); student.show(); UnderGraduate underGraduate = new UnderGraduate(, 20, bechalor underGraduate.show();interface Shape double area(double givenValue);class Square implements Shape public double are
13、a(double sideLength) return sideLength*sideLength; class Circle implements Shape public double area(double r) return Math.PI*r*r; Shape square = new Square(); Shape circle = new Circle(); System.out.println(square.area(2); System.out.println(circle.area(3);class NoThisSongException extends Exception
14、 public NoThisSongException() super(); public NoThisSongException(String message) super(message);class Player public void play(int index)throws NoThisSongException if(index10) throw new NoThisSongException(您播放的歌曲不存在正在播放歌曲 Player player = new Player(); try player.play(13); catch (NoThisSongException
15、e) 异常信息为:+e.getMessage();第5章 多线程1、 线程、通信2、 Thread、Runnable3、 就绪4、 synchronized、对象、this5、 进程6、 新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Terminated)7、 10、18、 开启一个新线程、run()方法9、 wait()、notify()、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
16、、D 9、AB 10、ABCD1、程序不能编译通过,因为RunHandler类没有实现Runnable接口,因此RunHandler的实例对象不能作为参数传递给Thread的构造方法。2、程序不能编译通过,因为Thread的子类A重写的run()方法的访问级别不能低于父类run()方法的。访问级别3、程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象。4、t.start();1、一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。new Thread() public void run().st
17、art();另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。new Thread(new Runnable().start() 2、调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行
18、。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。public class MyThread extends Thread public MyThread(String name) super(name); public void run() System.out.println(this.getName(); new MyThread(Thread1).start();Thread2public class MyRunnable implements Runnable 50;new new Thread(new
19、 MyRunnable().start();main Teacher t = new Teacher(); new Thread(t, 老师高老师class Teacher implements Runnable private int notes = 80; while (true) dispatchNotes(); / 调用售票方法 if (notes try Thread.sleep(10); / 经过的线程休眠10毫秒 catch (InterruptedException e) e.printStackTrace(); System.out.println(Thread.curren
20、tThread().getName() + -发出的笔记 + notes-);4、参考答案public class Accumulator 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; 10; sum += stratNum + i; add(sum); public static void
21、main(String args) throws Exception Thread threadList = new Thread10; threadListi = new Accumulator(10 * i + 1); threadListi.start(); threadListi.join();Sum is : + sum);第6章 JavaAPI1、 String、StringBuffer2、 Date、Calendar、DateFormat3、 getRuntime()4、 sqrt()5、 DateFormat6、 、e7、 Random、java.util8、 length()9、 静态10、edcb
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1