《Java面试题整理.pdf》由会员分享,可在线阅读,更多相关《Java面试题整理.pdf(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录一、Java 基础.11、描述 卜JVM 加载class文件的原理机制.12、Java程序怎么优化?.13、个Java源文件中是否可以包括多个类(不是内部类)?有什么限制?.14,char型变量中能不能存贮个中文汉字.15、逻辑操作符(&,#)与条件操作符(&,|)的区别.16、Math.round(11.5)等於多少?Math.round卜 11.5)等於多少?.21、Java 有没有 goto?.28、int 和 Integer 的区别.29、如何将数值型字符转换为数字?如何去小数四舍五入保留小数点后两位。.210,short si=1;si=s i+1;和 short si=1;s
2、i+=1;有什么错误.211,float f=3.4 是否正确?.312、String 和 StringBuffer 的区别.313、String是否是最基本的数据类型,能否被继承.314、String s=new String(xyz”);创 建 儿个 String Object?.315、数组有没彳j length。这个方法?String有没有length。这个方法?.316、i 都有哪几种方法?用 JA珈实现一个快速扑,.317、swtich是否能作用在b yte 匕 是否能作用在long 1.是否能作用在String I:.318、在 JAVA中,如何跳出当前的多重嵌套循环?.419、
3、关于日期和时间的儿个间题.420、一个对纵被当作参数传递到一个方法,是值传递还是引用传递.421、什么时候用assert?.422、G C 是什么?为什么要有GC?.423、垃圾回收的优点和原理.524、垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?.525、java中会存在内存油漏叫 请简单描述.526、JAVA事件委托机制的概念.527heap和 stack有什么区别,.528、谈谈 final,finally,finalize 的区别。.529、&和&的区别.630、编程题:用最有效率的方法算出2 乘以8 等於几?.631、两个对象值相同(x.equals(y)=t
4、ru e),但却可有不同的hash co d e,这句话对不对?.632、我们在w eb鹿川开发过程中经M 咫到 iso8859-l等,如何输出一个某种编6马的字符申?.633、什么是类的反射机制?.734、=和equals方法究竟有什么区别?.7二、面向对象.81、面向对软的特征.82、什么是O O P?什么是类?清时比类和对象实例之间的关系。.83、简述类与对望的概念.9心 什么是属性与方法?.95、什么是封装?.96、说出一些常用的类,包,接口,请各举5 个.97、接口有什么优点?.108、静态变量和实例变量的区别.109,是否可以从一个static方法内部发出对#static方法的调用
5、?.1010、super。与 this。的区别?.1011、ja v a 有几种修饰符?分别用来修饰什么?.1112 作用域public,private,protected,以及不写时的区别.1113、final,finally,finalize 的区别.1114、内部类可以引用他包含类的成员吗?有没有什么限制?.1215、匿名内部类是否可以继承其它类?是否可以实现接口?.1216、java中实现多态的机制是什么?.1217、Overload和 Override的区别,Overloaded的方法能否改变返回值的类型?.1218、abstract class 和 interface 的区别.12
6、19、接 n 是否可继承接口?抽蟹类是否可实现接口?抽象类是否可继承实体类?.1320 abstract 的 method 是否可同时是 static 或 native 或 synchronized?.1321 构造器 Constructor 是否可被 override.1322、写 clone。方法时,通常都有一行代码,是什么?.1323、Object类的概述.1324、Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可 以 implements(实现)i nterface(接】)?.13三、集 合(数据结构).141、集合类都有哪些.142
7、、介绍 JAVA 中的 Collection Framework.143、ArrayList 和 Vector 的区别.144、HashMap 和 Hashtable 的区别.155、Collection 和 Collections 的区别.156、说出 ArrayList,Vectoc LinkedList 的存储性能和特性.157、heap 和 stack 的区别.158、List,Set,Map 是否继承自 Collection 接 口?.159、List,Set,M ap三个接口,存取元素时,各有什么特点?.1610、Set里的元素是不能重更的,那么用什么方法来区分币:复与否呢?是用=
8、还 是 equals。?它们有何区别?16两个对象值相同(x.equals(y)=true),但却可有不同的hash c o d e,这句话对不对.16四、I/O 操作.161、ja v a 中有几种类型的流?JD K 为每种类型的流提供了一些抽象类以供继承,他们分别是哪些类?162、文件和目录(I/O)操作.163、什么是java序列化?如何实现java序列化?.17五、异常.181、Java中的异常处理机制的简单原理和应用。.18JAVA i吾言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在 try块中可以抛出异常吗?.183、e
9、rror 和 exception 的区别.184、运行时异常与一般异常的区别.195、给我一个你最常见到的runtime exception(运行时异常).196、try 里有一个return语句,那 finally里的代码会不会被执行?在 return前还是后执行?.19六、JDBC.191、Class.forName的作用?为什么要用?.192、JDBC调用数据库的基本步骤.193、Statement 与 preparedstatement 区别.20七、数据库.201、说出数据连接池的 作机制是什么?.202、JD O 是什么?.203、动态查询如何实现?表的结构变化后,如果不需要修改程
10、序,如何设计和实现查询?204、如何优化数据库,如何提高数据库的性能?.205,设计数据库应注意那些问题.216、表与表之间的关联关系.217、主键和外键的区别.218、名词解稀:批、触发器、事务、锁、子查询、索引、视图、存储过程.219、游标的作用?如何知道游标已经到了最后?.2210、事前触发和事后触发有何区别?语句级触发和行级触发有何区别?.2211、数据库设计的必要性及设计步骤.2312、什么是数据模型?什么是规范化?.2313、谈谈数据库设计的三范式.2314、MySql-SQLServer-Oracle 分页 SQL.2315、SQ L常用命令:.2516、SQL 练习 1.261
11、7、SQL 练习 2.26八、多线程.281、启动个线程是用run()还 是 start。?.282、sleep()和 w ait()的区别.283、stop。和$u$pend()方法为何不推荐使用?.284、同步和异步有何异同,在什么情况下分别使用他们.295、当一线程进入一对象的一个synchronized方法后,其它线程可否进入此对猿的其它方法.296、线程同步的方法.297、多线程有几种实现方法.298、线程的基本概念、线程的基本状态以及状态之间的关系.309、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同.3010、多线程的
12、优点.3011、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?30九、JSP/Servlet.301,forward 和 sendRedirect 的区别.302、JSP中动态INCLUDE与静态INQUDE的区别.313、JSP的内置对象及方法.314、JSP的常用指令.315、说 出 Servlet的生命周期,并说出Servlet和 CG I的区别.326、什么情况下调用doGet()和 doPost().327,如何现实servlet的单线程模式.328,描 述 Cookie和 Session的作用,区别和各自的应用范围,Session工
13、作原理.329、页面间对象传递的方法.3310、JSP和 Servlet有哪些相同点和不同点,他们之间的联系.3311、四种会话跟踪技术.3312、Request对象的主要方法.3413,Servlet执行时一般实现哪几个方法.3414、说出在JSP页面里是怎么分页的?.3515、简单说说tomcat的配置?.3516、如何实现一个自定义的servlet?.3517jsp 就是一个servlet是否正确?.35十、框 架(strutss spring、hibernate、ibatis、spring mvc).361、谈谈你对Swing的M VC模式的理解?.362、M VC结构在JTable中
14、怎样实现的,这种结构有什么好处?.363、M VC的各个部分都有那些技术来实现?如何实现?.364、概述stru ts.以及struts如何实现M VC架构的?.365、简单描述STRUTS的主要功能.376、Struts的处理流程.377、请说出struts框架的几大组件?.378、Action是不是线程安全的?如果不是有什么方式可以保证Action的线程安全?如果是,说明原因(struts 1).389,strutsl.2和strut$2.0的区别?如何控制两种框架中的单例模式?.3810、spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为.3911、什么是 Hiber
15、nate?.3912、在myeclipse加入hibernate环境的全过程是什么?.4013、Hibernate有哪几种查询数据的方式.4014、hibernate的核心配置文件是什么及其作用?.4015、Criteria 的作用?.4016、对象的三大状态.4117、hibernate常见优化策略.4118、load。和 get()的区别?.4219、谈谈 hibernate 的延迟加教和 openSessionlnView?.4220、jdbc、hibernate,ibatis 的区别.4221、什么是aop,aop的作用是什么?.4322、依赖注入的方式有几种,各是什么?.4323、H
16、ibernate工作原理及为什么要用?.4324、Hibernate是如何延迟加载?.4425、说 下 Hibernate的缓存机制.44十一、其它.441、J2EE 是什么?.442、J2EE中常用的名词解释.443、名词解释:WEB SERVICE.JAXP、JAXM、SOAP、UDDk WSDL.454、J2EE是技术还是平台还是框架?.465、XM L文档定义有几种形式?它们之间有何本质区别?解 析 XM L文档有哪几种方式?.466、你在项目中用到了 xm l技术的哪些方面?如何实现的?.467、j2ee常用的设计模式?说明工厂模式.478、EJB2.0有哪些内容?分别用在什么场合?
17、EJB2.0和 EJB1.1的区别?.479、EJB 与 JAVA BEAN 的区别?.4710,EJB 是基于哪些技术实现的?并说Hl SessionBean 和 EntityBean.StatefulBean 和 StatelessBean的区别 4811、EJB包括SessionBean和 EntityBean,说出他们的生命周期,及如何管理事务的?.4812、EJB的角色和三个时象.4813、EJB容器提供的服务.4914、EJB规范规定EJB 中禁止的操作有哪些?.4915、remote接口和home接口主要作用.4916、bean实例的生命周期.4917、EJB的激活机制.5018
18、、EJB的几种类型.5019、客眼端调用EJB对象的几个基本步骤.5020、EJB需直接实现它的业务接口或Home接口吗,请简述理由.5022、应用服务器布那些?.5022、应用服务器与W EB 服务器的区别?.5023、如何给weblogic指定大小的内存?.5024、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?.5125、如何启动时不需输入用户名与密码?.5126、在weblogic管理 制 台 中 对,个应用域进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?.5127说说weblogic中一个Domain的缺省目录结构.5128、在weblog
19、ic中发布ejb需涉及到哪些配置文件.5129、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进 行ssl的配置.5130、如何查看在weblogic中已经发布的EJB?.5131、编程题:写一个Singleton出来.5232、你在项目中用到了 xml技术的哪些方面?如何实现的?.5333、什么是 Web Service?.5334、什么是W eb容器?.5335、描述一下你最常用的编程风格.53一、Java基础1、描 述 下JVM加载class文件的原理机制JVM中类的装教是由ClassLoader和它的子类来实现的Java ClassLoader是 个重要
20、的Java运行时系统组件。它负资在运行时查找和装入类文件的类。2、Java程序怎么优化?答:提高JAVA的性能,般考虑如下的四个主要方面:1、程序设计的方法和模式2,JAVA布署的环境。3、JAVA应用程序的实现4、硬件和操作系统为了提高JAVA程序的性能,需要遵循如下的六个步骤c a)明确对性能的具体要求b)了解当前程序的性能c)找到程序的性能瓶颈d)采取适当的措施来提高性能e)只进行某一方面的修改来提高性能f)返回到步骤g)继续作类似的工作,-宜达到要求的性能为止。3、个.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。必须只有一个类名与文件名相同。4、char型变量
21、中能不能存贮个中文汉字能够定义成为一个中文的,因为java中以unic。加 编码,-个char占2个字节16位,所以放个中文是没问题的S、逻辑操作符(&,|力与条件操作符(&,|)的区别1.条件操作符:只能用于关系运算,会产生短路,即该符号左边的表达式可以确定整个关系表达式的值时,便不再运算右边的表达式2.逻辑操作符:1/56不仅可以用于关系运算,还可以用于位运算。不会产生短路,即无论左边表达式取什么值都要运算右边的表达式6、Math.round(11.5)等於多少?Math.round(-1L5)等於多少?Math.round(lL5)等于 12:M ath.roundHIS)等于-11。7
22、、Java 有没有 goto?Java I1的保留字,现在没有在Java中使用。8、in t和Integer的区别Ja v a提供两种不同的类型:引用类型和原始类型(基本数据类型)。in t是java的原始类型,Integer是java为int 提供的封装类。Java 为每个原始类型提供了封装类:Boolean-Boolean char-Character byte-Byte short-Shortint-lnteger long-Long float-Float double-Double引用类型和原始类型具有不同的特征和方法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储等。当
23、引用类型和原始类型用作某个类的实例数据时所指定的缺省值不同:对能引用实例变量的缺省值为n u ll,而原始类型实例变量的缺省值与它们的类型有关。Ja va提供两种不同的类型:引用类型和原始类型(基本数据类型)。in t是java的原始类型,Integer是java为int提供的封装类。Java 为每个原始类型提供了封装类:Boolean-Boolean char-Character byte-Byte short-Short int-lntegerlong-Longfloat-Floatdouble-Double引用类型和原始类型具有不同的特征和方法,它们包括:大小和速度问题,这种类型以哪种类
24、型的数据结构存储等。当引用类型和原始类型用作某个类的实例数据时所指定的缺省值不同:对软引用实例变量的缺省值为n u ll,而原始类型实例变量的缺省值与它们的类型有关。9、如何将数值型字符转换为数字?如何去小数四舍五入保留小数点后两位。1、Integer.parselnt(111);Double.parseDouble(,411.22);2、double num=2.625;double tmp=Math.roundfnum*100)/lOOd;10、short si=l;s l=sl+1;和 short si=1;si+=1;有什么错误short si=1;si=s i+1;有错,数据类型不匹
25、配short si=1;si+=1;没有错误2/5611,floatf=3.4 是否正确?不正确。精度不准确,应该用强制类型转换,如卜所示:float f=(float)3.4或 者floatf=3.4f;12、String 和 StringBuffer 的区别String类提供了数值不可改变的字符串,而StringBuffer类提供的字符串可以进行修改。当你知道字符数据要改变的时候你就可以使川StringBuffer。典型地,你可以使用StringBuffer来z为态构造字符数据。13、String是否是最基本的数据类型,能否被继承不是。基本数据类型包括 byte、short、int、lon
26、g、char,float double 和 boolean。String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。14、String s=new String(xyz);创建了几个 String Object?创建了两个String Object对软。xyz本身作为字符常量,在汇编语言中应该作为常量放在数据段,Java Yf-个类似数据段的constant pool保存这个常量,在classloader加载这个类的时候就把xyz和这个类的其他,些信息放在constant pool”newString(xyz)根据常量xyz”在heap上创建String对象。所 以,“共
27、两个对象。constant pool:常量池 heap:堆15、数组有没彳length。这个方法?String有没有length。这个方法?数组没有length。这个方法,有length的属性。String有length。这个方法。16、排序都有哪几种方法?用JAVA实现,个快速排序排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。使用快速排序方法对a 0:n-l排 序:从a 0:n-1 中选择个元素作为mi d dl e,该元素为支点,把余下的元素分割为两段le ft和r
28、 ig h t,使得l e f t中的元素都小于等于支点,而right中的元素都大于等于支点递归地使用快速排序方法对le ft进行博序 递归地使用快速排序方法对right进行排序 所得结果为le ft +m id d le +C g h t17、swtich是否能作用在byte上,是否能作用在lo n g匕 是否能作用在String hswitch(e x p r l)中,e x p rl是一个整数表达式。因此传递给sw itch和ca se语句的参数应该是int、short.3/56char 或齐 byte“Long,string 都不能作用于 swtich、18、在JAVA中,如何跳出当前
29、的多重战套循环?用 break;return 方法。19、关于日期和时间的几个问题1、如何取得年、月、日,小时、分、秒:Date dat=new Date();dat.getYear();dat.getMonth();dat.getDay();dat.getHours();.2,如何取得从1970年到现在的亳秒数:long now=dat.getTime();3、如何格式化日期DateFormate df=DateFormate.getlnstanceO;df.Format(dat);20、,个对皴被当作参数传递到个方法.是值传递还是引用传递是值传递。Ja v a编程语言只有值传递参数。当一个
30、对象实例作为,个参数被传递到方法中时,参数的值就是对该对段的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。21、什么时候用 assert?asa:t assertion9S9:f anassertion(断言)在软件开发中是种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的 条语句,它对 个boolean表达式进行检杳,个正确程序必须保证这个boolean表达式的值为true:如果该值为fa ls e,说明程序已经处于不正确的状态卜,系统将给出警告或退出。股来说,assertion用于保证程序鼓基本、关键的正确性。asserti
31、on检查通常在开发和测试时开后。为了提高性能,在软件发布后,assertion检查通常是关闭的。22、G C是什么?为什么要有GC?G C是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定技至崩溃,Java提供的G C功能可以自动监测对荻是否闻过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。4/5623、垃圾mi收的优点和原理垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为个单独的低级别的线程运行,不可预知的情况卜-对内存堆中已经死亡的或者
32、长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收涔对某个对象或所有对象进行垃圾回收。24、垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对 于 G C 来说,当程序员创建对象时,G C 就开始监控这个对象的地址、大小以及使用情况。通常,G C 采用有向图的方式记录和管理堆(heap)中的所有对短。通过这种方式确定哪些对假是 可达的,哪些对象是 不可达 的:当 G C 确定些对象为 不可达 时,G C 就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通 知 G C运 行,但 是 Java语M规范并不保证GC 一定会执行。25、jav
33、a中会存在内存泄漏吗,清简单描述会。如:的。/2;用2 巾(22);0 八 0团为足够大的正数以为足够大的负数。结果会造成溢位,导致错误。Java的个重要优点就是通过垃圾收集器(Garbage Collection.G Q 自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责 任,而 是 G C或 JVM 的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C+不同。26、JAVA事件委托机制的概念ja v a 事件委托机制的概念:个源 产 生 个事件并将它送到 个或多个监听器那里。在
34、这种方案中,监听器简单的等待,直 到 它 收 到 个 事 件。旦事件被接受,监听罂将处理这个事件,然后返回。27、heap和 stack有什么区别。栈是种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素28、谈谈 final,finally,finalize 的区别。final一修饰符(关键字)如果 个类被声明为fin al,意味着它不能再派生出新的子类,不能作为父类被继承。因此个类不能既被声明为abstract ftiJ,又被声明为final的。将变量或方法声明为fin a l,可以保证它们在使5/56用中不被改变。被声明为final的变后必
35、须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。fin ally-再异常处理时提供finally块来执行任何清除操作.如果抛出个异常,那么相匹配的catch子旬就会执行,然后控制就会进入finally块(如果有的话)。finalize方法名。Ja v a技术允许使用finalize。方法在垃圾收集器将对象从内存中清除出去之前做必要的清理I:作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。了类粒盖finalize。方法以整理系统资源或者执行其他清理工作。final
36、ize!)方法是在垃圾收集器删除对象之附对这个对敛调用的。29、&和&的区别&是位运算符。&是布尔逻辑运算符。3 0,编程题:用最行效率的方法算出2乘以8等於几?有C背景的程序员特别喜炊问这种问题。2 331、两个对獴值相同(x.equals(y)=tru e),但却可仃不同的hash co d e,这句话对不对?不对,有相同的hash code:32、我们在w eb应用开发过程中经常遇到输出某种编码的字符,如is。8 8 5 9 r等,如何输出一个某种编码的字符串?答:Public String translate(String str)String tempStr=try(tempStr=
37、new String(str.getBytes(ISO-8859-l),GBK);tempStr=tempStrtrim();)catch(Exception e)System.errprintln(e.getMessage();6/56return tempStr;)33、什么是类的反射机制?通过类(Class 对象),可以得出当前类的 fields,method,construtor interface,superClass、modified 等,同是可以通过类实例化 个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。34、
38、=和equals方法究竟有什么区别?(单独把一个东西说清楚,然后再说清楚另-一个.这样,它们的区别自然就出来了,混在一起说,则很难说清楚)=操作符专门用来比较两个变能的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用=操作符。如果 个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用 块内存(堆内存),变量也占用一块内存,例 如 0 叫 1。3 =佗 3 0*或();变量0历 是 个内存,new Object。是另-一个内存,此时,变 量 o b j所对应的内存中存储的数值就是对象占用的那块内存的首地址。
39、对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用=操作符进行比较。equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于卜面的代码:String a=new String(foo);String b=new String(foo);两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的时象,它们的首地址是不同的,即a 和 b 中存储的数值是不相同的,所以,表达式a=b将返回fa ls e,而这两个对象中的内容是相同的
40、,所 以,表 达 式 a.equals(b)将返回true。在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如,String input=;input.equals(aquitM),许多人稍不注意就使用=进行比较几这是错误的,随便从网上找儿个项目实战的教学视戚看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用equals方法。7/56如果个类没tT 自己定义equals方法,那么它将继承Object类 的 equals方法,Object类的equals方法的实现代码如下:boolean equals(Object o)return this=o;这说明,如果个类没有自己
41、定义equals方法,它默认的equals方 法(从 Object类继承的)就是使用=操作符,也是在比较两个变量指向的对望是否是同一对象,这时候使用equals和使用=会得到同样的结果,如果比较的是两个独立的对皴则总返回false。如果你编写的类希望能够比较该类创建的两个实例对皴的内容是否相同,那么你必须覆盖equals方法,由你口己写代码来决定在什么情况即可认为两个对象的内容是相同的。面向对象1、面向对号的特征1.抽象:抽数就是忽略个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象包括两个方向,一是过程抽象,二是数据抽象。2.继承:继承是种联结类的层次模型,并且允许
42、和鼓励类的重用,它提供了 种明确表述共性的方法。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界向。向向对象计算始于这个基木概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4.多态:多态性是指允许不同类的对象时同消息作出响应。多态性包括参数化多态性和包含多态性。2、什么是O O P?什么是类?请对比类和对象实例之间的关系。OO P是 Object-oriented Programming(面向对象编程曲缩写。这主要是为了区别以前的面
43、向过程的程序设8/56计!指的是用对象的观点来组织与构建系统,它综合了功能抽象和数据抽象,这样可以减少数据之间的耦合性和代码的出错几率。使用面向对象编程技术可以使得软件开发者按照现实世界里人们思考问题的模式编写代码,可以让软件开发者更好地利用代码直接表达现实中存在的对象,将问题空间直接映射到解空间!类 即class在面向对象的程序设计中,专门用“类”来表示用户定义的抽象数据类型(usejdefined abstracttype).它将具有相同状态、操作和访问机制的多个对象进行了抽象。类具有继承、数据隐藏和多态三种主要特性。利用类的这.种特性可以更好地表示现实世界中事物。类是同一类对象实例的共性
44、的抽象,对象是类的实例化.对象通常作为计算机模拟思维,表示.我实世界的抽象,一个对象就像个软件模块,可以为用户提供系列1向服务 可以改变对象的状态、测试、传递消息等。类定义了对皴的实现细节或数据结构。类是静态的,对象是动态的,对象可以看作是运行中的类。类负责产生对数,可以将类当成生产对皴的工厂(Objectfactory)3、简述类与对短的概念所谓对象就是真实世界中的实体,对象与实体是 对应的,也就是说现实世界中每一个实体都是一个对较,它是种具体的概念。类是具备某些共同特征的实体的集合,它 是 种 抽 象 的 概 念,用程序设计的语言来说,类是种抽皱的数据类型,它是对所具有相同特征实体的抽象。
45、4、什么是属性与方法?不同对象具有相同特点,就可能抽象为一定的类,那么这些特点基本上可以分为两类,-类是描述对象静态状态的,就是对恁的屈性,在程序设计中,可以称之为变量:另一类是描述对线的动作,就是对象的方法,在程序设计中我们称之为函数。属性和方法是,个对号所具备的两大基本要素,也是我们后面编程工作的核心。5、什么是封装?只要有足够的方法,就没必要直接去操作对蒙属性,只要调用这些方法就可以实现要完成的任务,这种现象称为封装,它通过对象方法对其属性的操作把对象属性封装在一个对象内部,对象与外界打交道全部通过其自身的方法来实现,有效的把对象屈性隐喊在对象内部。6、说 出 些 常 用 的 类,包,接
46、口,请各举5个常用的类:String,BufferedReader.Integer.Array List.Vector9/56常用的包:java,la ng,java.awt.java.io,java,util.java.sql常用的接口:Collection,List,Map.Serializable.Runnable7、接口有什么优点?答:接口有以下优点:1、接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。2、利用接口可达到实现多继承的目地.3、可以在不暴露对象的类的前提3暴露对象的编程接口,4、不用强迫类关系在无关类中截获相似处(采用适配罂就可以了)。5、声明
47、想执行的一个或多个方法。8、静态变量和实例变量的区别静态变肽也称作类变量,由static修饰,如:staticintss;ss就是静态变故,它只能通过类来访问。实例变量没有static修饰符,它只能通过实例行象来访问。同 类的不同的实例对段有自己的实例变量,但是它们共享同一个价态变量。当个实例对段修改了它的实例变量时,不会影响其他的实例对象。如果一个实例对象修改了静态变量,则会影响其他的对象实例。9、是否可以从一个static方法内部发出时非static方法的调用?不可以,如果其中包含对象的m ethod(),不能保证对象初始化.10、super。与 this。的区别?This():当前类的对
48、象,super父类对绦0Super():在子类访问父类的成员和行为,必须受类继承规则的约束而this他代表当前对短,当然所有的资源都可以访问.在构造函数中,如果第行没疗写super。,编译器会自动插入.但是如果父类没彳j不带参数的构造函数,或这个函数被私有化了(用private修饰卜此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.而在方法中super和this使用的方法就差不多只不过super要考虑是否能访问其父类的资源.10/5611.ja v a有几种修饰符?分别用来修饰什么?修饰符类成员方法成员变量局部变量abstract V V static-
49、,J-public J J J-protected-,J-private-J J-private-J J-protected-J J-synchronized-V native-J volatile J-final J J J 一transient J J12、作用域public,private,protected,以及不写时的区别区别如下:作用域当前类同包子孙类不同包public J J J Jprotected V 7 V Xfriendly V V X Xprivate 7 X X X不写忖默认为friendly13、final,finally,finalize 的区别l .final;
50、用于声明屈性,方法和类,分别表示屈件不可变(为常量),方法不可覆盖(不可重写),类不可继承。2.finally:是异常处理语句结构的一部分,表示总是执行。11/563.finalize:是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等014、内部类可以引用他包含类的成员吗?有没有什么限制?根据内部类是否为static分为两种讨论:1.静态内部类可以有静态和非静态的成员,但它们只能访问包含类的静态成员2.非静态内部类不能有静态成员,它可以访问包含类的任何成员,无论它们仃什么访问属性,它还可以访问包含类卜.任何静