北京邮电大学研究生java技术-孟祥武老师-期末复习题整理

合集下载

北邮《高级语言程序设计(基于Java)》期末复习题(含答案)

北邮《高级语言程序设计(基于Java)》期末复习题(含答案)

一.简答题。

12.简述Java的特点Java的特点有:简单性;面向对象;跨平台性;健壮性;安全性;可移植性;多线程性;动态性。

3.Java有哪些基本数据类型,它们的关键字和字长以及变量的默认值4.面向对象程序设计与面向过程程序设计有哪些不同?从思维方式角度看,面向过程编程注重用功能构造系统,思维方式更贴近于计算机逻辑。

而面向对象编程则注重从现实世界中的客观存在建立系统,强调直接以问题域中的事物为中心思考问题和认识问题,并根据这些事物的本质特征和系统责任,把它们抽象为系统中的对象,用对象作为系统的基本构成单位。

从程序构造角度看,在过程性语言编写的程序中,待处理的数据和处理数据的方法分散在程序的各个地方。

而面向对象语言编写的程序中,待处理的数据和处理数据的方法都放在同一实体(entity)(程序模块)中,形成“封装”。

通过封装,可以最大限度的实现代码重用,减小数据的依赖性,从而解决面向过程语言中存在的问题。

5.什么是访问控制修饰符?访问控制修饰符的种类有哪些?它们各有什么作用?修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。

访问修饰符适用于类成员,而不是方法内部的局部变量。

Java常见的访问修饰符有这4种:private、default、protected和public。

public 可以被所有的类访问pravite 只能被类本身访问,其他类无法访问protected 可以被类本身、它的子类(包括同一个包中以及不同包中的子类)default 属于默认的访问状态,可以被类本身和同一个包中的类访问6.类变量和实例变量有哪些不同?在定义成员变量时,如果用static修饰符修饰,则该变量是类变量(也称“静态变量”),否则是实例变量。

类变量的本质特点是:它是类的变量,不属于类的任何一个具体对象。

它保存在类的内存区域的公共存储单元。

类的任何一个对象对类变量的存取都是对同一个内存单元进行操作。

与类变量相对,实例变量属于类的某个具体的对象。

北邮高操期末试题答案及知识点总结(孟祥武)

北邮高操期末试题答案及知识点总结(孟祥武)

1.论述下分布式操作系统的透明性是什么?设计、实现一个分布式操作系统时,实现透明性的难点是什么?所谓分布式透明性就是在编写程序时好像数据没有被分布一样。

实现透明性的难点在于创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子数据库。

2.论述远程过程调用RPC与本地调用的区别?论述RPC调用语义,系统实现中的问题。

所谓过程调用,就是将控制从一个过程 A 传递到另一个过程B, 返回时过程 B 将控制进程交给过程A。

目前大多数系统中, 调用者和被调用者都在给定主机系统中的一个进程中, 它们是在生成可执行文件时由链接器连接起来的, 这类过程调用称为本地过程调用。

远程过程调用(RPC)指的是由本地系统上的进程激活远程系统上的进程, 我们将此称为过程调用是因为它对程序员来说表现为常规过程调用。

处理远程过程调用的进程有两个, 一个是本地客户进程, 一个是远程服务器进程。

对本地进程来说, 远程过程调用表现这对客户进程的控制, 然后由客户进程生成一个消息, 通过网络系统调用发往远程服务器。

网络信息中包括过程调用所需要的参数, 远程服务器接到消息后调用相应过程, 然后将结果通过网络发回客户进程, 再由客户进程将结果返回给调用进程。

因此, 远程系统调用对调用者表现为本地过程调用, 但实际上是调用了远程系统上的过程调用语义:(1)、last-of-many 对执行一个远程过程调用而言,被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果(2)、at-most-once 若调用者收到了回复消息,则被调用的过程正确地完成了它的一次(仅仅一次)执行。

如果调用者没收到回复消息,或者,如果调用者在获得回复消息之前发生故障,那么,这时的调用效果就看作是根本就没有执行相应的过程(3)、at-least-once 在场点正常情况下,则远程过程至少执行一次,且回复消息可能返回一次或多次。

在场点故障时,就不能保证远程过程是否已被执行或曾返回任何回复消息(4)、exactly-once若server正常,则远程过程将恰好执行一次,并返回一个调用结果。

2019年秋季北邮《Java技术》期末考试复习题

2019年秋季北邮《Java技术》期末考试复习题

2019年秋季北邮《Java技术》期末考试复习题《Java技术》课程2019年秋季期末考试复习题《Java技术》课程2019年春季期末考试复习题⼆、考试重点(占期末考试成绩60%)⼀、单项选择题1.计算机硬件能直接执⾏的只能是(B)。

A.符号语⾔程序B.机器语⾔程序C.汇编语⾔程序D.⾼级语⾔程序2.Java语⾔属于(C)。

A.⾯向过程的解释型语⾔B.⾯向过程的编译型语⾔C.⾯向对象的解释型语⾔D.⾯向对象的编译型语⾔3.根据TIOBE编程语⾔社区排⾏榜的统计,使⽤率居于前三的编程语⾔是(A)。

A.Java、C、C++B.Java、C#、C++C.Java、Python、RubyD.Objective-C、C++、Java4.下述Java平台中,最适于开发嵌⼊式系统应⽤程序的是(C)。

A.JavaSEB.JavaEEC.JavaMED.JavaApplet5.下⾯关于Java类⽂件的说法错误的是(D)。

A.Java编译器会为源程序中的每个类单独⽣成⼀个类⽂件B.Java类⽂件中存储的代码必须符合JVM规范C.Java类⽂件中存储的代码是⼆进制形式的代码D.Java 类⽂件必须⽤Java语⾔编写得到6.下列关于Eclipse说法错误的是(A)。

A.使⽤Eclipse开发Java程序时,程序员编辑源程序后即可运⾏该程序,因此⽆编译程序的过程B.Eclipse中的Workspace⽤于存储⼯程的路径C.在Windows系统下,Eclipse程序包解压缩后即可直接使⽤,⽆需安装D.Eclipse是⼀个基于Java的、可扩展的、开放源代码的开发平台7.下列关于IDE开发环境Eclipse的说法错误的是(D)。

A.Eclipse可以通过插件(plugin)的⽅式扩展其功能B.Eclipse联盟是由IBM公司捐资组建的C.Eclipse使⽤了SWT图形界⾯技术D.Eclipse 的运⾏不需要有JRE的⽀持8.关于Eclipse的视景说法错误的是(C)。

Java程序设计_北京大学中国大学mooc课后章节答案期末考试题库2023年

Java程序设计_北京大学中国大学mooc课后章节答案期末考试题库2023年

Java程序设计_北京大学中国大学mooc课后章节答案期末考试题库2023年1.Java不直接使用指针。

答案:正确2.可以使用jar来打包程序。

答案:正确3.字符串连接运算符其实是用append来实现的。

答案:正确4.break及continue后面可以跟一个语句标号。

答案:正确5.增强的for语句可以方便地遍历数组。

答案:正确6.数组元素都会隐式初始化。

答案:正确7.如果没有定义任何构造方法,系统会自动产生一个构造方法。

答案:正确8.方法重载是多态(polymorphism)的一种方式。

答案:正确9.Java中的继承是通过extends关键字来实现的。

答案:正确10.如果没有extends子句,则该类默认为ng.Object的子类。

答案:正确11.使用super访问父类的域和方法。

答案:正确12.在构造方法中,使用super()时,必须放在第一句。

答案:正确13.子类对象实例可以被视为其父类的一个对象。

答案:正确14.同一包中的各个类,默认情况下可互相访问。

答案:正确15.final所修饰的变量,是只读量。

答案:正确16.在定义final局部变量时,也必须且只能赋值一次。

答案:正确17.在接口中定义的常量具有public, static, final的属性。

答案:正确18.虚方法调用是由对象实例的类型来动态决定的。

答案:正确19.在构造方法中,如果没有this及super,则编译器自动加上super()。

答案:正确20.实例初始化,先于构造方法{}中的语句执行。

答案:正确21.getCause()可以得到异常的内部原因。

答案:正确22.JavaSE的源代码是开放的,我们可以阅读。

答案:正确23.任何类都可以覆盖toString()方法。

答案:正确24.字符串的+运算,实际表示StringBuffer、StringBuiler的append运算。

答案:正确25.SimpleDateFormat类可以用来解析日期字符串。

2019年秋季北邮《Java技术》期末考试复习题

2019年秋季北邮《Java技术》期末考试复习题

《Java技术》课程2019年秋季期末考试复习题《Java技术》课程2019年春季期末考试复习题二、考试重点(占期末考试成绩60%)一、单项选择题1.计算机硬件能直接执行的只能是(B)。

A.符号语言程序B.机器语言程序C.汇编语言程序D.高级语言程序2.Java语言属于(C)。

A.面向过程的解释型语言B.面向过程的编译型语言C.面向对象的解释型语言D.面向对象的编译型语言3.根据TIOBE编程语言社区排行榜的统计,使用率居于前三的编程语言是(A)。

、C、C++、C#、C++、Python、Ruby、C++、Java4.下述Java平台中,最适于开发嵌入式系统应用程序的是(C)。

5.下面关于Java类文件的说法错误的是(D)。

编译器会为源程序中的每个类单独生成一个类文件类文件中存储的代码必须符合JVM规范类文件中存储的代码是二进制形式的代码类文件必须用Java语言编写得到6.下列关于Eclipse说法错误的是(A)。

A.使用Eclipse开发Java程序时,程序员编辑源程序后即可运行该程序,因此无编译程序的过程中的Workspace用于存储工程的路径C.在Windows系统下,Eclipse程序包解压缩后即可直接使用,无需安装是一个基于Java的、可扩展的、开放源代码的开发平台7.下列关于IDE开发环境Eclipse的说法错误的是(D)。

可以通过插件(plugin)的方式扩展其功能联盟是由IBM公司捐资组建的使用了SWT图形界面技术的运行不需要有JRE的支持8.关于Eclipse的视景说法错误的是(C)。

A.每个视景都定义了工作台中各个视图的初始设置和布局B.一个工作台窗口包含多个独立的视景,但同一时刻只有一个视景是对用户可见的C.视景的布局是可以改变的,但改变多次后无法再恢复到初始设置D.每个视景都有自己的视图和编辑器,用户可以在各个视景间切换9.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是(A)。

JAVA期末考试题及答案.doc

JAVA期末考试题及答案.doc

卷号:A 卷二0——一二0—二 学年第一学期JAVA 程序设计一试题(09gb 计算1班、09gb 软件1班用)一.判断题(共10小题,每题2分,共20分)1、 程序是算法和实体在计算机系统屮的体现。

( T )2、 语句是组成一个程序的最小单位。

(F )。

3、 执行while 语句吋,先对条件表达式求值,结果为true 执行一次循环体;为false 则终止while 语句,继续执行while 语句的下一语句。

(T )4、 方法是将操作行为描述为一个具有惟一名字、能与外界交互的独立成分。

(T )5、 类是对一组具有相同属性、表现相同行为的对象的描述。

(T )6、 数组是一种复合数据类型,数组变量遵循“先声明、后使用”的原则。

(T )7、 在子类的内部,不仅能够访问子类自己定义的所有成员,也能够访问超类中的 所有成员。

(F )8、 接口可以定义各种形式的数据成员,只能定义公有的抽彖方法,不能定义其他 形式的成员方法。

(F )9、 异常是程序出现致命性错误,这些错误必须要处理。

(F ) 10、 面向字节的输入流类都是类Reader 的后代类。

(F )二单选题(共10小题,每题2分,共20分)注意一、密封线内不准答题。

二、 姓名、准考证号不许涂改,否则试卷无效。

三、 考生在答题前应先将姓名、学号、年级和班级填写在指定的方框内。

四、试卷印刷不清楚。

可举手向监考教师询问。

题号二三四五六七八总分题分2020202020得分I所在年级、班级 :密注意:学号、姓名和所在年级班级不写、不写全或写在密封线外者,试卷作废。

1、下面选项中,不是面向对彖程序设计语言的选项是(A )oA) C 语言B) Simula C) Smalltalk D) Java 2.(B )是由高级语言赋予了特殊意义并留作专门用途的单词,程序员不能将这些单词作为普通的标识符使用。

A)变量B)保留字C)常量D)数组3.结构化N_S流程图由Nassi和Schneiderman提出,又称为(C )。

北京邮电大学-JAVA技术-阶段作业

北京邮电大学-JAVA技术-阶段作业

JAVA技术阶段作业1:一、单项选择题(共10道小题,共100.0分)1. 设有如下程序public class Try2 {public static void main(String[] args) {B objb = (B) new A();objb.show();}}class A {void show() {System.out.println("a");}}class B extends A { void show() { System.out.println("b");}}则下面说法正确的是()A. 编译时发生错误B. 运行时发生错误C. 输出为aD. 输出为b2. 设有如下程序public class Try2 {Fruit f = new Fruit();f.setGrames(100);System.out.println(f.grams);}}class Fruit { // 水果类int grams; // 克数(质量)void setGrames(int grams) {grams = grams;}}则下面说法正确的是()A. 编译时发生错误B. 运行时发生错误C. 输出为0D. 输出为1003. 设有下面程序:public class Person {static int arr[] = new int[10];System.out.println(arr[0]);}}则以下叙述正确的是()A. 编译时发生错误B. 运行时发生错误C. 输出为0D. 输出为null4. 设有如下类定义class Fruit { // 水果类int grams; // 克数(质量)int totalCalories(){ // 卡路里(热量)return grams * 10;}}则创建一个Fruit类的对象变量f,同时创建一个对象实体,并且把对象实体的引用赋给f的语句是()A. Fruit f;B. new Fruit();C. new Fruit;D. Fruit f = new Fruit();5. 设有如下类定义class Fruit { // 水果类int grams; // 克数(质量)int totalCalories(){ // 卡路里(热量)return grams * 10;}}则创建一个Fruit类的对象变量的语句是()A. Fruit f;B. new Fruit();C. new Fruit;D. int f;6. 语句System.out.printf("%o", 12);的输出结果是()A. 12B. cC. 14D. 10107. 格式化输出123456.789,要求保留两位小数。

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)(K12教育文档)

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)(K12教育文档)

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)(word版可编辑修改)的全部内容。

《JA V A语言程序设计》期末考试试题及答案3(应考必备题库)一、单项选择题1、如下哪个是Java中的标识符()A、publicB、superC、3numberD、width2、如下哪个是Java中的标识符( )A、fieldnameB、superC、3numberD、#number3、已知如下定义:String s = ”story";下面哪个语句不是合法的()A、s += "books";B、s = s + 100;C、int len = s.length;D、String t = s + “abc”;4、如下哪个是Java中有效的关键字()A、nameB、helloC、falseD、good5、下面的代码段执行之后count的值是什么( )int count = 1;for(int i = 1; i <= 5; i++) {count += i;}System.out。

println(count);A、5B、1C、15D、166、定义一个类,必须使用的关键字是( )A、publicB、classC、interfaceD、static7、定义一个接口必须使用的关键字是( )A、publicB、classC、interfaceD、static8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()A、p。

《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)

《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)

《JA V A语言程序设计》期末考试试题及答案6(应考必备题库)一、填空题1.定义类的保留字是(class ),定义接口的保留字是(interface ). 2.Socket通常也称为(套接字),用于描述(IP地址)和(端口)。

3.线程的优先级在( 1 )至(10)之间,数值越大(任务越紧急)。

4.构造方法是一种特殊的成员方法,构造方法名与( 类名)相同。

5.Java语言只允许单继承,指每个类只能有一个(父类)。

6.Java源程序的扩展名是(。

java ),经过编译后的程序的扩展名是(。

class )。

7。

在一个时间只能由一个线程访问的资源称为( 临界资源) 。

访问临界资源的代码(临界代码).8. 在多线程系统中,多个线程之间有(同步)和(互斥)两种关系。

二、选择题1.关于选择结构下列哪个说法正确?()A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句2.while循环和do…while循环的区别是:()A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次3.关于for循环和while循环的说法哪个正确?()A.while循环先判断后执行,for循环先执行后判断。

B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空4.下列修饰符中与访问控制无关的是()A.private B.publicC.protected D.final5.void的含义:()A.方法没有返回值B.方法体为空C.没有意义D。

定义方法时必须使用6.return语句:()A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象7.关于对象成员占用内存的说法哪个正确?()A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对8.下列说法哪个正确?A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量9.下列说法哪个正确?()A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用10.关于方法main()的说法哪个正确?()A.方法main()只能放在公共类中B main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中11.构造函数何时被调用?()A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时12.抽象方法:()A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法13.关于继承的说法正确的是:()A、子类将继承父类所有的属性和方法。

JAVA程序设计期末考试试题汇总及答案

JAVA程序设计期末考试试题汇总及答案

《J A V A程序设计》期末考试试题汇总及答案(总47页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除《JAVA程序设计》期末考试试题(一)一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。

A. javaB. .classC. htmlD. .exe2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。

A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。

A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode 码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。

3、设 x = 2 ,则表达式 ( x + + )/3 的值是0 。

4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。

5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

最终(final)方法是不能被当前类的子类重新定义的方法。

6、创建一个名为 MyPackage 的包的语句是package MyPackage ; ,该语句应该放在程序的位置为:应该在程序第一句。

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)

《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)《JA V A语言程序设计》期末考试试题及答案3(应考必备题库)一、单项选择题1、如下哪个是Java中的标识符()A、publicB、superC、3numberD、width2、如下哪个是Java中的标识符( )A、fieldnameB、superC、3numberD、#number3、已知如下定义:String s = "story"; 下面哪个语句不是合法的( )A、s += "books";B、s = s + 100;C、int len = s.length;D、String t = s + “abc”;4、如下哪个是Java中有效的关键字()A、nameB、helloC、falseD、good5、下面的代码段执行之后count的值是什么( )int count = 1;for (int i = 1; i <= 5; i++) {count += i;}System.out.println(count);A、5B、1C、15D、166、定义一个类,必须使用的关键字是( )A、publicB、classC、interfaceD、static7、定义一个接口必须使用的关键字是()A、publicB、classC、interfaceD、static8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()A、p.add(b);B、p.add(b,"North");C、p.add(b,"South");D、b.add(p,"North");7、导入mypackage包中的所类的命令是(import mypackage.*;)。

8、当声明一个数组int arr[] = new int[5]; 时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0到4)。

4北邮JAVA期末大作业 聊天室开发文档

4北邮JAVA期末大作业  聊天室开发文档

JAVA期末大作业开发文档学院:电子工程学院专业:电子信息科学与技术班级:2013211202姓名:学号:小组成员:一.选题我们三人选择了网络通信程序这一题目,题目要求包括:能够实现双方通过服务器建立通信连接,实现一对一的聊天;能够通过服务器,采用多线程实现多人间的群聊;能够实现文字通信和传输图片;能够保存通信记录到本地。

我们在此基础上还实现了发送振动消息以及发送文件的功能。

二.需求分析1.首先我们进行了系统的功能分析,这个通信程序分为客户端和服务器两个部分:服务器端主要负责监听客户端的连接请求,把这个请求通过网络发送给服务器端进行处理,把客户端(请求方)的聊天请求、发送文件请求、发送振动消息请求等转发给目标客户端(接收方):而客户端负责发送请求并处理服务器端返回的响应消息。

整体框图构造如下1.当前在线用户服 1.ServerMain.java---启动监听器 2.已注册的用户务 3.当前监听端口器监 1.用户注册听 2.用户登录模 2.server.controller.java—处理客户端的请求 3.断开连接块 4.聊天5.振动6.文件收发网络 1.当前在线用户通 3.server.ui.java—服务器信息显示窗体 2.所有注册用户信 3.时间系 1.clientMain.java---连接服务器、启动登录窗口统 1.登录窗体用 2.注册窗体整户 2.client.ui.java—显示客户端各个窗体 3.聊天窗体体模 4.提示对话框构块 5.窗体振动器架搭建3.client.clientThread.java—--客户端后台线程接收和处理服务器返回的响应4.client.util.JFrameShaker---实现窗体振动三.概要设计通过之前的需求分析,可以看出项目的包主要包括服务器和客户端两个包,然而主要功能的实现,具体需要分为以下六个模块:1)服务器监听模块2)客户端用户登录模块3)客户端客户注册模块4)聊天模块5)发送文件模块6)发送振动消息模块四.主要功能实现及大体设计过程1.服务器监听模块功能实现服务器监听模块实现了在服务器监听窗口中显示当前在线用户列表和已注册用户列表,可以通过单击标签切换选项卡。

北京邮电大学研究生java技术-孟祥武老师-期末复习题整理

北京邮电大学研究生java技术-孟祥武老师-期末复习题整理

1.判断闰年import java.util.Scanner;public class DemoTest {/*** @param args 此处代码无实际意义,可删除*/public static void main(String[]args){Scanner scan = new Scanner(System.in);//创建输入流扫描器;System.out.println("请输入一个年份:");//向控制台输出一个提示信息long year;try{year = scan.nextLong();if(year%4 == 0 && year%100!=0 || year%400 == 0){//是闰年System.out.print(year+"是闰年!");}else{System.out.print(year+"不是闰年!");}}catch(Exception e){System.out.println("你输入的不是有效的年份");}}} 2.Socket编程对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。

服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。

首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。

这样就有两个Socket了,客户端和服务端各一个。

对于Socket之间的通信其实很简单,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。

Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。

北邮《Java技术》期末复习题(含答案)

北邮《Java技术》期末复习题(含答案)

北邮《Java技术》期末复习题(含答案)<>综合练习题填空题1. Java 不仅仅是一种编程环境,它实际上是一个完整的计算平台,包括完整的程序开发环境和运行环境。

2. 完整的Java体系结构包括四个组件,分别是Java编程语言、Java类文件格式、Java应用程序编程接口和Java虚拟机。

3. Java运行时环境是由Java虚拟机和核心类组合形成的。

4. 在Java类文件中存储的二进制代码称为字节码,它们是JVM的指令。

5. 当Java虚拟机是在主机操作系统上由软件实现时,它实际上是用本地(如C/C++等)语言编写的程序。

6. Java虚拟机主要包括两个模块,一个是类装载器,另一个是执行引擎。

7. 在面向对象系统中,对象是程序的基本组成实体。

8. 对象是程序的基本组成实体,类是创建对象的模板。

9. Java 源程序中的类可以分为两种,分别是系统类和用户自己定义类。

10. 编译程序的时候会自动导入到程序中的系统包是ng。

11. 把基本数据类型包装成类包装成类的好处是可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作。

12. 在Java中,int类型的包装类是Integer, char 类型的包装类是Character。

13. Integer 类的 parseInt( ) 方法的功能是把一个字符串转换为一个整型数据。

14. Java 把数据输出到控制台是使用System.out完成的。

15. Scanner 类是在java.util包中定义的。

16. 创建一个连接到标准输入流对象 System.in 的Scanner 对象的语句是Scanner myScanner = new Scanner(System.in);。

17. 设myS 是一个 Scanner 类的实例,则语句“int x =myS.nextInt();”的作用是读取一个整数,然后把这个整数赋给变量x。

18. Java 提供的专门用于格式化输出数据的方法是System.out.printf()。

java期末考试复习题及答案甄选文档

java期末考试复习题及答案甄选文档

java期末考试复习题及答案《Java程序设计》课程试卷1.使用Java语言编写的源程序保存时的文件扩展名是(B )。

(A).class(B).java (C).cpp(D).txt2.设int a=-2,则表达式a>>>3的值为( C )。

(A)0(B)3(C)8(D)-13.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。

箋搗挚連摆枭崍曇齊驀詁个标驼丧夺酈铢遠挤讪魴琏荧徠鞏纵錨电门轺岿韋抡歐鹆荥瑶婶謔儀錘糧买鲑紅鲽识壩藎。

(A)a[0]; (B)a[a.length-1]; (C)a[3];(D)int i=1;a[i];虛骇鯢铵嗩箫况還駢滨历怂曉飽綹绌闋诂貳鹗鯨誉辉亏銩課阈暂癬聩壚绿齟诈鰨绻賧筹蟄颜鸹鳴乐儈队坝缟膿鲮鸬。

4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。

(A)封装(B)继承(C)覆盖(D)重载揚譾烴鋨黷傾媼罢鹘脚厕垦贿畲潆摯丛趋铈罌謎駭骏鯖缅饌跹蹿劑蔥拟鲧轔饨寵摯务圹媯壩曇風骓將鋦温忾赉龀饋。

5.在类的定义中构造函数的作用是( D )。

(A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量饯貸峥呙窜饞鉈报嘖幘紆潋捫俁笕龚瑋铆荟询躑濘儲鸠坠娅損绦翘宪壘殯铈钛縋韃毙鹵閎銪哜師祯籌脓哝譯仑鳌錛。

6.下面关键字中,哪一个不是用于异常处理语句(B )。

(A)try(B)break (C)catch (D)finally釙蹿质約輝领軟体鹕損啸卧谊应簀渾雏沦媧違玮紿缱铬餳荚观鍋當紛籪赓诿顸畴棖涟鶯骢悶監尴瘗鱗剛潤湞燒订糁。

7.类与对象的关系是(A )。

(A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例栅闶瘧辉濰麗奮缽顱擲滄噦鎵沧曖嘘县钼臘凑擇驤繹蓠鎮區錄饅僂炽钵潜貲渑疗櫞挝鯧倾逕鑾羈酝饨摯穷鴿鳧鯧鯗。

8.下面哪一个是Java中不合法的标识符(D )。

《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)(K12教育文档)

《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)(K12教育文档)

《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)(word版可编辑修改)的全部内容。

《JA V A语言程序设计》期末考试试题及答案6(应考必备题库)一、填空题1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为 (套接字),用于描述( IP地址 ) 和(端口). 3.线程的优先级在( 1 )至( 10)之间,数值越大( 任务越紧急)。

二、1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为(套接字),用于描述(IP地址 ) 和 ( 端口 )。

3.线程的优先级在( 1 )至( 10 )之间,数值越大(任务越紧急 )。

4.构造方法是一种特殊的成员方法,构造方法名与(类名)相同。

5.Java语言只允许单继承,指每个类只能有一个 ( 父类)。

6.Java源程序的扩展名是(。

java ),经过编译后的程序的扩展名是( .class )。

7。

在一个时间只能由一个线程访问的资源称为 ( 临界资源 ) 。

访问临界资源的代码(临界代码).8。

在多线程系统中,多个线程之间有(同步)和 ( 互斥 ) 两种关系。

二、选择题1.关于选择结构下列哪个说法正确?()A.if语句和 else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句2.while循环和 d o…while循环的区别是:()A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次3.关于 for循环和 while循环的说法哪个正确? ()A.while循环先判断后执行,for循环先执行后判断.B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空4.下列修饰符中与访问控制无关的是( )A.private B.publicC.protected D.final5. void的含义:()A.方法没有返回值B.方法体为空C.没有意义D。

JAVA语言程序设计期末考试题答案

JAVA语言程序设计期末考试题答案

"JAVA语言程序设计"期末考试试题及答案〔应考必备题库〕一、单项选择择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。

A. javaB. .classC. htmlD. .exe2、设x = 1 , y = 2 , z = 3,那么表达式y+=z--/++x 的值是( )。

A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。

A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

2、在Java的根本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。

3、设x = 2 ,那么表达式( x + + )/3 的值是0 。

4、假设x = 5,y = 10,那么x < y和x >= y的逻辑值分别为true和false。

5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

最终(final)方法是不能被当前类的子类重新定义的方法。

6、创立一个名为MyPackage 的包的语句是package MyPackage ; ,该语句应该放在程序的位置为:应该在程序第一句。

7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 那么执行以下几个语句后的输出结果是120。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.判断闰年import java.util.Scanner;public class DemoTest {/*** @param args 此处代码无实际意义,可删除*/public static void main(String[]args){Scanner scan = new Scanner(System.in);//创建输入流扫描器;System.out.println("请输入一个年份:");//向控制台输出一个提示信息long year;try{year = scan.nextLong();if(year%4 == 0 && year%100!=0 || year%400 == 0){//是闰年System.out.print(year+"是闰年!");}else{System.out.print(year+"不是闰年!");}}catch(Exception e){System.out.println("你输入的不是有效的年份");}}} 2.Socket编程对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。

服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。

首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。

这样就有两个Socket了,客户端和服务端各一个。

对于Socket之间的通信其实很简单,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。

Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。

下面来看一些服务端与客户端通信的例子:1、客户端写服务端读服务端代码Java代码public class Server {public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛int port = 8899;//定义一个ServerSocket监听在端口8899上ServerSocket server = new ServerSocket(port);//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的Socket socket = server.accept();//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。

Reader reader = new InputStreamReader(socket.getInputStream());char chars[] = new char[64];int len;StringBuilder sb = new StringBuilder();while ((len=reader.read(chars)) != -1) {sb.append(new String(chars, 0, len));}System.out.println("from client: " + sb);reader.close();socket.close();server.close();}}服务端从Socket的InputStream中读取数据的操作也是阻塞式的,如果从输入流中没有读取到数据程序会一直在那里不动,直到客户端往Socket的输出流中写入了数据,或关闭了Socket的输出流。

当然,对于客户端的Socket也是同样如此。

在操作完以后,整个程序结束前记得关闭对应的资源,即关闭对应的IO流和Socket。

客户端代码Java代码public class Client {public static void main(String args[]) throws Exception {//为了简单起见,所有的异常都直接往外抛String host = "127.0.0.1"; //要连接的服务端IP地址int port = 8899; //要连接的服务端对应的监听端口//与服务端建立连接Socket client = new Socket(host, port);//建立连接后就可以往服务端写数据了Writer writer = new OutputStreamWriter(client.getOutputStream() );writer.write("Hello Server.");writer.flush();//写完后要记得flushwriter.close();client.close();}}对于客户端往Socket的输出流里面写数据传递给服务端要注意一点,如果写操作之后程序不是对应着输出流的关闭,而是进行其他阻塞式的操作(比如从输入流里面读数据),记住要flush一下,只有这样服务端才能收到客户端发送的数据,否则可能会引起两边无限的互相等待。

在稍后讲到客户端和服务端同时读和写的时候会说到这个问题。

2、客户端和服务端同时读和写前面已经说了Socket之间是双向通信的,它既可以接收数据,同时也可以发送数据。

服务端代码Java代码public class Server {public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛int port = 8899;//定义一个ServerSocket监听在端口8899上ServerSocket server = new ServerSocket(port);//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的Socket socket = server.accept();//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。

Reader reader = new InputStreamReader(socket.getInputStream());char chars[] = new char[64];int len;StringBuilder sb = new StringBuilder();while ((len=reader.read(chars)) != -1) {sb.append(new String(chars, 0, len));}System.out.println("from client: " + sb);//读完后写一句Writer writer = new OutputStreamWriter(socket.getOutputStream() );writer.write("Hello Client.");writer.flush();writer.close();reader.close();socket.close();server.close();}}在上述代码中首先我们从输入流中读取客户端发送过来的数据,接下来我们再往输出流里面写入数据给客户端,接下来关闭对应的资源文件。

而实际上上述代码可能并不会按照我们预先设想的方式运行,因为从输入流中读取数据是一个阻塞式操作,在上述的while循环中当读到数据的时候就会执行循环体,否则就会阻塞,这样后面的写操作就永远都执行不了了。

除非客户端对应的Socket关闭了阻塞才会停止,while循环也会跳出。

针对这种可能永远无法执行下去的情况的解决方法是while循环需要在里面有条件的跳出来,纵观上述代码,在不断变化的也只有取到的长度len和读到的数据了,len已经是不能用的了,唯一能用的就是读到的数据了。

针对这种情况,通常我们都会约定一个结束标记,当客户端发送过来的数据包含某个结束标记时就说明当前的数据已经发送完毕了,这个时候我们就可以进行循环的跳出了。

那么改进后的代码会是这个样子:Java代码public class Server {public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛int port = 8899;//定义一个ServerSocket监听在端口8899上ServerSocket server = new ServerSocket(port);//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的Socket socket = server.accept();//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。

Reader reader = new InputStreamReader(socket.getInputStream());char chars[] = new char[64];int len;StringBuilder sb = new StringBuilder();String temp;int index;while ((len=reader.read(chars)) != -1) {temp = new String(chars, 0, len);if ((index = temp.indexOf("eof")) != -1) {//遇到eof时就结束接收sb.append(temp.substring(0, index));break;}sb.append(temp);}System.out.println("from client: " + sb);//读完后写一句Writer writer = new OutputStreamWriter(socket.getOutputStream() );writer.write("Hello Client.");writer.flush();writer.close();reader.close();socket.close();server.close();}}在上述代码中,当服务端读取到客户端发送的结束标记,即“eof”时就会结束数据的接收,终止循环,这样后续的代码又可以继续进行了。

相关文档
最新文档