北理网上作业_Java
- 格式:docx
- 大小:41.36 KB
- 文档页数:5
北理《Java技术与应用》FAQ(六)第六章包、接口与异常一、什么是例外?例外是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻止程序的正常运行。
为了加强程序的鲁棒性,程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。
C语言中,通过使用if语句来判断是否出现了例外,同时,调用函数通过被调用函数的返回值感知在被调用函数中产生的例外事件并进行处理。
全程变量ErroNo常常用来反映一个异常事件的类型。
但是,这种错误处理机制会导致不少问题。
二、Java处理例外的方法是什么?Java 通过面向对象的方法来处理例外。
在一个方法的运行过程中,如果发生了例外,则这个方法生成代表该例外的一个对象,并把它交给运行时系统,运行时系统寻找相应的代码来处理这一例外。
我们把生成例外对象并把它提交给运行时系统的过程称为抛弃(throw)一个例外。
运行时系统在方法的调用栈中查找,从生成例外的方法开始进行回朔,直到找到包含相应例外处理的方法为止,这一个过程称为捕获(catch)一个例外。
三、类Throwable包括什么?类Throwable有两个直接子类:Error和Exception。
Error类对象(如动态连接错误等),由Java虚拟机生成并抛弃。
通常,Java程序不对这类例外进行处理。
Exception类对象是Java程序处理或抛弃的对象。
它有各种不同的子类分别对应于不同类型的例外。
其中类RuntimeException代表运行时由 Java 虚拟机生成的例外,如算术运算例外ArithmeticException(由除0错等导致)、数组越界例外ArrayIndexOutOfBoundsException等;其他则为非运行时例外,如输入输出例外IOException等。
四、什么是运行时例外?运行时例外是由Java 运行时系统在程序的运行过程中检测到的,它可能在程序的任意部位发生,而且其数目可能很大,因此Java编译器允许程序不对它进行处理。
北理《Java技术与应用》FAQ(三)第三章表达式和流程控制一、JAVA是如何进行程序的控制的?Java对程序的控制主要是通过控制语句实现的。
JAVA的几个控制结构是从C语言借鉴的。
分支结构if/else分支结构if (Boolean) {statemanets;}else{statements;}switch分支结构switch(expr1) {case expr2: statements; break;case expr3: statements; break;default: statements; break;}循环结构for循环结构for (init expr1;test expr2;increment expr3) {statements;}While循环结构While(Boolean) {statements;}Do循环结构do {statements;}while (Boolean);一般顺序控制 break [label] continue [label] reutrn expr; label:statement;下面是一个for循环程序例子,画几条线,分别用红,绿,蓝颜色,这段程序可能是Java 函数的一部分:int count;for (count=1;count<=12;count++) {switch (count % 3) {case 0: setColor(Color.red); break;case 1: setColor(Color.blue); break;case 2: setColor(Color.green); break;}g.drawLine(10,count*10,80,count*10);二、JAVA对象有效范围和废物自动回收如何解释?对象有一定的生命期并在它的生命期间使用资源,当一个对象不再被使用时,它应释放内存,避免内存溢出。
在Java里,收集和释放内存是一个叫自动废品回收站的线程的责任。
北理工《Java技术与应用》在线作业-00048北理工《Java技术与应用》在线作业-0004下列有关一个Java源文件的叙述,正确的是?()A:可以有2个以上package语句B:只能有1个类定义C:可以有2个以上import语句D:可以有2个以上public类答案:CFile类中用____函数获取文件的绝对路径。
A:path()B:getPath()C:getAbsolutePath ( )D:getName ( )答案:C当浏览器重新返回 Applet 所在页面时,将调用 Applet 类的方法是____。
A:start()B:init()C:stop()D:destroy()答案:A以下session的描述错误的是____。
A:session对象保存客户端信息。
B:每个session对应多个客户信息。
C:session是有生命周期的。
D:当关闭浏览器是session结束。
答案:B组件____是构成图形用户界面的基本成分和核心元素。
A:componentB:containerC:pannelD:窗口(window)答案:AURL对象中____函数获取当前的资源文件长度。
A:getUrl()B:getContentLength()C:getContenttype()D:getLength()答案:Bpublic class Person{ int arr[]=new int[10]; public static void main(String args[]){ System.out.println(arr[1]); } } 正确的说法是A:编译时将产生错误B:编译时正确,运行时将产生错误C:输出零D:输出空答案:B下列关于 Java Application 与 Applet 的说法中,正确的是____。
A:都包含 main() 方法B:都通过“appletviewer”命令执行C:都通过“javac”命令编译。
[试题分类]:JAVA 应用及技术一判断题1 抽象方法只能存在于抽象类中2 每个 try 块都必须至少有一个 catch 块与之相对应3 JAVA类之间采用的单一继承,Object类是所有类的根类。
4 接口是由常量和抽象方法组成的特殊类。
5 JAVA命名规范中,方法名与变量名首字母要求大写。
6 JAVA语言具有垃圾回收机制,系统能够自动回收未被引用的对象所占据的内存。
7 抽象类不能直接被实例化,但可以定义抽象类变量,用抽象类的子类实例来给其赋值。
8 JAVA采用UNICODE编码,char数据类型占两个字节。
9 JAVA能够进行多线程与网络程序设计。
10 JAVA源程序编译后生成字节码(.class文件),程序需要在JAVA虚拟机中运行。
二、选择题1.Java语言中,int类型在内存中所占的位数为(A)8(B) 16(C) 32(D) 64题型:单选题2.AWT中用来表示按钮的类是(A) TextField(B) Menu(C) Button(D) List题型:单选题知识点:图形编程难度:23. 下列哪个不是合法的标识符(A)hello(B)i(C)123(D)_good题型:单选题知识点:java命名难度:24. 下列哪个命令中,用来运行Java程序的是:(A)java(B)javadoc(C)jar(D)javac题型:单选题知识点:JAVA命令难度:15.类声明中,用于表明类是抽象类的关键字是(A)public(B) abstract(C) final(D) class题型:单选题知识点:JAVA关键字难度:1三、简答题1.请简要说明Applet与Application的两种程序的主要区别。
题型:简答题知识点:Applet与Application难度:12.请简要说明public、protected、private几种访问权限的区别。
答:public任何地方可访问private 本类可访问protected 包内和子类可访问3 定义一个线程类有哪两种基本方法?答:实现Runnable接口或继承Thread类。
北理《Java技术与应用》FAQ(一)第一章概述一、Java与C/C++的区别对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++相同的传统,使得熟悉C、C++的程序员能很方便地进行编程。
同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C++中许多不合理的内容。
1.全局变量Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。
例如:Class GlobalVar{public static global_var;}在类GlobalVar中定义变量global_var为public static,使得其他类可以访问和修改该变量。
Java对全局变量进行了更好的封装。
而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。
2.GotoJava不支持C、C++中的goto语句,而是通过例外处理语句try、Catch 、final等来代替C 、C++中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。
3.指针指针是C、C++中最灵活,也是最容易产生错误的数据类型。
由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性,造成系统的崩溃。
而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。
同时,数组作为类在Java中实现,很好地避免了数组访问越界这一C、C++中不作检查的错误。
4.内存管理在C中,程序员通过库函数malloc( )和free( )来分配和释放内存,C++中则通过运算符new和delete来分配和释放内存。
如果再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。
而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。
北理《Java技术与应用》拓展资源(一)第一章概述Java相关技术1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口。
2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。
一个Java 对象的方法能被远程Java虚拟机调用。
这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。
4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无缝的互操作性。
这使得Java能集成异构的商务信息资源。
5、JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无缝的连接。
这个接口屏蔽了企业网络所使用的各种命名和目录服务。
6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。
8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。
一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。
北理工《Java技术与应用》在线作业一、单选题:1.(单选题)下列哪个命令中,用来编译Java程序的是() (满分Ajava BjavadocCjar Djavac正确:D2.(单选题)一个Unicode字符占用() (满分A8位B16位C32位D一个字节正确:B3.(单选题)Java语言中,int类型在内存中所占的位数为() (满分A8B16C32D64正确:C4.(单选题)URL对象中____函数获取当前的资源文件长度。
(满分AgetUrl()BgetContentLength()CgetContenttype()DgetLength()正确:5.(单选题)下列关于JavaApplication与Applet的说法中,正确的是____。
(满分A都包含main()方法B都通过“appletviewer”命令执行C都通过“javac”命令编译D都嵌入在HTML文件中执行正确:6.(单选题)File类中用____函数获取文件的绝对路径。
(满分:)Apath()BgetPath()CgetAbsolutePath()DgetName()正确:7.(单选题)当浏览器重新返回Applet所在页面时,将调用Applet类的方法是____。
(满分:) Astart()Binit()Cstop()Ddestroy()正确:8.(单选题)以下不是数据库模式的是____。
(满分:)A网状B层次C关系D环状正确:9.(单选题)类Panel默认的布局管理器是____。
(满分:)AGridLayoutBBorderLayoutCFlowLayoutDGardLayout正确:10.(单选题)Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?()(满分:)A安全性B多线性C跨平台D可移植正确:11.(单选题)下列有关一个Java文件的叙述,正确的是?() (满分:)A可以有2个以上package语句B可以有2个以上import语句C可以有2个以上public类D只能有1个类定义正确:12.(单选题)Application对象中____函数获取文件的绝对路径。
北理《Java技术与应用》拓展资源(八)第十章线程与多线程Java 编程语言中的高级多线程支持线程组线程是被个别创建的,但可以将它们归类到线程组中,以便于调试和监视。
只能在创建线程的同时将它与一个线程组相关联。
在使用大量线程的程序中,使用线程组组织线程可能很有帮助。
可以将它们看作是计算机上的目录和文件结构。
线程间发信当线程在继续执行前需要等待一个条件时,仅有 synchronized 关键字是不够的。
虽然synchronized 关键字阻止并发更新一个对象,但它没有实现线程间发信。
Object 类为此提供了三个函数: wait() 、 notify() 和 notifyAll() 。
以全球气候预测程序为例。
这些程序通过将地球分为许多单元,在每个循环中,每个单元的计算都是隔离进行的,直到这些值趋于稳定,然后相邻单元之间就会交换一些数据。
所以,从本质上讲,在每个循环中各个线程都必须等待所有线程完成各自的任务以后才能进入下一个循环。
这个模型称为屏蔽同步,下例说明了这个模型:屏蔽同步public class BSync {int totalThreads;int currentThreads;public BSync(int x) {totalThreads = x;currentThreads = 0;}public synchronized void waitForAll() {currentThreads++;if(currentThreads < totalThreads) {try {wait();} catch (Exception e) {}}else {currentThreads = 0;notifyAll();}}}当对一个线程调用 wait() 时,该线程就被有效阻塞,只到另一个线程对同一个对象调用notify() 或 notifyAll() 为止。
因此,在前一个示例中,不同的线程在完成它们的工作以后将调用 waitForAll() 函数,最后一个线程将触发 notifyAll() 函数,该函数将释放所有的线程。
北理工《Java技术与应用》在线作业试卷总分:100 得分:100一、单选题(共20 道试题,共40 分)1.下列哪个命令中,用来编译Java程序的是( )A.javaB.javadocC.jarD.javac答案:D2.一个Unicode字符占用()A.8位B.16位C.32位D.一个字节答案:B3.Java语言中,int类型在内存中所占的位数为( )A.8B.16C.32D.64答案:C4.URL对象中____函数获取当前的资源文件长度。
A.getUrl()B.getContentLength()C.getContenttype()D.getLength()答案:B5.下列关于Java Application 与Applet 的说法中,正确的是____。
A.都包含main() 方法B.都通过“appletviewer”命令执行C.都通过“javac”命令编译D.都嵌入在HTML 文件中执行答案:C6.File类中用____函数获取文件的绝对路径。
A.path()B.getPath()C.getAbsolutePath ( )D.getName ( )答案:C7.当浏览器重新返回Applet 所在页面时,将调用Applet 类的方法是____。
A.start()B.init()C.stop()D.destroy()答案:A8.以下不是数据库模式的是____。
A.网状B.层次C.关系D.环状答案:B9.类Panel 默认的布局管理器是____。
A.GridLayoutB.BorderLayoutC.FlowLayoutD.GardLayout答案:C10.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?()A.安全性B.多线性C.跨平台D.可移植答案:B11.下列有关一个Java文件的叙述,正确的是?()A.可以有2个以上package语句B.可以有2个以上import语句C.可以有2个以上public类D.只能有1个类定义答案:B12.Application对象中____函数获取文件的绝对路径。
(单选题)1: 下列哪个命令中,用来运行Java程序的是 ( )A: javaB: javadocC: jarD: javac正确答案:(单选题)2: 下面那个不是JSP的内建对象____。
A: requestB: replaceC: applicationD: session正确答案:(单选题)3: 下列不是服务器脚本语言的是____。
A: ASPB: JSPC: PHPD: VC++正确答案:(单选题)4: URL对象中____函数获取当前的资源文件长度。
A: getUrl()B: getContentLength()C: getContenttype()D: getLength()正确答案:(单选题)5: 组件____是构成图形用户界面的基本成分和核心元素。
A: componentB: containerC: pannelD: 窗口(window)正确答案:(单选题)6: 下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello!”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是____。
public class Test implements Runnable{ public static void main(String args[]){ Test t=new Test(); Thread tt=new Thread(t); tt.start(); } public void run(){ for(;;){ try{ ____; }catch(___A: sleep(1000) InterruptedExceptionB: t.sleep(1000) InterruptedExceptionC: Thread.sleep(1000) RuntimeExceptionD: Thread.sleep(1000) InterruptedException正确答案:(单选题)7: 下列哪个字符串是合法的类标识符?()A: implementsB: _implementsC: -implementsD: implements-1正确答案:(单选题)8: 如果程序编译通过,可运行,但运行结果与期望不相符,这类错误成为____A: 语义错误B: 运行错误C: 语法错误D: 逻辑错误正确答案:(单选题)9: 以下不是数据库模式的是____。
第一章•Java 特点(跨平台,面向对象,面向互联网,多线程…)J2EE(Java 2 Platform Enterprise Edition):企业级系统的开发J2SE(Java 2 Platform Standard Edition):标准版,用于普通桌面应用程序的开发J2ME(Java 2 Platform Micro Edition):微缩版,用于手机等小型设备和智能卡等的开发。
•Java虚拟机与java程序运行机制:•解释执行:源程序(.java)==编译==〉(javac)字节码文件(.class)=执行=〉(java 类名)Java 源程序命名与结构:最多有一个public类,类名与文件名一致。
•Classpath的意义: 虚拟机搜索类的路径•主线程与命令行参数java 类名参数1 … 参数npublic static void main(String [ ] args)第二章标识符、关键字和数据类型•标识符:字母数字_$串,数字不打头•基本数据类型与复合(引用)数据类型-基本数据类型:boolean, byte, short, int, long, float, double, char-复合数据类型: class, array, interface•Unicode字符码16位,允许多语种字符,对应char类型•自动转换-基本数据类型:短数据 ==〉长数据-复合数据类型:子类 ==〉超类•强制转换: 反方向(其他情形不允许),加(类型)前缀。
•数组的申明与创建与使用- 申明不加size;length; 多维数组•对象的定义:•关键字:public, private, protected, static, abstract, final •访问控制第三章表达式和流控制•变量的作用域与覆盖- 程序变量、参数变量覆盖成员变量•运算符与表达式:与C++类似•赋值语句的强制转换与自动转换•基本控制语句•递归:方法执行过程中直接或间接调用自身。
北京理工大学珠海学院 计算机学院1/1 《Java 语言深入编程》课外作业作业说明:1、 必须是手写在北京理工大学珠海学院的稿纸上2、 如果有2页以上的,请用订书机订好3、 第一页的右上角请写明学号和姓名1. 什么是泛型?使用泛型的优点是什么?2. 阅读以下程序,将其改成泛型机制,要求Student 改为泛型类,getName()和getSex()方法也要改为泛型方法class Student{String name;String sex;Student(String name,String sex){=name;this.sex=sex;}String getName(){return name;}String getSex(){return sex;}}public class Demo {public static void main(String[] args){Student stu=new Student("李红","女");System.out.println ("姓名:"+stu.getName());System.out.println ("性别:"+stu.getSex());}}3. 简述序列化实现的步骤?4. 简述JDBC 纯Java 方式连接数据库的步骤。
5. 举例说明创建线程的两种方式。
6. 简述线程有哪几种状态,之间是如何转换的?7. 线程的串行化使用哪个方法?线程的休眠使用哪个方法?8. 请写出Socket 服务器端建立连接并向客户端发送一次消息的代码。
北理《Java技术与应用》拓展资源(三)第三章表达式和流程控制Java控制语句编程一、假设月份为1~12之间的任意一个数据,输出各月份的天数。
注:用switch语句实现System.out.println("输入年月:格式:year-m");BufferedReader in = new BufferedReader(new InputStreamReader( System.in));try {String []ss = in.readLine().toString().split("-");int year = Integer.parseInt(ss[0]);int days = Integer.parseInt(ss[1]);int day = 28;if ((year%4 == 0 && year%100 != 0) || year%400 == 0 )day = 29;switch(days){case 1:System.out.println("31天");break;case 2:System.out.println(day+"天");break;case 3:System.out.println("31天");break;case 4:System.out.println("30天");break;case 5:System.out.println("31天");break;case 6: System.out.println("30天");break;case 7: System.out.println("31天");break;case 8: System.out.println("31天");break;case 9: System.out.println("30天");break;case 10: System.out.println("31天");break;case 11: System.out.println("30天");break;case 12: System.out.println("31天");break;}}catch (IOException e) {System.out.println("输入格式异常");}二、给出一个整数,按相反顺序输出该数。