java第一阶段测试题(答案)分析
- 格式:doc
- 大小:70.00 KB
- 文档页数:12
试卷(一)一、填空题(每空2分,共计10分)1、在Java平台技术中,boolean数据类型只有两个值分别是和2、面向对象技术三个特点是封装、继承和。
3、封装在类中某方法,其方法名与类名相同且没有返回类型并负责完成对象成员的初始化工作,为实例变量赋予合适的初始值,则该方法是方法。
4、在一个类中封装了多个同名方法,而这些同名方法之间的参数类型不同或参数的个数不同,则这种现象称之为方法的。
5、用来表示当前对象的关键字是this,而用来表示父类对象的关键字是。
二、判断题(每题2分,共计20分,请将答案写在相应的答题卡栏中)1、StringBuffer实例的字符串内容能够通过封装在该类中方法进行修改。
()2、int数据类型的变量在某种情况可以自动转换成String类型。
()3、包可以实现在一个工程(project)中定义多个同名类。
()4、在您的程序中使用Scanner类需要使用语句:import java.util.Scanner;()5、使用继承可以提高代码的复用性。
()6、数组对象的lenth属性显示的是数组的长度。
()7、在比较str1和str2两个字符串对象值是否相等时使用语句str1=str2。
()8、用于结束循环而执行循环体外围语句的是break语句。
()9、用于提前结束本次循环而进入下一次循环的是continue语句。
()10、static修饰的方法称之为类方法。
()二、选择题:(每题2分,共计40分)1、选出合理的标识符()A、2mailB、_sys1@l23C、$changeD、class2、指出下列程序运行的结果()public class Example{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+" and ");System.out.print(ex.ch);}public void change(String str,char ch[]){str="test ok";ch[0]='g';}}A、good and abcB、good and gbcC、test ok and abcD、test ok and gbc3、Java技术平台共分为3种类型:()A、Java ME、Java SE、Java EEB、Java SE、Java DE、Java EEC、Java UE、Java SE、Java EED、Java FE、Java SE、Java EE4、在控制台显示消息的语句正确的是:()A、system.out.println(“hello world ”);B、System.Out.println(“hello world ”);C、System.out.println(“hello world ”);D、System.Out.Println(“hello world ”);5、下列说法正确的是:()A、Java程序的main方法必须都写在类里面B、Java程序中可以有多个main方法C、Java程序的以public修饰的类名不必与所在的文件的文件名一样。
一、语言和环境A、实现语言JavaB、环境要求JDK 6.0、MyEclipse7.5、Oracle10g、PL/SQL Developer二、功能要求开发基于控制台的留言板系统。
具体要求如下:(1)显示留言板系统主菜单,包括显示留言、添加留言和退出系统三项。
(2)显示所有留言信息:包括各条留言的留言人、留言时间、留言标题和留言内容。
(3)用户添加留言:需要输入留言人、留言标题、留言内容,留言时间取当前时间。
(4)退出系统。
系统运行界面如图-1所示。
三、类的设计采用DAO模式开发此系统,需要定义如下类留言实体类(Message)✧留言Id(id)✧留言人(userName)✧留言标题(title)✧留言内容(contents)✧留言时间(createTime)数据库连接和关闭类(BaseDao)留言DAO接口(MessageDao)留言DAO实现类(MessageDaoOracleImpl)留言业务类(MessageService)Main类四、具体要求及推荐实现步骤1、创建数据库表message,添加测试数据不少于2条。
2、创建序列messageSeq,用于实现message表的主键自增。
3、创建实体类Message,根据业务提供需要的构造方法和setter/getter方法。
4、创建BaseDao类,实现数据库连接和关闭功能。
5、创建DAO接口MessageDao,定义查询所有留言、添加留言的方法。
6、创建DAO实现类MessageDaoOracleImpl,继承BaseDao类,实现MessageDao接口,使用JDBC完成相应数据库操作。
7、创建业务类MessageService,完成在控制台显示留言信息和用户添加留言操作。
8、创建Main类,启动和运行系统。
图-1 系统运行界面一、选择题(2分/题)1. char a[3],b[] = "China"; a=b; System.out.print (""+a); 在java 语言中,运行上面的程序段后将输出(d )。
Java试题(附答案)⼀、单选题(每道⼩题只有⼀个正确的选项)1、Java程序中要⽤变量来存储学⽣性别信息,从节约内存空间的⾓度最好选择哪种数据类型( D )A)int B)short C)byte D)boolean2、Java语⾔中基本的数据类型不包括( C ):A)整型B)浮点型C)数组D)逻辑型3、Java程序中⽤来定义常量必须⽤到的关键字是(A)A)final B)class C)void D)static4、下列属于Java语⾔中字符常量的是( B )A)”m”B)‘!’C)a D)$5、⼀个简单的Java程序可能没有⽤到的关键字是(C )A)void B)public C)int D)static6、下列关于Java程序中数组的使⽤说法正确的是(A)A)数组必须在使⽤前定义B)同⼀个数组中的元素类型必须不同C)数组是⼀种特殊的变量不需在使⽤前声明D)数组的元素不可以是数组7、程序设计语⾔的发展主要经历了三个阶段,其中不包括(A)A)数学语⾔B)机器语⾔C)汇编语⾔D)⾼级语⾔8、关于程序设计语⾔下列说法错误的是( C )A)Java、C++、VB等都是当前⼴泛使⽤的⾼级程序设计语⾔。
B)⼀项任务可以使⽤多种语⾔来实现,使⽤前需要综合考虑选择合适的语⾔。
C)因特⽹的应⽤开发必须使⽤Java语⾔来实现。
D)Java是⼀种完全⾯向对象的⾼级语⾔,在因特⽹的应⽤开发中⼴泛应⽤。
9、经过编译后的Java程序的扩展名是( B )A).java B).class C).exe D).bat10、关于Java源程序的说法错误的是( C )A)⽂件名必须和主类名⼀致B)使⽤“javac”对java程序进⾏编译C)java程序的编译运⾏须借助辅助软件D)java源程序的扩展名为.java11、若已定义x和y是double型变量,则表达式x=1,y=x+3/2执⾏后y的值为( D )A)1 B)2 C)3 D)2.512、Java语⾔中整型常量有三种形式即⼋进制整数、⼗进制整数和⼗六进制整数。
计算机二级考试《JAVA》备考测试题「带答案」2017计算机二级考试《JAVA》备考测试题「带答案」为确保同学们将所涉及的考点全面复习到位,让大家充满信心的步入考场,以下是店铺搜索整理的一份计算机二级考试《JAVA》备考测试题【带答案】,供参考练习,希望对大家有所帮助!想了解更多相关信息请持续关注我们店铺!1). 下列语句中,可以作为无限循环语句的是( )。
A.for(;;){}B.for(i nt i =0;i <10000;i ++){}C.while(false){}D.do {}while(false)正确答案:A答案解析:B的循环终止条件为10000,CD 的终止条件为常量false ,都不能无限循环。
2). 用下列4种排序方法,对一个已排好序(由小到大)的序列进行由小到大排序时,选择( )方法最好。
A.冒泡排序B.直接选择排序C.直接插入排序D.归并排序正确答案:C答案解析:直接插入排序的基本算法是:当插入第i(i>=l)个对象时,前面的V[O],V[l],…,V[i -i]已经排好序,这时,用V[i]的关键码与V[i一1],[i -2]--的关键码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象则向后移。
由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关。
在本题中,序列已经排好序,所以其i的取值达到了最大,也就是序列中元素的个数,其实根本无需比较和交换,所以这种方法是最佳的。
3). 下面叙述中错误的是( )。
A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也被称为DebugD.软件测试应严格执行测试计划,排除测试的随意性正确答案:A答案解析:软件测试的目的是为了发现错误及漏洞而执行程序的过程。
软件测试要严格执行测试计划。
程序调式通常也称Debug ,对被调试的程序进行“错误”定位是程序调试的必要步骤。
Java基础试题姓名一、选择题(每题2分,共30分)1.请写出标识符的命名规则描述正确的是[多选](ABCD )A、由英文字母、数字、_和$组成,长度不限。
B、标识符的第一个字符不能是数字C、标识符区分大小写。
D、标识符不能包含空格。
2. 下列属于正确标识符的选项有[多选](BDGH)A. intB. $_CountC. 3MD. HelloE. b-7F. ms#dG. boolH. D96583、下列哪一个不属于java的基本类型( B )A、intB、StringC、floatD、byte4、下列那条语句能编译通过( A )A、String String=”String”;B、float float=”3.14”;C、int int = 11;D、int i= 1.1;5、下列代码的执行结果是: ( D )public class Test1{public static void main(String args[]){float t=9.0f;int q=5;System.out.println((t++)*(--q));}}A、40B、40.0C、36D、36.06、int长度描述正确的是(A )A、-2^31到2^31 - 1B、-2^32到2^32 - 1C、-2^7到2^7 - 1D、-2^8到2^8 - 17、关于==和equals方法描述不正确的是( D )A、==是运算符、equals是方法B、==只比较对象,equals会先比较对象,如果不是一个对象,会对对象的值进行比较。
C、String a= "1"; String b= "1"; System.out.println(a==b); 输出结果为:trueD、String a=new String("1");String b=new String("1");System.out.println(a==b);输出结果为:true8、下列关于哪个不属于java的特性( D )A、封装B、继承C、多态D、重载9、某一个子类要继承一个父类,要使用关键字(B )A、importB、extendsC、implementsD、java10、某一个子类要实现一个父接口,要使用关键字(C )A、importB、extendsC、implementsD、java11、以下关于接口和类的说法正确的是( C )A、接口和类都可以实现多重继承B、子类可以继承多个父类C、子类可以实现多个接口D、一个子类不能同时继承某一个父类和实现某一个接口12、一个非抽象子类,如果要实现某个接口,则(A )A、必须实现该接口中的所有抽象方法B、可以实现部分抽象方法C、可以不实现任何抽象方法D、无所谓13、下列关于Java线程的说法那些是正确的( D )A、每一个Java、线程可以看成由代码.一个真实的CPU以及数据三部份组成。
第4章Java Web编程习题解析4.1 第1章习题解析1. 略。
2. 答:URL称为统一资源定位符,URL通常由4部分组成:协议名称、页面所在主机的DNS名、可选的端口号和资源的名称。
URI称为统一资源标识符,是以特定语法标识一个资源的字符串。
URI由模式和模式特有的部分组成,它们之间用冒号隔开,一般格式如下:schema:schema-specific-partURI是URL和URN的超集。
3. 答:①是URL,①和②都是URI,③是URN4. 答:动态Web文档技术包括服务器端动态文档技术和客户端动态文档技术,前者包括CGI技术、服务器扩展技术和HTML页面中嵌入脚本技术。
其中HTML页面中嵌入脚本技术包括ASP、PHP和JSP技术。
最流行的客户端动态文档技术是在HTML页面中嵌入JavaScript脚本代码。
使用JavaScript可以设计交互式页面。
与服务器端动态文档不同,JavaScript脚本是在客户端执行的。
5. 答:Servlet是用Servlet API开发的Java程序,它运行在Servlet容器中。
Servlet容器是运行Servlet的软件,主要用来扩展Web服务器的功能。
6. 答:开发Servlet的一般步骤包括:(1)编写Servlet源程序;(2)编译;(3)将Servlet部署到Servlet容器中;(4)访问执行Servlet。
7. 答:<tomcat-install>\lib\servlet-api.jar文件。
8. 答:部署描述文件名是web.xml,它是XML文件,应该存放在Web应用程序的\WEB-INF目录中。
9. 答:当服务器找不到用户请求的资源时将发生404错误。
10. 答:JSP页面是嵌入了Java脚本元素的HTML页面。
11. 答:Servlet主要用来实现业务逻辑和控制逻辑,JSP页面主要用来实现表示逻辑。
Java Web 编程习题解析第4章 4.2 第2章习题解析1. 答:Servlet 接口定义了下面5个方法:public void init(ServletConfig config)public void service(ServletRequest request, ServletResponse response) throws ServletException, IOExceptionpublic void destroy()public ServletConfig getServletConfig()public String getServletInfo()2. 答:Servlet 是在容器中运行的组件,有一个从创建到销毁的过程,其中包括加载和实例化、初始化、提供服务以及销毁几个阶段。
初级Java考试简答题及答案:
1. 什么是Java?
答案:Java是一种面向对象的编程语言,由Sun Microsystems 公司开发。
它被设计成一种跨平台的语言,可以在多个操作系统上运行,并且具有垃圾回收机制,可以自动管理内存。
2. 什么是Java虚拟机(JVM)?
答案:Java虚拟机(JVM)是一种运行Java程序的软件平台。
它是一种虚拟的计算机,能够执行Java字节码,并将其转换为特定操作系统的机器代码执行。
3. 什么是Java类?
答案:Java类是Java编程的基本单元,它定义了一个对象的属性和方法。
每个Java程序都从public class声明开始,其中包含类的名称和属性和方法的定义。
4. 什么是Java对象?
答案:Java对象是通过类的实例化而创建的。
每个对象都有一组属性,这些属性可以在运行时被改变和访问。
对象还可以执行方法,这些方法定义了对象的行为。
5. 什么是Java数组?
答案:Java数组是一种用于存储固定大小的相同类型元素的数据结构。
数组可以是一维或多维的,并且可以通过索引访问元素。
初级部分阶段测试卷选择题1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。
A. public int MAX = 100;B. final int MAX = 100;C. public static int MAX = 100;D. public static final int MAX = 100;2) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。
(选二项)public class Test{public void cal(int x, int y, int z) {}}A. public int cal(int x, int y, float z){ return 0; }B. public int cal(int x, int y, int z){ return 0; }C. public void cal(int x, int z){ }D. public void cal(int z, int y, int x){ }3) 下面Java代码的运行结果是()。
class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() {health = 10;sex = "雄";System.out.println("执行构造方法。
");}public void print() {System.out.println("企鹅的名字是" + name +",健康值是" + health + ",性别是" + sex+ "。
");}public static void main(String[] args) {Penguin pgn = new Penguin();pgn.print();}}A. 企鹅的名字是null,健康值是10,性别是雄。
第一章测试1.下列关于JDK、JRE和JVM关系的描述中,正确的是()。
A:JDK中包含了JRE,JVM中包含了JRE。
B:JRE中包含了JDK,JVM中包含了JRE。
C:JRE中包含了JDK,JDK中包含了JVM。
D:JDK中包含了JRE,JRE中包含了JVM。
答案:D2.下面哪种类型的文件可以在Java虚拟机中运行()A:.classB:.jreC:.javaD:.exe答案:A3.下面关于javac命令作用的描述中,正确的是()。
A:可以将编写好的Java文件编译成.class文件B:可以把数据打包C:可以执行java程序D:可以把文件压缩答案:A4.如果jdk的安装路径为:c:,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项()A:c:jdkinB:c:jdkC:c:jreinD:c:jre答案:A5.下列Java命令中,哪一个可以编译HelloWorld.java文件()A:java HelloWorldB:javac HelloWorldC:java HelloWorld.javaD:javac HelloWorld.java答案:D6.下列选项中,哪些是Java语言的特性()A:面向对象B:简单性C:跨平台性D:支持多线程答案:ABCD7.下列关于JRE目录的描述中,正确的是()?A:JRE是Java运行时环境的根目录B:JRE是一个小型的数据库C:JRE用于存放一些可执行程序D:JRE是Java Runtime Environment的缩写答案:AD8.在Eclipse集成开发环境中,选择【new】->【class】可以创建一个java类。
( )A:对B:错答案:A9.JDK安装成功后,可以将lib目录的路径配置在环境变量path中。
( )A:错B:对答案:A10.Java语言有三种技术平台,分别是JavaSE、JavaME、JavaEE。
2024年软件资格考试程序员(基础知识、应用技术)合卷(初级)自测试题(答案在后面)一、基础知识(客观选择题,75题,每题1分,共75分)1、软件工程的基本原则中,强调通过变更来提高软件可维护性的原则是:A. 单一职责原则B. 开放封闭原则C. 依赖倒置原则D. 迪米特法则2、在软件开发生命周期中,以下哪个阶段不属于软件设计阶段?A. 需求分析B. 系统设计C. 详细设计D. 编码实现3、题目:在软件开发过程中,哪个阶段是确定系统需求和规格说明的阶段?A、需求分析阶段B、设计阶段C、编码阶段D、测试阶段4、题目:在面向对象编程中,下列哪个术语表示将一个对象的方法和数据封装在一起?A、继承B、多态C、封装D、抽象5、在软件开发过程中,以下哪个阶段主要关注软件需求的分析和定义?A. 需求分析阶段B. 设计阶段C. 实现阶段D. 测试阶段6、以下关于面向对象编程(OOP)的描述,哪项是错误的?A. 面向对象编程通过封装、继承和多态实现软件重用。
B. 在面向对象编程中,对象是数据和行为(方法)的封装。
C. 继承是面向对象编程中的一种机制,用于实现代码复用。
D. 面向对象编程中的类是对象的抽象,而对象是类的实例。
7、在面向对象编程中,以下哪个不是面向对象的基本特征?A. 封装B. 继承C. 多态D. 静态8、以下哪个不是Java中的数据类型?A. intC. booleanD. string9、在面向对象编程中,以下哪个原则强调的是将不同的职责分配给不同的对象,以降低对象之间的耦合度?A. 单一职责原则(Single Responsibility Principle,SRP)B. 开放封闭原则(Open/Closed Principle,OCP)C. 依赖倒置原则(Dependency Inversion Principle,DIP)D. 接口隔离原则(Interface Segregation Principle,ISP)11、以下哪个操作不是C语言中的基本输入输出函数?A. printf()B. scanf()C. getchar()D. putchar()13、题目:以下关于软件开发生命周期的说法中,错误的是:A. 软件开发生命周期包括需求分析、设计、编码、测试和维护阶段B. 需求分析阶段主要是确定用户需求,设计阶段是根据需求进行系统设计C. 编码阶段是将设计转换为程序代码,测试阶段是验证程序的正确性和性能D. 软件开发生命周期中,每个阶段都需要进行文档编写,但文档的详细程度不同15、题目:以下哪个选项不是Java中的基本数据类型?A. intB. floatD. String17、以下关于面向对象程序设计(OOP)的描述中,错误的是:A. 面向对象程序设计是一种程序设计范式,它将数据和行为封装在一起B. 面向对象程序设计中的对象具有属性和方法C. 在面向对象程序设计中,继承是实现代码复用的关键机制D. 面向对象程序设计中的多态是通过方法重载来实现的19、在面向对象编程中,以下哪个是封装的典型体现?A. 数据和方法的分离B. 数据的封装和私有化C. 类的继承D. 方法重载21、在软件开发过程中,以下哪个不是常见的软件开发模型?A. 水晶模型B. 瀑布模型C. V型模型D. 研发模型23、以下哪种说法不属于面向对象程序设计的基本特征?()A. 封装B. 继承C. 多态D. 静态25、在软件开发过程中,以下哪个阶段是需求分析的输出结果?A. 系统设计B. 系统测试C. 程序编码D. 系统实现27、以下哪个选项是关于面向对象编程(OOP)中继承的概念的正确描述?A. 继承允许一个类使用另一个类的成员变量和方法,而不需要重新定义。
JA V A基础测试题-CORE JA V A部分1.在main(String[] args)方法内是否可以调用一个非静态方法?答:main方法是静态方法,不能直接去访问非静态成员(成员可以是成员变量或是成员方法)2.请简述java程序运行的过程答: .java程序----编译---→.class----运行---→显示结果3.java中的控制台输出内容换行方式有几种?答:第一种:System.out.println();第二种:System.out.print(“\n”);4.java中的注释有哪几种?分别用来注释什么?答:有三种注释分别为:单行注释: //常用来注释变量多行注释:/**用来注释变量,方法,类*/文档注释:/***用来注释变量,方法,类*/5.请简述java 中标识符命名规则.答:必须是字母,数字,下划线,$组成不能以数字开头;不能是java中的保留字,最好见名知义6.请举例说明Scanner这个类的常用方法答:next() nextLine() nextInt() nextFloat() nextDouble() hasNextInt()7.java中的数据类型分为哪两类?答:数据类型分八个基础数据类型(byte,short,int ,long ,float,double,char,boolean)和引用数据类型(包括类,接口和数组)8.java中全局变量和局部变量的区别?答:位置的区别:java中全局变量就是类中的属性,而局部变量是方法中或代码块中定义的变量;初始值不一样:全局变量不赋值,系统会给默认值,也不会报错,而局变部量必须要赋初始值;作用域不一样:全局变量在整个类所有方法中可以访问,局部变量只能在定义它的那一对括号中才可以访问9.同一个文件里是否可以有两个public类?答:不可能,一个java文件中只能有一个类是public的,而必须是public的类才可以作为java文件的类名.10.方法名是否可以与构造器的名字相同?答:可以。
11.初始化了一个没有run()方法的线程类,是否会出错?答:不会出错第一种方法:直接继承Thread类。
public class Test{public static void main(String[] args){ThreadClass t = new ThreadClass();t.start();System.out.println("end");//输出“end”}}class ThreadClass extends Thread {//Thread类已经实现了空的run()方法。
}第二种方法:实现Runnable接口public class Test{public static void main(String[] args){ThreadClass t = new ThreadClass();Thread thread = new Thread(t);thread.start();System.out.println("end");}}class ThreadClass implements Runnable{public void run() //必须有此方法否则编译报错。
它是Runnable接口中的抽象方法。
{System.out.println("Threads");}}12.局部内部类是否可以访问非final变量?答案:不能访问局部的,可以访问成员变量(全局的)。
class Out{private String name = "";void print(){final String work = "out.local.work";//若不是final的则不能被Animal 使用.int age=10;class Animal//定义一个局部内部类.只能在print()方法中使用.//局部类中不能使用外部的非final的局部变量.全局的可以.{public void eat(){System.out.println(work);//ok//age=20;error not finalSystem.out.println(name);//ok.}}Animal local = new Animal();local.eat();}}13.选择语句case中,允许使用的值有哪些?答案:int,short,char,byte(都在int范围之内,且是整数),jdk1.7开始支持String 类型14.Math,String是不可继承的。
(final类)答:Math,String是不可继承的。
(final类)15.instanceof的作用答:判断某个对象是否属性某个类或某个接口的对象16.构造方法干什么用?有什么特点答:构造方法在创建对象的时候用来创建类的对象,可以给创建的对象进行初始化.构造方法的特点:a1.构造方法的名字必须和类名相同a2.没有返回值也不需要void修鉓.17.=和==的区别答:=表示赋值,==表示判断两个对象是否相等18.一个抽象类与接口的区别答:抽象类要asbstract修鉓,抽象类中有抽象方法和非抽象方法,抽象方法必须用asbstract修鉓,且没有方法体。
接口中是一个“特殊的类”,特殊到里面的属性都是最终静态常量,方法都是抽象方法,没有方法体。
19.Collection与Collections的区别?答案:Collection是一个接口,但Collections却是一个辅助类,里面有很多静态的工具方法。
而且很有用的。
如:reverse(List list);sort(List list, Comparator c)等。
Collections没有实现任何接口。
它直接继承了Object。
20.Java成员变量默认初始化的值。
成员变量类型取值byte-0 short-0 int-0 long-0Lchar-'\u0000' float-0.0F double-0.0D boolean-false 所有引用类型 - null21.面向对象的三大特性?答案:最基本特征:封装,继承,多态。
其他特征:抽象关联,聚合,组合,内聚,耦合22.String是最基本的数据类型吗? String 和StringBuffer的区别?答案:String不是一最基本的数据类型。
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法23.int 和Integer 有什么区别答案:int是基本类型。
Integer是引用类型。
Integer可以把String转换成int。
24.运行时异常与一般异常有何异同?答案:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
25.说出ArrayList,Vector, LinkedList的存储性能和特性.答案:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList 差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
26.数组转换问题。
Object[] object = new Person[2];Person [] person = new Person [3];person = (Person [])object;//可以转换int[] i = new int[2];long[] l = new int[3];i = (long[])l;//不可以转换27.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据Server.java:源代码import .*;import java.io.*;class Server{public Server(){BufferedReader br = null;PrintWriter pw = null;try{ServerSocket server = new ServerSocket(8888);//建立服务器端Socket socket = server.accept();//监听客户端//得到该连接的输入流br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//得到该连接的输出流pw = new PrintWriter(socket.getOutputStream(),true);//先读后写String data = br.readLine();System.out.println(data);//输出到控制台pw.println(data);//转发给客户端}catch(Exception e){e.printStackTrace();}finally{try{//关闭读写流br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Server server = new Server();}}Client.java:源代码import .*;import java.io.*;class Client{public Client(){BufferedReader br = null;PrintWriter pw = null;try{Socket socket = new Socket("localhost",8888);//与服务器建立连接,服务器要先启//得到Socket的输入与输出流br = new BufferedReader(new InputStreamReader(socket.getInputStream()));pw = new PrintWriter(socket.getOutputStream(),true);//先写后读pw.println("Client:你好!");String data = null;while(true){data = br.readLine();if(data!=null) break;}System.out.println(data);}catch(Exception e){e.printStackTrace();}finally{try{br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Client c = new Client();}}28.谈谈final, finally, finalize的区别。