Java100问自答.doc_第1页
Java100问自答.doc_第2页
Java100问自答.doc_第3页
Java100问自答.doc_第4页
Java100问自答.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java100问1、 面向对象的特征有哪些方面?1)、封装:把一个类中的属性和对象私有化,提供一个公共的setXxx()和getXxx()方法给外界访问,这样可以使用代码更安全。2)、继承:就是A类中的公共方法和属可以被B类通过引用(extendx)的直接使用,也可以说是从A类(父类)派生出B类(子类)3)、多态:一个方法根据不同的要求,实现不同的结果4)、抽象:一个可以被描述的对象模型,从事物中抽取出共同的本质性特征2、 String是最基本的数据类型吗?String 不是基本数据类型,在java中它是个对象基本类型包括:int char double float byte boolean long short3、 int 和 Integer 有什么区别int 是引用类型Integer是int的原始类型,是java为int提供的一个封装类在java中Integer是效率比int高4、 String 和StringBuffer的区别Java平台提供了两个类:String和 StringBuffer来操作和储存字符串,1)、在String的字符串值会保存在字符串常量池中,同一个对象保存不同的字符时,会在常量池产生新的地址,如果发现字符串相同的话,直接调用对应的内容。所以它的对象是不可变的2)、在StringBuffer的字符串会保存在内存中,同一个对象保存,会覆盖其内容,所以它的对象是可变的5、 运行时异常与一般异常有何异同?异常主要分为:运行是异常和编译时异常也称一般异常;1)、一般异常可以被try捕捉到,也是在编译时就出现异常的,是必须处理的2)、运行异常是,编译时通过,无法捕捉到的,也称为逻辑异常,比如:空指针等 6、 说出Servlet的生命周期,并说出Servlet和CGI的区别。1)、Servlet服务器实例化后,容器运行其init()方法,请求到达时运行Servlet里的方法,Servicet方法自动运行和请求运行doXxx()方法,结束时调用servlet销毁方法。2)、CGI:是公共网关接口,是通过多线程方式运行其servlet方法,一个实例可以可以用服务于多个线程,并且实例不会销毁,每次都会产生一个新的线程,服务完成后就会销毁,所以它的效率比servlet低7、 说出ArrayList,Vector, LinkedList的存储性能和特性。ArrayList和Vector都是以数组形式存储,主要用是查询,Vector由于使用synchronized方法(线程安全),性能会比ArrayList差点LinkedList是双向链表实现存储,遍历需要要向前向后,插入只要记录本页前后项就可以了,因而主要用于增、删、改。8、 EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。EJB(Enterprise Java Bean)包含:SessionBean , EntityBean , MessageSessionBean,基于JNDI,RMI,JAT1)、EntityBean:是一种持久化对象,将数据可以持久化存储2)、SessionBean:是一种非持久化对象,用来完成一些服务器端的操作,比如:访问数据库,还可以细分为StatefulSessionBean和StatelessSessionBean;3)、StatelessBean:也是个逻辑组件,但它不负责记录使用者状态4)、StatefulBean:它可以负责记录使用者状态,在内存上看,StatefulBean会比Statelss消耗内存多。 9、 Collection 和 Collections的区别。1)、Collection是个集合类的上级接口,继承它的接口主要有:Set和List2)、Collections是个集合类的一个帮助类,他提供了一系列的集合数组搜索、排序、线程安全等10、 &和&的区别。&是位运算符,用于转换为二进制来比较是否相等&是逻辑运算符,表示逻辑与运算,用来比较两个值是否相等11、 HashMap和Hashtable的区别。1)、HashMap: 是非线程安全的,可以为一个entry的key和value定义为null ,把Hashtable中的contains方法改成containsKey和contiansValue,这个两个不容易让人误解2)、Hashtable:是线程安全的,有个contains方法,它的key和value不允许为空12、 final, finally, finalize的区别。1)、final:用于声名类,方法,属性分别表示类不能被继承,方法不能被覆盖,属性不可以改变2)、finally:是异常处理语名的一部分,表示总是执行。3)、finalize:是Object类的一个方法 , 在垃圾收集器中执行回收是调用的方法,13、 sleep() 和 wait() 有什么区别?1)、sleep():表示线程Thread类的方法,表示的暂停,可以让其也线程先用,不会销毁此线程对象锁2)、wait:是Object类中的一个方法,调用此类中的wait()方法,导致本线程放弃对象锁对象锁。同一时间只保证 一个线程访问方法或变量。14、 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?1)、Overload:表示方法重载,在一个类中有同名的方法,参数个数,类型,顺序不同2)、Override:表示方法重写,在子类中重写父类的方法,方法名一致3)、Overloaded的方法是可以改变返回值的,15、 error和exception有什么区别? 1)、error:总是不可控制(unchecked),是java内部错误或硬件问题,如果可能的话,可在系统级被捕捉2)、exception:是可控制(checked)或不可控制(unchecked),表示一个程序员导致的错误,应该在应用级被处理16、 同步和异步有何异同,在什么情况下分别使用他们?举例说明。1)、同步是在同一个线程共享数据,2)、异步是一个调用对象时,需要很长时间,这个时间线程是空闲的,先让另一个对象使用,这样可以提高效率17、 abstract class和interface有什么区别?1) abstract class:在抽象类中的成员类型是public abstract,可以有普通变量可以有构造方法一个类中能继承一个抽象类有方法体,但没有实现2) interface:在接口中的成员类型:public static final ,没有普通变量 接口中不能有构造方法 一个类可以实现多个接口 没有方法体18、 heap和stack有什么区别。1)、heap是堆,空间大,所有创建的对象都是放在这里,是可动态申请的内存空间2)、stack是栈,空间小,速度快,用来存放对象的引用 ,是先进后出的结构,通常保存方法(函数)中的参数和局部变量19、 forward 和redirect的区别1)、forward是请求转发,URL地址不会改变,其传的参数的值还会存在2)、redirect是重定向,URL地址会变成最新的URL,之前传的request参数的值消失例子:重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。20、 EJB与JAVA BEAN的区别?1)、EJB:用于服务端应用开发的,对终端用户不可见,运行在服务端,没有人机交互需要相应的容器分布式对象,可以被客户应用或者其它EJB构件进行远程访问2)、JAVA BEAN:用于客户端应用开发的,也可以用服务端应用开发,但没有提供服务端框架,部分终端是对用户可见的,比如一些按钮只需要安装Tomcat就可以了只能在其构成的应用中使用,不能提供远程访问能力51、垃圾回收的优点和原理。并考虑2种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使c+程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有作用域的概念,只有对象的引用才有作用域。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。它将内存区间根据对象的特点分为几块,根据每块内存区间的特点,使用不同的算法,从而提高垃圾回收效率。标记垃圾回收:在程序的起点开始就是一个根节点,随着程序的运行就会引用不同的节点,被引用的做标记,未被引用的做清除标记,做清除标记的作为垃圾回收。增量式垃圾回收器:会过多地估算可达对象集合,从而保证安全性52、请说出你所知道的线程同步的方法。wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。53、你所知道的集合类都有哪些?主要方法?最常见的集合有List和Map ,List具体实现包含 ArrayList 和 vector 它们是可变大小的列表,比较适合构造,查询等的操作Map提供了更通用的方法 ,hashMap使用键和值的方法 ,可以从对应的键查找到它的值54、描述一下JVM加载class文件的原理机制?JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。55、char型变量中能不能存贮一个中文汉字?为什么?能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分56、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify57、JSP的内置对象及方法。request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论