0.076

五煦查题

快速找到你需要的那道考题与答案

中国大学Java程序设计_17章节答案(mooc完整答案)

18 min read

中国大学Java程序设计_17章节答案(mooc完整答案)

第1讲 Java语言与面向对象的中国章节程序设计

Week1 测试

1、Java的大学答案答案三大平台不包括
A、JavaSE
B、程序JavaEE
C、设计JavaME
D、完整Android

2、中国章节Java出现于哪年
A、大学答案答案1990
B、程序1995
C、设计2000
D、完整2005

3、中国章节Java的大学答案答案开发工具是
A、JavaAPI
B、程序JDK
C、设计JRE
D、完整JVM

4、面向对象语言的特点包括:
A、封装
B、继承
C、多态
D、难维护

5、Java相关的网站包括
A、java.sun.com
B、http://www.oracle.com/technetwork/java/index.html
C、java.com
D、jcp.org

6、Java的运行环境叫JRE

7、JDK包括JRE及开发工具

8、JRE包括JVM及API

9、Java是跨平台的语言

10、Java是一种面向对象的语言

11、Java不直接使用指针

12、Java的垃圾回收要由程序员自己来进行

13、Java有丰富的库供我们调用

14、java程序编译的结果(class文件)中包含的是实际机器的CPU指令

第2讲 简单的Java程序

Week2 测试

1、main()的写法是public void main(String[]arg)

2、public类名与文件同名

3、package名与路径同名

4、import表示导入

5、编译程序的基本命令是javac

6、运行程序时java后面跟的是文件名

7、path表示前者是命令(javac及java)的路径

8、path是所要引用的类的路径

9、在javac及java命令行上使用-classpath (或-cp)选项可以引用别的库

10、可以使用jar来打包程序

11、jar文件中的清单信息文件中Main-Class表示主类

12、可以使用javadoc来生成文档

13、Javap 查看类信息及反汇编

14、jar打包常用的参数是cvfm

15、运行jar时,使用 java -jar 文件名.jar

16、文档注释是用/** */

17、@param表示对方法的说明 对方法中某参数的说明

18、使用Scanner的next()方法可以得到一个实数

19、用Integer.parseInt( s )可以用来解析一个整数

20、用Double.parseDouble(s) 可以用来解析一个实数

21、add(xxxx) 可以将按钮等对象加入到Frame中

22、btn.addActionListener可以用来处理事件

23、处理事件的真正函数是actionPerformed()函数

week2互评作业

1、编写一个应用程序,验证以下等式是成立的: 提示:if分支语句、for循环语句的写法与C、C++是相似的。 如果能完成上面的验证,则达到基本要求(可得到基本分数8分)。 较高要求,可根据实际情况选做(可得到附加的2分):找到更多的这样的整数:一些相续正整数的立方和正好等于另一个整数的立方。 提交时,可将java程序或项目压缩后上传附件。如果有什么特殊之处(如算法比较复杂)可以在写一个说明性的文件一起放到压缩文件中。

第3讲 数据运算、流控制和数组

Week3 测试

1、数据类型决定数据的存储方式和运算方式

2、Java中的数据类型分为两大类

3、String属于引用类型

4、Java中引用类型在赋值时,复制的是对象实体。

5、Java中的char是一个字节。

6、Java中的long是4个字节。

7、3.14是float型。

8、0b0001是二进制写法。

9、534L表示长整数。

10、Java中没有无符号数。

11、Java中非零即真。

12、Java是大小写敏感的语言。

13、按惯例,类名首字母大写,变量名首字母小写。

14、字符串连接运算符其实是用append来实现的。

15、^表示乘方运算。

16、15/4的结果是3.75。

17、&表示短路与运算。

18、>>>表示无符号右移。

19、书写表达式要少用或不用括号。

20、javap –c命令可以反汇编代码。

21、程序的三种基本流程是顺序、分支、循环。

22、Java中可以在任一表达式后面加分号构成表达式语句。

23、case后面可以跟变量。

24、循环语句有三种写法。

25、循环一般有五个要素。

26、do.while循环至少执行一次。

27、break及continue后面可以跟一个语句标号。

28、增强的for语句可以方便地遍历数组。

29、数组都有一个属性length。

30、main()的写法是public void main(int argc, String[]argv)

31、声明数组时可以直接指定数组的大小。

32、数组都是引用类型。

33、数组元素都会隐式初始化。

week3互评作业

1、用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。 要求使用数组及增强的for语句。 提示:可以使用一个boolean类型的数组,所以“将某个数i去掉”,可以表示成a[i]=false。当然也可以使用其他方法。 请注意代码风格:类名、变量名的命名,以及必要注释等等; 请上传压缩后的源代码文件(为防上传失败,请同时把代码贴到文本框中)。 评分标准: 使用了数组(3分); 使用增强的for语句(2分); 筛法求素数的功能正确(5分)。

第4讲 类、包和接口

Week4 测试

1、类(class)是组成Java程序的基本要素。

2、类将变量与函数封装到一个类中。

3、方法(method)是类的功能,是用函数来表示的。

4、构造方法(constructor )与类名同名。

5、如果没有定义任何构造方法,系统会自动产生一个构造方法。

6、new表示新建并初始化一个对象。

7、方法重载(overloading)是指多个方法有相同的名字。

8、方法重载是多态(polymorphism)的一种方式。

9、一个类只能有一个直接父类。

10、继承可以实现代码重用,提高开发效率和可维护性。

11、Java中的继承是通过extends关键字来实现的。

12、如果没有extends子句,则该类默认为java.lang.Object的子类。

13、所有的类都是通过直接或间接地继承java.lang.Object得到的。

14、继承关系在UML图中,是用一个箭头来表示子类与父类的关系的。

15、父类的非私有方法可以被子类自动继承。

16、子类也可以重新定义与父类同名的方法,实现对父类方法的覆盖(Override)。

17、使用super访问父类的域和方法。

18、在覆盖父类的方法的同时,使用super可以利用已定义好的父类的方法。

19、子类在构造方法中,可以用super来调用父类的构造方法。

20、在构造方法中,使用super()时,必须放在第一句。

21、子类对象可以被视为其父类的一个对象。

22、如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。

23、包及子包的定义,实际上是为了解决名字空间、名字冲突。

24、同一包中的各个类,默认情况下可互相访问。

25、Java编译器自动导入包java.lang.*。

26、类的访问控制符或者为public,或者默认。

27、将字段用private修饰,从而更好地将信息进行封装和隐藏。

28、使用setter及getter是一种好的编程习惯。

29、static表示静态的、非实例的、类的。

30、static变量可以表示全局变量。

31、如果一个类被abstract所修饰,说明这个类不能被实例化。

32、final所修饰的方法,是不能被子类所覆盖的方法。

33、final所修饰的变量,是只读量。

34、一个字段被static final两个修饰符所限定时,它可以表示常量。

35、在定义final局部变量时,也必须且只能赋值一次。

36、抽象方法在子类中必须被实现,否则子类仍然是abstract的。

37、一旦某个类中包含了abstract方法,则这个类必须声明为abstract类。

38、在类的声明中用implements子句来表示一个类使用某个接口。

39、接口类型是引用类型。

40、在接口中定义的常量具有public, static, final的属性。

41、一个文件中最多只能有一个package语句。

42、在接口中定义的方法具有public, abstract的特点(Java8以前)。

43、Java8中,在接口中可以有static的方法,也可以有方法体的方法。

44、enum表示枚举。

45、一个类只能实现一个接口。

46、abstract类必须包含abstract方法。

47、接口不能有父接口。

48、java中的enum是整数。

49、final abstract可以同时修饰一个方法。

50、一个文件中最多只能有一个class定义。

51、构造方法是可以继承的。

52、this和super是两个不同的对象。

53、子类不能Overload与父类同名的方法。

54、字段(field)是类的属性,是用函数来表示的。

55、构造方法(constructor )的返回类型是void。

56、作何一个类,系统都会自动产生一个不带参数的构造方法。

57、方法签名(signature)包括参数的类型及参数的名字。

58、private可以修饰类、也可以修饰类的成员(字段、方法)。

59、protected修饰的成员,不能在包中访问,只能在子类中访问。

60、如果省略访问控制符,则表示private。

61、static函数中可以使用this。

62、static函数可以直接使用类名来访问,不能用对象实例来访问。

63、import static可以导入任何一个类。

64、如果一个类被final所修饰,说明这个类不能被实例化。

65、如果一个类被abstract所修饰,说明这个类没有构造方法。

Week4 互评作业

1、编写一个小的程序,其中定义一些接口、类、抽象类,定义它们的成员(字段及方法), 要求使用使用setter/getter, static, final, abstract,@Override等语法要素,并写一个main函数来使用它们。这些类、接口可以是围绕以下选题之一 飞翔世界:来一次飞翔接力(即多个可飞翔的对象依次调用); 动物世界:来一次吃西瓜大赛; 图书馆:模拟一天的借阅过程; 学校:模拟选课过程; 等等 要求写个简要说明。

第5讲 深入理解Java语言

Week5 测试

1、局部变量是方法中定义的变量或方法的参变量。

2、局部变量存在于栈中。

3、当方法调用结束,方法中的局部变量就结束其生命了。

4、字段变量可以自动赋初值。

5、main函数也可以写为public static void main( String…argv){ }。

6、不定长参数实际上可以理解为数组。

7、javap –c 命令可以反汇编Java类中的指令。

8、多态是指一个程序中相同的名字表示不同的含义的情况。

9、overload是多态的一种。

10、override及虚方法调用是多态的一种。

11、虚方法调用是由对象实例的类型来动态决定的。

12、虚方法调用可以理解为方法的动态绑定。

13、static,private,final方法不是虚方法。

14、static方法调用是由所声明的变量类型所决定,与实例无关。

15、在构造方法中,如果没有this及super,则编译器自动加上super()。

16、在构造方法在执行时,令所有父类的构造方法都得到调用。

17、在构造方法在执行时,一定会调用Object的构造方法。

18、创建对象时,可以用{ { }}这样的语法来对字段进行赋值。

19、实例初始化,先于构造方法{ }中的语句执行。

20、静态初始化,在第一次使用这个类时要执行。

21、Java中自动进行垃圾回收。

22、系统在回收时会自动调用对象的finalize() 方法。

23、由于finalize()方法的调用时机并不确定,所以一般不用finalize()。

24、try-with-resources语句可以自动执行close()方法。

25、内部类中访问外部类的字段可以用“外部类名.this.字段”的方式。

26、局部类及匿名类可以访问final局部变量。

27、匿名类不取名字,直接用其父类或接口的名字。

28、匿名类在定义时就创建了一个实例。

29、在用new创建内部类实例时,要在 new前面冠以对象变量。

30、匿名类使用父类的构造方法。

31、用到界面的事件处理中可以使用匿名类。

32、匿名类经常用于做方法的参数。

33、多态是在编译时就能确定的。

34、字段是方法中定义的变量或方法的参变量。

35、局部变量可以自动赋初值。

36、对于引用型变量,传递的值复制对象实体。

37、静态初始化,在每次创建对象实例时都会执行一次。

38、实例初始化,先于静态初始化执行。

39、抽象类不能有构造方法。

40、编译器会为所有的类加一个default构造方法,即使用户已定义了构造方法。

41、虚方法调用是指编译时就决定了调用哪个类中的哪个方法。

42、Java中的方法默认不是虚方法,需要用特殊的关键字才能表明是虚方法。

43、Java中使用delete来清除创建的对象。

44、System.gc()方法强制立即执行垃圾回收。

45、内部类中不能访问外部类的private字段及方法。

46、匿名类可以定义构造方法。

Week5 互评作业

1、附件是一个模拟事件消息订阅的程序,请阅读并修改。 主要是加上一个自已的订阅者,并且该订阅者要用匿名类来实现。(基本要求占8分) 如果可以,也加上用Lambda来实现的订阅者。(较高要求,占2分)。

第6讲 异常处理

Week6 测试

1、抛出异常,使用关键字throw。

2、捕获异常,使用关键字catch。

3、Error是Throwable的子类。

4、getCause()可以得到异常的内部原因。

5、RuntimeException及其子类,可以不明确处理。

6、非RuntimeException及其子类,必须明确处理。

7、try-with-resource语句中自动加了close()方法的调用。

8、用户自定义异常类继承自Exception类或某个子Exception类。

9、assert表示断言。

10、assert后面可以跟一个boolean类型的表达式。

11、要使assert起作用,则在运行时,使用选项(-ea,或-enableassertions)。

12、单元测试是保证代码质量的一种手段。

13、现在很多Java集成开发工具都提供了对JUnit的支持。

14、@Test来标注测试函数。

15、assertEqauls表示程序要保证两个参数要相等。

16、程序中的错误通常可以分成三大类:语法错、运行错、逻辑错。

17、语法错可以由编译器发现。

18、运行时错可以由try-catch方式进行处理。

19、程序的调试包括断点、跟踪、监视等手段。

20、catch多个异常时,子类异常要排在父类异常的后面。

21、finally语句是指没有异常出现时要执行的语句。

22、如果有return语句,finally语句应不会执行。

23、逻辑错可以由编译器发现。

24、try-with-resource语句中的close()方法只有当异常发生时才会调用。

25、若父类中的方法声明了throws异常,则子类Override时一定也要throws异常。

26、若父类中的方法声明了throws异常,则子类Override时可以throws更一般的异常。

27、在方法的签名后面用关键字throw来声明该方法会抛出异常。

28、Exception是Throwable的父类。

Week6 互评作业

1、Java的异常是比较独特的,它是程序安全稳定的重要措施。本次作业要求自定义异常并使用异常。 (1)自定义一个异常类,注意其继承自系统的异常类,并要求有构造方法; (2)使用自定义的异常:要求在一个函数中抛出异常,在另一段程序中调用这个函数并捕获异常。 评分标准: 自定义异常类,继承自系统的异常(2分); 异常类有构造方法(2分); 异常类的构造方法中有一个链接内部异常(1分); 有抛出异常(1分); 在抛出异常的方法中有声明throws异常(1分); 有异常捕获和处理(2分); 整体程序比较合理(1分)。

第9讲 流、文件及基于文本的应用

Week9 测试

1、流可分为输入流与输出流。

2、流可分为字符流与字节流。

3、流可分为节点流与处理流。

4、字符流在处理时要注意字符编码。

5、Writer类写入的是字符(char),而不是字节。

6、一个流对象经过其他流的多次包装,称为流的链接。

7、处理流的构造方法总是要带一个其他的流对象作参数。

8、InputStreamReader可以将流包装成Reader。

9、BufferedReader可以调用readLine()方法。

10、ByteArrayOutputStream可以相当于内存流。

11、DataOutputStream可以以二进制的方式写入double。

12、ObjectOutputStream可以写入对象。

13、使用java.nio.file.Files的readAllLines()方法可以读入整个文本文件。

14、JDK1.7对nio进行了较大的改进。

15、序列化要求对象实现 Serializable 接口。

16、使用流一般都要考虑IOException。

17、使用流一般都要考虑在线程中来进行。

18、在线程中更新图形化用户界面要注意使用invokeLater()方法。

19、URL类可以获取网页的内容。

20、正则表达式主要的应用包括:匹配验证、分割、查找、替换等。

21、在Java中,将目录也当作文件处理。

22、File对象的list()方法可以列出子目录。

23、RandomAccessFile,可以实现对文件的随机读写操作。

24、正则表达式的基本写法是:字符{ 数量}位置。

25、正则表达式相关的类位于于javax.util.regex。

26、正则表达式中\B表示单词边界。

27、正则表达式中\S表示空白。

28、正则表达式中.表示字符出现0次或1次。

29、File对象的list()方法返回的是File对象的数组。

30、序列化(serialize)是将对象读入到内存中。

31、任何对象都可以不需要声明序列化,因为 Serializable 接口没有方法。

32、System.out 为PrintWriter类型。

33、字符流中每个字符占两个字节。

34、InputStream类最重要的的方法是write()。

第10讲 图形用户界面

Week10 测试

1、Swing 比AWT功能更强,界面更丰富。

2、大部分Swing的Jxxx组件对应于AWT中的xxx组件。

3、JComponent组件都是Container。

4、JFrame是Frame的子类。

5、applet是Panel的子类。

6、swing中的顶层容器包括JFrame, JDialog及JApplet。

7、Eclipse中可以进行可视化的窗体设计。

8、默认情况下,点击JFrame的关闭按钮并不会关闭它。

9、setDefaultCloseOperation(EXIT_ON_CLOSE);后点击关闭按钮可以退出。

10、JFrame中有一个getContentPane()方法来得到其内容面板。

11、BorderLayout最多可以加五个子组件。

12、FlowLayout表示流式布局。

13、JFrame的默认布局是BorderLayout。

14、JApplet的默认布局是BorderLayout。

15、setLayout(null);表示绝对布局。

16、事件监听器是一些接口,其中含有一些方法。

17、事件getSource()方法得到的事件源对象。

18、不同的监听器所带的事件参数的类型可能不同。

19、事件参数中包含有事件发生的详情。

20、事件适配器类(Adapter)可以简化实现监听器。

21、不同的组件可以加同一个事件监听对象。

22、SwingUtilities.invokeLater()方法可以在别的线程中更新界面。

23、将一个组件加上JScrollPane能实现自动滚动功能。

24、JTextPane能实现RTF文本的编辑。

25、JOptionPane能实现弹出消息对话框的功能。

26、JFileChooser能实现文件选择器的功能。

27、JMenubar、JMenu、JMenuItem能实现菜单的功能。

28、JList可以实现列表框功能。

29、JComboBox可以实现下拉框功能。

30、JCheckBox可以实现复选框功能。

31、JToolbar可以实现工具条功能。

32、JMenuItem是AbstractButton的子类。

33、requestFocus()可以让对象获得焦点。

34、MouseListener可以处理鼠标按键事件。

35、如果要决定applet的绘制方法可以Override它的paint()方法。

36、applet的可以用getParameter()方法得到环境参数。

37、运行applet必须有Java的运行环境。

38、KeyListener可以处理鼠标按键事件。

39、实现事件监听器不能使用匿名类。

40、所有的事件监听接口都可以用Lambda表达式。

41、按钮可以使用addActionListener来处理点击后要做的事情。

42、事件Adapter是一些接口,其中含有一些方法。

43、Applet的默认布局是BorderLayout。

44、GridLayout最多可以加五个子组件。

45、JFrame中不能直接用add()方法来添加子组件。

46、JButton是Button的子类。

47、有了Swing,就不需要awt包了。

48、一个组件最多可以加一个同类的事件监听对象。

第8讲 多线程

Week8 测试

1、线程体的本质是run()方法。

2、线程类是Thread类来表示的。

3、线程体可以位于Thread或Runnable中的run()方法。

4、线程体可以用Lambda表达式来表示。

5、Java从语言级别支持多线程。

6、启动线程用start()方法。

7、多个线程可以同时执行。

8、设定线程优先级用setPriority()方法。

9、设定一个标记变量是常用的方法来决定是否结束线程。

10、并发API位于java.util. concurrent包及其子包中。

11、AtomicInteger 类表示原子变量。

12、ConcurrentHashMap类是线程安全的类。

13、在线程中更新图形化界面,要调用SwingUtilites..invokeLater()方法。

14、java.util.Timer类可以实现按周期重复执行一定任务。

15、javax.swing.Timer类可以实现按周期重复执行一定任务。

16、后台线程(deamon)不会自动结束。

17、垃圾回收线程是优先级很高的线程。

18、ArrayList 类是线程安全的类。

第11讲 网络、多媒体和数据库编程

Week11 测试

1、HttpClient中获取网络信息可以使用Request类的Get()方法。

2、使用URL类可以获取网络信息。

3、获取网络信息后经常需要用正则表达式来处理。

4、在Eclipse中可以引用第三方的库。

5、客户端要与服务端相连,则客户端需要建立Socket对象。

6、服务端程序经常需用线程来处理多个客户。

7、Canvas的 paint () 方法带一个Graphics参数。

8、Font类表示字体。

9、Polygon 表示一个多边形。

10、利用Graphics类的drawImage()方法显示图像。

11、BufferedImage 对象的getGraphics() 可以得到一个绘图对象。

12、ImageIO类的read及write方法可以表示图像的读写。

13、播放mp3文件可以使用JMF,还可以使用第三方库。

14、使用数据库管理的数据具有共享性、独立性、完整性等优点。

15、关系型数据库中主要以二维表的形式表示数据。

16、SQL是操作数据库的标准语言。

17、SQL中表示查询是select语句。

18、SQL中表示删除是delete语句。

19、SQL中update语句表示修改记录。

20、SQL中create table语句可以创建一个表。

21、SQL中语句可以创建一个表。

22、JDBC中Connection表示连接。

23、JDBC中Statement表示语句。

24、JDBC中用Class.forName()来注册驱动程序。

25、使用PreparedStatement比Statement更安全一些。

26、在数据库应用中要将用户输入的参数放入到SQL语句中。

27、JTable需要数据模型来决定要显示的数据。

28、在数据库应用中一般应将数据访问对象DAO定义成单独的类。

29、ORMapping是数据库中应用中常见的技术。

30、服务端需要调用Socket类的accept方法接受客户呼叫。

31、JDBC中RecordSet表示结果集。

32、SQL中delete语句可以删除一个表。

33、SQL中add语句表示增加记录。

34、JPanel的 paintComponent() 方法带一个Graphics2D参数。

35、Graphics类是Graphics2D的子类。

36、画一个填充的矩形,使用Graphics类的drawRect方法。

37、画字符串,使用Graphics类的print方法。

中国大学Java程序设计_17

随着信息技术的普及和发展,计算机编程成为了一个越来越热门的领域。而Java作为一种跨平台、面向对象的编程语言,已经成为了程序员们最为常用的编程语言之一。中国大学Java程序设计课程就是一门致力于教授学生如何使用Java进行程序设计的课程。

课程概述

中国大学Java程序设计课程是一门以Java为基础,介绍计算机编程的基础知识的课程。该课程主要涵盖了Java编程语言、面向对象编程、数据结构、算法和软件工程等内容。

课程教材

中国大学Java程序设计的教材为《Java程序设计:从入门到精通》(第三版,明日科技出版社出版)。该教材以入门级别为起点,系统地介绍了Java编程语言以及Java语言的各种特性和应用。同时,该教材也覆盖了Java高级编程、网络编程、GUI编程和数据库编程等内容。

课程教学方式

中国大学Java程序设计课程采用传统的讲解+实践的教学方式。课程的讲解环节主要由教师进行,而实践环节则由学生自主完成相关作业和项目。此外,该课程还强调了编程实践和团队合作的重要性,鼓励学生利用课余时间参加相关编程比赛和项目。

课程评价方式

中国大学Java程序设计的评价方式主要由平时作业、期末考试和实践项目组成。其中,平时作业和期末考试主要考察学生对Java编程语言和相关知识的掌握情况。实践项目则主要考察学生们的编程实践能力和团队协作能力。

课程收获

中国大学Java程序设计课程所带来的收获主要有以下几个方面:

  1. 掌握Java编程语言的基础知识和应用。
  2. 了解面向对象编程、数据结构和算法等专业知识。
  3. 提升编程实践能力和团队协作能力。
  4. 为将来从事计算机编程相关工作做好铺垫。

总结

中国大学Java程序设计课程是一门涵盖了Java编程语言、面向对象编程、数据结构、算法和软件工程等多方面内容的课程。该课程旨在帮助学生掌握Java编程语言,了解计算机编程的基础知识,提升编程实践能力和团队协作能力。通过该课程的学习,学生们可以为将来从事计算机编程相关工作做好铺垫。