《Java基础入门》_课后习题答案.pdf

上传人:无*** 文档编号:90864031 上传时间:2023-05-18 格式:PDF 页数:15 大小:1.58MB
返回 下载 相关 举报
《Java基础入门》_课后习题答案.pdf_第1页
第1页 / 共15页
《Java基础入门》_课后习题答案.pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《《Java基础入门》_课后习题答案.pdf》由会员分享,可在线阅读,更多相关《《Java基础入门》_课后习题答案.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 Java基础入门课后习题答案第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是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,

2、你的计算机上必须且只需安装JREoJDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDKO JDK中已经包含了 JRE部分,初学者安装JDK后不必再去下载和安装JRE 了。四、编程题public class HelloWorld public static void main(String args)System.out.printin(这是第一个 Java 程序!);第2章 Java编程基础一、填空题1 class2、

3、true 和 false3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、86、&I 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 的类型为b y te,取值范围没有int类型大,存不下int类型的值,因此编译不通过。2、编译不通过。这是因为y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y=x;语句时已经超过了 y 变量的作用域,所以

4、编译无法通过。3、打印结果为:3o4、打印结果为:987五、简答题1、Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4 个字节。long长整型,占8 个字节。float单精度浮点型,占4 个字节。double双精度浮点型,占 8 个字节。char字符型,占两个字节 boolean型,表示逻辑值,有 true和 false两个值,分别占一个字节。2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&”进行连接,当“&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x=

5、2,y=0;boolean b=x 0 表达是会发生被0 除异常,因为x/y 的表达式执行了。而 boolean b=x 0 是不会出现这种异常的,因为x y 为 false,表达式x/y 不会执行。3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。六、编程题1、参考答案public class TestOl public static void main(String args)int sum=0;for(int i=1;i 0)y=x+3;else if(x=0)y=0;else y=

6、x*x-1;)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 arr.length-1;i+)/定义内层循环for(int j=0;j arr j +1)/比较相邻元素/下面的三行代码用于交换两个元素int temp=arrj;arr j=arr j +1;arrj +1=temp;)for(int i=0;i private二、判断题1、对2、对3、错4、对5、错三、选择题1、B 2、D 3、B 4、ABC

7、5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D四、程序分析题1、程序不能编译通过,因为在类A 中的成员变量secret用 private修饰,所以在类Testi中无法访问。2、程序不能编译通过,因为在静态方法method。中不能访问非静态成员变量X。3、程序能够编译通过,运行的结果为“inner”。五、简答题1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值2、单例模式可以保证在整个程序运行期间针对该类只

8、存在一个实例对象。六、编程题1、参考答案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)this.name=name;public double getGrade()return grade;)public void setG

9、rade(double grade)this.grade=grade;)public class TestOl public static void main(String args)Student stul=new Student();stul.setName(zhangsan);stul.setGrade(99);Student stu2=new Student(lisi,100);2、参考答案class Father private String name=zhangjun1;class Child public void introFather()System.out.printin(

10、My Fathers name is +name);)public class Test02 public static void main(String args)Father.Child child=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

11、、ABCD 5、C 6、AC 7、C 8、D 9、A 10、B四、程序分析题1、程序编译能通过,这是因为intx=2/0;System.out.println(x);这两条语句使用了 try块,捕获了程序因为除以0 而产生的异常情况,之后程序会继续向下执行,输出 进入catch代码块”,“进入finally代码块”。2、程序编译不通过,这是因为在程序中使用了 final关键字修饰Animal类,使得Animal类不能被继承。shout。方法中同样使用了 final关键字,使得该方法不能被重写。3、程序编译能通过,输出结果为“动物叫!”和“汪汪”,因为在程序中调用shout。方法时,首先会通过s

12、uper.shout。调用父类的方法说出“动物叫!”之后再输出“汪汪”4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。五、简答题1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。3、在 Jav

13、a中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。六、编程题1、参考答案class Student public String name;public int age;public Student(String name,int age)this.name=name;this.age=age;)public void show()System.out.

14、printin(name:H+name+age:H+age);)class UnderGraduate extends Studentpublic String degree;public UnderGraduate(String name,int age,String degree)super(name,age);this.degree=degree;)public void show()System.out.printIn(name:+name+age:+age+degree:+degree);)public class TestOl(public static void main(Str

15、ing args)Student student=new Student(zhangsan,16);student.show();UnderGraduate underGraduate=new UnderGraduate(lisi,20,bechalor);underGraduate.show();)2、参考答案interface Shape double area(double givenValue);class Square implements Shapepublic double area(double sideLength)return sideLength*sideLength;)

16、class Circle implements Shapepublic double area(double r)return Math.PI*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 Except

17、ionpublic NoThisSongException()super();public NoThisSongException(String message)super(message);)class Playerpublic void play(int index)throws NoThisSongExceptionif(index10)throw new NoThisSongException(”您播放的歌曲不存在“);)System.out.printin(正在播放歌曲);)public class Test03 public static void main(String args

18、)Player player=new Player();try(player.play(13);catch(NoThisSongException e)System,out.printin(异常信息为:n+e.getMessage();)第5章多线程一、填空题1、线程、通信2 Thread Runnable3、就绪4,synchronized 对象、this5、进程6、新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Terminated)7、10、18、开启一个新线程、run()方法9、wait。、notify()-notif

19、yAll()10 selDaemon(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 重写的run()方法的访问级别不能低于父类run()方法的。访问级别3、程序不能编译通过,因为同步方法中调用wait。方法的对象必须为同步锁对象。4、t.st

20、art();五、简答题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()2、调用sleep。方法,正在执行的线程主动让出CPU去执行其他线程,在 sleep。方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了

21、同步锁,sleep。方法并不会释放锁,即使当前线程使用sleep。方法让出了 C P U,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了 notify。方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题1、参考答案public class MyThread extends Threadpublic MyThread(String name)super(name);)public void run()S

22、ystem.out.printIn(this.getName();public static void main(String args)new MyThread(Threadl).start();new MyThread(Thread2).start();)2、参考答案public class MyRunnable implements Runnable public void run()for(int i=0;i 50;i+)System.out.printin(new);)public static void main(String args)new Thread(new MyRunna

23、ble().start();for(int i=0;i 100;i+)System.out.printin(main);)3、参考答案public class TestOl public static void main(String args)Teacher t=new Teacher();new Thread(t,“陈老师“).start();new Thread(t,高老师).start();new Thread(t,”李老师).start();)class Teacher implements Runnable private int notes=80;public void run(

24、)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 Accumulator extends Thread private int stratNum;public static int sum;public Accum

25、ulator(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)throws Exception Thread threadList=new Thread10;for(int i=0;i 10;i+)threadListi=new Accumulato

26、r(10*i+1);threadListi.start();)for(int i=0;i StringBuffer2、Date、Calendar DateFormat3、getRuntime()4、sqrt()5、DateFormat6、五、e7、Random java.util8、length()9、静态10 edcba二、判断题1、错2、错3、对4、错5、对三、选择题1、C 2、C 3、D 4、C 5、C 6、B 7、C 8、A 9 A 10、B四、程序分析题1、程序编译能通过,输出结果如下57.0-8.0-58.1-6.12、程序编译能通过,输出结果如下str.length():15st

27、r.charAt(0):dlastlndexOf(m):10substring(2,4):feindexOf(g):5五、简答题1、String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似 String的缓冲区,可以修改字符串的值。2、D ate类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了 Date类,该类中定义了 系列用于完成日期和时间字段操作的方法。Calendar的 getTime()方法,getTim

28、e()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收个Date对象,将 Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和 Calendar对象之间的转换。六、编程题1、参考答案public class TestOl public static void main(String args)String str=HelloWorld;/字符串转成char数组char ch=str.toCharArray();StringBuffer buffer=new Stri

29、ngBuffer();for(int i=str.length()-1;i=0;i-)if(chi=A,&chi=1 a,&chi=1z)buffer.append(String.valueOf(chi).toUpperCase();)System.out.printin(buffer.toString();)2、参考答案import j ava.text.DateFormat;import java.util.Calendar;import java.util.Date;public class Test02 public static void main(String args)Calen

30、dar calendar=Calendar.getInstance();calendar.add(Calendar.DATE,100);Date date=calendar.getTime();DateFormat format=DateFormat.getDatelnstance(DateFormat.FULL);String string=format.format(date);System.out.printIn(string);)3、参考答案import j ava.util.Random;public class Test03 public static void main(Stri

31、ng args)Random rand=new Random();int num=new int 5;for(int i=0;i Map6、键、值7 Listiterator8、ArrayList LinkedList,HashSet TreeSet,HashMap TreeMap9、put。、get()10、Collectionsx Arrays二、判断题1、错 2、对 3、对 4、错 5、对三、选择题1、BC 2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B四、程序分析题1、程序可以编译通过,输出结果是“a、b、c,因为TreeSet集合不允许存放重复元

32、素,第 2 次增加的元素c 会覆盖之前存入的元素c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。2、程序不可以编译通过,这是由于向ArrayList集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用Object类型,而不能使用String类型。3、程序可以编译通过,但是什么也没有打印。使 用 Listiterator进行从后向前的遍历集合,可以使用以下两种方法,一是使用listlterator(int index)方法将索引index的值设置为集合元素的数目,也就是 Listiterator it=list.listlterator(3);,二是将程序先从前向后

33、遍历,然后再从后向前遍历。4、程序编译不通过,由于Map集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用Iterator的 remove。方法。五、简答题1、为了使程序能方便的存储和操作数目不固定的组数据,JDK提供了 套类库,这些类都位于java.util包中,统称为集合。集合框架中包含3 个接口,分别是List、Set Map。2、List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和 LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和 TreeSet。M a

34、p的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap3、Collection是 个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。六、编程题1、参考答案import java.util.*;public class TestOl(public static void main(String args)ArrayList list=new ArrayList();for(int i=0;i 10;i+)list.add(nA+i);)Ite

35、rator it=list.iterator();while(it.hasNext()Object obj=it.next();System.out.printin(obj);)2、参考答案import java.util.*;public class Test02(public static void main(String args)HashSet hashSet=new HashSet();Person pl=new Person(Jack,25);Person p2=new Person(Rose,23);Person p3=new Person(1 1 Jack,27);hashSe

36、t.add(pl);hashSet.add(p2);hashSet.add(p3);for(Object obj:hashSet)Person p=(Person)obj;System.out.printin(p.name+:+p.age);)class PersonString name;int age;public Person(String name,int age)super);this.name=name;this.age=age;)public int hashCode()return name.hashCode();)public boolean equals(Object ob

37、j)if(this=obj)return true;if(obj=null)return false;Person other=(Person)obj;return other.name.equals(this.name);)3、参考答案import java.util.*;public class Test03 public static void main(String args)TreeMap map=new TreeMap(new MyComparator();map.put(1,Lucy);map.put(2 ,Lucy11);map.put(3 z John1);map.put(4z Smith);map.put(5,Amanda);for(Object key:map.keyset()System.out.printin(key+:+map.get(key);)class MyComparator implements Comparator public intStringStringcompare(Object obj1,Object obj2)elel=ele2(String)obj1;(String)obj 2;return pareTo(elel);)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁