java面试题大全7.pdf

上传人:无*** 文档编号:90887940 上传时间:2023-05-18 格式:PDF 页数:88 大小:14.88MB
返回 下载 相关 举报
java面试题大全7.pdf_第1页
第1页 / 共88页
java面试题大全7.pdf_第2页
第2页 / 共88页
点击查看更多>>
资源描述

《java面试题大全7.pdf》由会员分享,可在线阅读,更多相关《java面试题大全7.pdf(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、J A V A 面试题最全集一、J a v a 基础知识L J a v a 有那些基本数据类型,St r in g 是不是基本数据类型,他们有何区别。2 .字符串的操作:写一个方法,实现字符串的反转,如:输入a b c,输出c b a写一个方法,实现字符串的替换,如:输入b b b w lir b b b,输出b b b h h t c c c。3 .数据类型之间的转换如何将数值型字符转换为数字(I n t e g e r,Do u b le)如何将数字转换为字符如何取小数点前两位,并四舍五入。4 .日期和时间如何取得年月日,小时分秒如何取得从1 9 7 0 年到现在的毫秒数如何获取某个日期是

2、当月的最后一天如何格式化日期5 .数组和集合6 .文件和目录(I/O)操作如何列出某个目录下的所有文件如何列出某个目录下的所有子目录判断一个文件或目录是否存在如何读写文件7 .J a v a 多态的实现(继承、重载、覆盖)8 .编码转换,怎样实现将GB 2 3 1 2 编码的字符串转换为I S0-8 8 5 9-1 编码的字符串。9 .J a v a 中访问数据库的步骤,St a t e m e n t 和 Pr e p a r e d St a t e m e n t 之间的区别。1 0 .找出下列代码可能存在的错误,并说明原因:二、J SP&Se r v le t 技术1 .描述J SP和

3、 Se r v le t 的区别、共同点、各自应用的范围2 .在 W e b 开发中需要处理H T ML 标记时,应做什么样的处理,要筛选那些字符(&)3 .在J SP中如何读取客户端的请求,如何访问C GI 变量,如何确定某个J s p 文件的真实路径。4 .描述C o o kie 和 Se s s io n 的作用,区别和各自的应用范围,Se s s io n 工作原理。5 .列出J s p 中包含外部文件的方式,两者有何区别。6 .说明J s p 中e r r o r Pa g e 的作用,应用范围。7 .介绍在J s p 中如何使用J a v a B e a n So8 .简单介绍J

4、SP的标记库9 .J s p 和 Se r v le t 中的请求转发分别如何实现。三、J 2 EE相关知识1 .介绍 J 2 EE、J 2 SE、J 2 SE 的区别。2 .J 2 EE是一种技术还是一种平台,他提供了那些技术。3 .什么是A p p lic a t io n Se r v e r,它有什么功能和优点。4 .简单介绍连接池的优点和原理。5 .W e b.xm l的作用四、其他1 .W e b 安全性的考虑(表单验证、浏览器Basi c 方式的验证,应用程序的安全性,S S L,代码考虑)2 .简单介绍您所了解的MVC。3 .简单介绍所了解的X ML。4 .文档和编码规范5 .

5、J ava中的分页、效率考虑。6 .简单介绍您所了解的st ru c t sol.x m l 在项目中的作用2.s-EJ B与 e-EJ B的区别3.会话面的作用4.c m p与 b m p的优缺点5.j 2 m e程序的必需的几个部分6.c/s与b/s的区别7.构建一个c onnec t pool,然后再调用它,8.j 2 ee平台与d ot net 平台的区别9.ej b 的 l i f e c y c l e10.sessi on b ean 和 ent i t y b ean 的区别11.ej b 中的 t ransac t i on 机制12.sy nc h roni z ed (生

6、产者和消费)13.S t ri ng 和 S t ri ng Bu f f er14.S eri al i z ab l e15 .MVC(S t ru t s的工作流程)16 .什么是MDA17 .t c p与u d p的区别18.链表与散列表和数组的区别19.堆和栈的区别2 0.ej b 的分类及区别2 1.你对现在软件业以及国内软件业的看法2 2 .谈谈j ava多线程2 3 .谈谈文件加密技术2 4 .软件开发生命周期2 5 .路由协议种类及特点2 6 .j ava的awt 和 swi ng 组件的GUI 设计的关键2 7 .对于j ava流的认识2 8.简单描述一下awt 与 swi

7、 ng 区别。2 9.简述j ava编程中事件处理模式。3 0.你编写过appl et 吗?appl et 的安全权限如何?试列举j ava appl i c at i on或者 appl et 中与servl et/j sp通信可以采用的方式。3 1.简述逻辑操作(如&,|)与条件操作(如|)的区别。3 2 .简 述 J ava S erver P ag e和 S ervl et 的联系和区别。3 3 .简述 sy nc h roni z ed 和 j ava.u t i l,c onc u rrent,l oc ks.Loc k 的异同?3 4 .EJ B规范规定EJ B中禁止的操作有哪些

8、?3 5 .j ava除了 8 种基本类型外,在虚拟机里还有哪一种,有什么作用?3 6 .除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式?3 7 .c l assl oad er 中,J DK 的 AP I、Cl asspat h 中的同 web-i nf 中的 c l ass 加载方式有什么区别?3 8.列举三种以上垃圾回收算法,并比较其优缺点?3 9.编写代码实现一个线程池4 0.描述一下J VM加载c l ass文件的原理机制?4 1.试举例说明一个典型的垃圾回收算法?4 2 .请用j a v a 写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来4 3

9、 .请写一个j a v a 程序实现线程连接池功能?4 4 .给定一个C 语言函数,要求实现在j a v a 类中进行调用。4 5 .如何获得数组的长度?4 6.访问修饰符 p u bl i c/p r i v a t e/p r o t e c t e d/缺省的修饰符”的使用4 7 .用关键字fi na l 修饰一个类或者方法时,有何意义?4 8 .掌握类和对象的概念,掌握面向对象编程的本质4 9 .静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法?5 0 .J A VA 语言如何进行异常处理,关键字:t h o r w s,t h r o w,t r y,c a t c h

10、,fi na l l y5 1 .O bj e c t 类(或者其子类)的fi na l i z e。方法在什么情况下被调用?5 2 .一个“.j a v a”原文件中是否可以包括多个类(不是内部类)?5 3 .掌握内部类和接口的概念5 4 .St r i ngTo k e ni z e r 类的使用5 5 .数据结构,如何遍历L i s t 中的元素?如果要按照键值保存或者访问数据,使用什么数据结构?要掌握Co l l e c t i o n相关的接口和类的使用5 6.使用St r i ngB u ffe r 类与St r i ng类进行字符串连接时有何区别?5 7 .调用Th r e a

11、d 类的d e s t r o y 0方法有什么后果?5 8 .多线程,用什么关键字修饰同步方法?s t o p。和 s u s p e nd。方法为何不推荐5 9 .使用s o c k e t 建立客户端与服务器的通信的过程60 .J A VA 语言国际化应用,L o c a l e 类,Uni c o d e61 .描述反射机制的作用62 .如何读写一个文件?63 .在图形界面中,一个按钮如何处理鼠标点击事件?64 .在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框?65 .如何加载图片?66.什么是模态对话框?67 .阐述M VC的概念68 .G UI 布局管理器的使用,F l o

12、 w L a y o u t,B o r d e r L a y o u t,G r i d B a gL a y o u t69 .如何构造一棵树?选择树的一个节点时,如何得到这个节点?70 .向编辑框中输入字符时,如何控制只输入整数?71 .描述使用J D BC连接数据库的过程72 .E J B分为几类?什么是BM P,CM P?73 .什么是J N D I?74.AD O 是什么?Ac t i v e X 数据对象,是一个应用级程序接口.75.四种J D BC方式?目前的版本?76.E J B有哪几种?区别是什么?77.J a v a Be a n与E J B有什么区别?78.软件开发生

13、命周期有哪几个阶段?79.软件开发有哪些因素?80 .软件开发中如何进行版本控制?81 .U M L 中,类视图如何表示类中的继承与聚合?82 .客户端游标与服务器端游标的区别?83 .动态游标与静态游标的区别?84.d o t ne t 由哪几个基本框架组成?85.O r a c l e 中 S G A 是什么?86.w e b s e r v e r s 是什么?87.U N I X 中Q T是什么意思?88.在软件开发生命周期中的哪个阶段开始测试?89.d o t ne t 与 J 2 E E 的比较?90 .什么是 Ac t i v e X?91 .J a v a 中 I D L 是什

14、么?92 .I S 0 90 0 0 和 CM M 是什么?I S 0 90 0 0 和 CM M (软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CM M 的五个成熟度等级。第一,谈谈 f i na l,f i na l l y,f i na l i z e 的区别。f i na l?修饰符(关键字)如果一个类被声明为f i na l,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为a b s t r a c t 的,又被声明为f i na l 的。将变量或方法声明为f i na l,可以保证它们在使用中不被改变。被声明为f i na l 的变量必须在声明

15、时给定初值,而在以后的引用中只能读取,不可修改。被声明为f i na l 的方法也同样只能使用,不能重载f i na l l y?再异常处理时提供f i na l l y 块来执行任何清除操作。如果抛出一个异常,那么相匹配的c a t c h 子句就会执行,然后控制就会进入f i na l l y 块(如果有的话)。f i na l i z e?方法名。J a v a 技术允许使用f i n al i z e()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在O b j e c t 类中定义的,因此所有的类都继

16、承了它。子类覆盖f i n al i z e()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。第二,Anonymous I nne r Class(匿名内部类)是否可以e xte nds(继承)其它类,是否可以 imple me nts(实现)inte rface (接口)?匿名的内部类是没有名字的内部类。不能e xte nds(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。第三,S tatic Ne ste d Class和 I nne r Class的不同,说得越多越好(面试题有的很笼统)。Ne ste d C

17、lass(一般是 C+的说法),I nne r Class(一般是 JAVA 的说法)。Java内部类与C+嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http:/www.frontfre e.ne t/article s/se rvice s/vie w.asp?id=704&page=1注:静态内部类(I nne r Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2 不能从一个static内部类的一个对象访问一个外部类对象第四,&和&的区别。&是位运算符。&是布尔逻辑运算符。第五,HashMap和 Hashtable 的区别。都属于Map接口的类,实

18、现了将惟一键映射到特定的值上。HashMap类没有分类或者排序。它允许一个null键和多个null值。Hashtable 类似于HashMap,但是不允许null键 和 null值。它也比HashMap慢,因为它是同步的。第六,Colle ction 和 Colle ctions 的区别。Colle ctions是个java,util下的类,它包含有各种有关集合操作的静态方法。Colle ction是个java,util下的接口,它是各种集合结构的父接口。第七,什么时候用asse rt o断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系

19、统会报告一 b Asse rtionErroro它用于调试目的:asse rt(a 0);/throws an Asse rtionError if a ch a r、l o n g、f l o a t、d o ub l e b o o l e a n 和 sh or toj a va.l a n g.S tr i n g 类是f i n a l 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用S tr i n g Buf f e r 类3、int 和I n te g e r 有什么区别J a v a 提供两种不同的类型:引用类型和原始类型(或内置类型)。I n

20、t是 j ava 的原始数据类型,I n te g e r 是 j a va 为 i n t提供的封装类。J a va 为每个原始类型提供了封装类。原始类型封装类b o o l e a n Bo o l e a nch a r Ch a r a cte rb y te By tesh o r t S h o r ti n t I n te g e rl o n g L o n gf l o a t F l o a td o ub l e Do ub l e引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类

21、型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为n ul l,而原始类型实例变量的缺省值与它们的类型有关。4、S tr i n g 和 S tr i n g Buf f e r 的区别J AV A平台提供了两个类:S tr i n g 和 S tr i n g Buf f e r,它们可以储存和操作字符串,即包含多个字符的字符数据。这个S tr i n g 类提供了数值不可改变的字符串。而这个S tr i n g Buf f e r 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用S tr i n g Buf f e ro典

22、型地,你可以使用S tr i n g Buf f e r s来动态构造字符数据。5、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。j a va 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。6、说出S e r vl e t的生命周期,并说出S e r vl e t和 CG I 的区别。S e r vl e t被服务器实例化后,容器运行其i n i t方法,请求到达时运行其se r vi ce 方法,se r vi ce 方法自动派遣运行与请求对应的d

23、 o X X X 方 法(d o G e t,d o Po st)等,当服务器决定将实例销毁的时候调用其d e str o y 方法。与 cg i 的区别在于se r vl e t处于服务器进程中,它通过多线程方式运行其se rvi ce 方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CG I对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于s e r v l e t。7、说出A r r a y L i s t,V e ct o r,L i n k e d L i s t 的存储性能和特性A r r a y L i s t 和 V e ct o r 都是使用数组方式存储数

24、据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,V e ct o r由于使用了 s y n ch r o n i z e d 方 法(线程安全),通常性能上较A r r a y L i s t 差,而 Linke dList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。8 EJB是基于哪些技术实现的?并说出S e ssionBe an和 EntityBe an的区别,S tate fulBe an 和 S tate

25、le ssBe an 的区别。EJB 包括 S e ssion Be an、Entity Be an Me ssage Drive n Be an,基于JNDI、RMI、JAT等技术实现。S e ssionBe an在 J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBe an被用来代表应用系统中用到的数据。对于客户机,S e ssionBe an是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。对于客户机,EntityBe an是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。S

26、e ssion Be an 还可以再细分为 S tate ful S e ssion Be an 与 S tate less S e ssion Be an,这 两 种 的 S e ssion Be an都可以将系统逻辑放在me thod之中执行,不 同 的 是 S tate ful S e ssion B e a n 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的S tate ful S e ssion Bea n 的实体。S tate le ss S e ssion B e a n 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫S tate le ss

27、 S e ssion Be an的时候,EJB Containe r并不会找寻特定的S tate le ss S e ssion Bea n 的实体来执行这个me thodo换言之,很可能数个使用者在执行某个State le ss S e ssion Be an 的 me thods 时,会是同一个 Be an 的 I nst a n c e 在执行。从内存方面来看,S tate ful S e ssion B e a n 与S tatele ss S e ssion Be an 比较,S tate ful S e ssion Be an 会消耗 J2EE S e rve r较多的内存,然 而

28、 S tate ful S e ssion Be an 的优势却在于他可以维持使用者的状态。9、Colle ction 和 Colle ctions 的区别。Colle ction是集合类的上级接口,继承与他的接口主要有Set 和 List.Colle ctions是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。10、&和&的区别。&是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(and)o11、HashMap 和 Hashtable 的区别。HashMap是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map接口,主要

29、区别在于HashMap允许空(null)键 值(ke y),由于非线程安全,效率上可能高于Hashtable。HashMap 允许将 null 作为一 e ntry 的 ke y 或者 value,而 Hashtable 不允许。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKe yo因为contains方法容易让人引起误解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Javal.2 引进的 Map inte rface 的一个实现。最大的不同是,Hashtable 的方法是S

30、ynchronize 的,而HashMap不是,在多个线程访问Hashtable 时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。H ash tabl e和H ash M ap采用的h ash/reh ash算法都大概一样,所以性能不会有很大的差异。1 2 fi n al,fi n al l y,fi n al i z e 的区别。f i n a l用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。fi n al l y是异常处理语句结构的一部分,表示总是执行。fi n al i z e是O bj ec t类的一个方法,在垃圾收集器执行的时候会调用被

31、回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。1 3、sl eep ()和wai t()有什么区别?sl eep是 线 程 类(T h read)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调 用sl eep不会释放对象锁。wai t是O bj ec t类的方法,对此对象调用wai t方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出n o ti fy方 法(或n o ti fyA l l)后本线程才进入对象锁定池准备获得对象锁进入运行状态。1 4、O verl o ad和O verri

32、 d e的区别。O verl o ad ed的方法是否可以改变返回值的类型?方法的重写O verri d i n g和重载O verl o ad i n g是J ava多态性的不同表现。重写O verri d i n g是父类与子类之间多态性的一种表现,重 载O verl o ad i n g是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我 们 说 该 方 法 被 重 写(O verri d i n g)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数

33、类型,则称为方法的重载(O verl o ad i n g)o O verl o ad ed的方法是可以改变返回值的类型。1 5、erro r和exc ep ti o n有什么区别?e r r o r表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。e x c e p t i o n表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。1 6、同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共

34、享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。1 7 a b s t r a c t c l a s s 和 i n t e r f a c e 有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(a b s t r a c t c l a s s),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建a b s t r a c t类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽

35、象构造函数或抽象静态方法。A b s t r a c t类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接 口(i n t e r f a c e)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义s t a t i c f i n a l 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上

36、调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,i n s t a n c e o f 运算符可以用来决定某对象的类是否实现了接口。1 8、h e a p 和 s t a c k 有什么区别。栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素1 9、f orwa rd 和 re d ire c t 的区别f orwa rd 是服务器请求资源,服务器直接访问目标地址的U R L,把那个U R L 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服

37、务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。re d ire c t 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以se ssion,re que st 参数都可以获取。2 0、E J B 与 J A V A B E A N 的区别?J a va B e a n 是可复用的组件,对 J a va B e a n 并没有严格的规范,理论上讲,任何一个J a va 类都可以是一个B e a n。但通常情况下,由于J a va B e a n 是被容器所创建(如 T om c a t)的,所以J a va B e

38、a n 应具有一个无参的构造器,另外,通常J a va B e a n 还要实现S e ria l iz a b l e 接口用于实现B e a n 的持久性。Ja va B e a n 实际上相当于微软C O M 模型中的本地进程内C O M 组件,它是不能被跨进程访问的。E n t e rprise J a va B e a n 相当于D C O M,即分布式组件。它是基于J a va 的远程方法调用(R M I)技术的,所以E J B 可以被远程访问(跨进程、跨计算机)。但 E J B 必须被布署在诸如W e b spe re、W e b L og ic 这样的容器中,E J B 客户从

39、不直接访问真正的E J B 组件,而是通过其容器访问。E J B 容器是 E J B 组件的代理,E J B 组件由容器所创建和管理。客户通过容器来访问真正的E J B 组件。2 1、S t a t ic N e st e d C l a ss 和 I n n e r C l a ss 的不同。S t a t ic N e st e d C l a ss是被声明为静态(st a t ic)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。2 2、J S P 中动态I N C L U D E 与静态I N C L U D E 的区别?动态 I N C L

40、U D E 用 jsp:in c l ud e 动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态I N C L U D E 用 in c l ud e 伪码实现,定不会检查所含文件的变化,适用于包含静态页面 i n c l u d e f i l e-i n c l u d e d.h t m%23 什么时候用a s s e r t oa s s e r t i o n (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,asse rtion就是在程序中的一条语句,它对一个boole an表达式进行检查,一个正确程序必须保证这个b

41、oole an表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,asse rtion用于保证程序最基本、关键的正确性。asse rtion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。24、G C是什么?为什么要有GC?G C是垃圾收集的意思(Gabage Colle ction),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显

42、示操作方法。25 short si=1;si=si+1;有什么错?short si=1;s1+=1;有什么错?short si=1;si=si+1;(sl+1 运算结果是 int 型,需要强制转换类型)short si=1;si+=1;(可以正确编译)26、Math,round(11.5)等於多少?Math,round(-11.5)等於多少?Math,round(11.5)=12Math,round(-11.5)=-11round方法返回与参数最接近的长整数,参数加1/2后求其floor.27 S tring s=ne w S tring(xyz”);创建了几个 S tring Obje ct

43、?两个28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。public class Thre adTe stlprivate int j;public static void main(S tring args)Thre adTe stl tt=ne w Thre adTe stl();I nc inc=tt.ne w I nc();De c de c=tt.ne w De c();for(int i=0;i2;i+)Thre ad t=ne w Thre ad(inc);t.start();t=ne

44、 w Thre ad(de c);t.start();)private synchronize d void inc()j+;S yste m,out.printin(Thre ad.curre ntThre ad().ge tName()+“-inc:+j);)private synchronize d void de c()S y s t e m,o u t.p r i n t i n(T h r e a d.c u r r e n t T h r e a d().g e t N a m e()+-d e c:+j);)c l a s s I n c i m p l e m e n t s

45、 R u n n a b le p u b li c v o i d r u n()f o r(i n t i=0;i 10 0;i+)i n c ();)c la s s D e c i mp le me n t s Ru n n a b le p u b li c v o i d r u n()f o r(i n t i=0;i j a v a tes t.C h i l dC l a s sF a th er C l a s s C r ea teF a th er C l a s s C r ea teC h i l dC l a s s C r ea te6、内部类的实现方式?答:示

46、例代码如下:pa c k a g e tes t;pu b l i c c l a s s Ou ter C l a s spr i v a te c l a s s I n ter C l a s spu b l i c I n ter C l a s s()(Sys tem,o u t.pr i n tl n(I n ter C l a s s C r ea te);)pu b l i c Ou ter C l a s s O(I n ter C l a s s i c =n ew I n ter C l a s s();Sys tem,o u t.pr i n tl n(Ou ter C

47、 l a s s C r ea te);)pu b l i c s ta ti c v o i d m a i n(Str i n g a r g s)(Ou ter C l a s s o c 二 n ew Ou ter C l a s s O;)输出结果:C:j a v a tes t/Ou ter C l a s sI n ter C l a s s C r ea teOu ter C l a s s C r ea te再一个例题:pu b l i c c l a s s Ou ter C l a s s pr i v a te do u b l e dl =1.0;/i n s er

48、t c o de h er e)Y o u n eed to i n s er t a n i n n er c l a s s dec l a r a ti o n a t l i n e 3.Wh i c h two i n n erc l a s s dec l a r a ti o n s a r ev a l i d?(C h o o s e two.)A.c l a s s I n n er On e(pu b l i c s ta ti c do u b l e m eth o da O r etu r n dl;)B.pu b l i c c l a s s I n n er

49、On es ta ti c do u b l e m eth o da()r etu r n dl;)C.pr i v a te c l a s s I n n er On edo u b l e m eth o da()r etu r n dl;)D.s ta ti c c l a s s I n n er On epr o tec ted do u b l e m eth o da()r etu r n dl;)E.a b s tr a c t c l a s s I n n er On epu b l i c a b s tr a c t do u b l e m eth o da O;

50、)说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故A、B错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;r etu r n d l 出错。故 D错三.非静态内部类的非静态成员可以访问外部类的非静态变量。故 C正确四.答案为C、E7、垃圾回收机制,如何优化程序?希望大家补上,谢谢8、fl o a t 型 fl o a t f=3.4 是否正确?答:不正确。精度不准确,应该用强制类型转换,如下所示:fl o a tf=(fl o a t)3.49、介绍JA VA 中的C o l l ec ti o n F r a m eWo r k(包

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

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

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

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