`
阅读更多
01.运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
error 和exception 有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
Java 中的异常处理机制的简单原理和应用。
当JAVA 程序违反了JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。
违反语义规则包括2 种情况。一种是JAVA 类库内置的语义检查。例如数组下标越界,会引发
IndexOutOfBoundsException;访问null 的对象时会引发NullPointerException。另一种情
况就是JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw 关键字引发异常。所有的异常都是 java.lang.Thowable 的子类。
02.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别。
Servlet 被服务器实例化后,容器运行其init 方法,请求到达时运行其service 方法,
service 方法自动派遣运行与请求对应的doXXX 方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy 方法。与cgi 的区别在于servlet 处于服务器进程中,它通过多线程方式运行其service 方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI 对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
03.说出ArrayList,Vector, LinkedList 的存储性能和特性
ArrayList 和Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了synchronized 方法(线程安全),通常性能上较ArrayList 差,而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
Collection 和 Collections 的区别。
Collection 是集合类的上级接口,继承与他的接口主要有Set 和List.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
HashMap 和Hashtable 的区别。
HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要区别在于HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为
contains 方法容易让人引起误解。Hashtable 继承自Dictionary 类,而HashMap 是Java1.2 引进的Map interface 的一个实现。最大的不同是,Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。Hashtable 和HashMap 采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。
04.EJB 是基于哪些技术实现的?并说出SessionBean 和EntityBean 的区别,StatefulBean
和StatelessBean 的区别。
EJB 包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT
等技术实现。
SessionBean 在J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调。用其他EJB 组件。EntityBean 被用来代表应用系统中用到的数据。
对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体的
对象视图,或是一个由现有企业应用程序实现的实体。
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,
这两种的 Session Bean 都可以将系统逻辑放在 method 之中执行,不同的是 Stateful
Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的
Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB
Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful SessionBean 的优势却在于他可以维持使用者的状态。
05.final, finally, finalize 的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally 是异常处理语句结构的一部分,表示总是执行。
finalize 是Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,
可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
06.sleep() 和 wait() 有什么区别?
sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他
线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify 方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
07.Overload 和Override 的区别。
重写Overriding是父子之间的方法。Overloading一个类中同名方法。
08.同步和异步有何异同,在什么情况下分别使用他们?举例说明。
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的
数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方
法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
09. forward 和redirect 的区别
forward 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取
过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,
所以它的地址栏中还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般
来说浏览器会用刚才请求的所有参数重新请求,所以session,request 参数都可以获取。
10. EJB 与JAVA BEAN 的区别?
Java Bean 是可复用的组件,对Java Bean 并没有严格的规范,理论上讲,任何一个Java
类都可以是一个Bean。但通常情况下,由于Java Bean 是被容器所创建(如Tomcat)的,所
以Java Bean 应具有一个无参的构造器,另外,通常Java Bean 还要实现Serializable 接口用于实现Bean 的持久性。Java Bean 实际上相当于微软COM 模型中的本地进程内COM 组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java 的远程方法调用(RMI)技术的,所以EJB 可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问真正的EJB 组件,而是通过其容器访问。EJB 容器是EJB 组件的代理, EJB 组件由容器所创建和管理。客户通过容器来访问真正的EJB 组件。
11. Static Nested Class 和 Inner Class 的不同。
Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类实
例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
12.GC 是什么? 为什么要有GC?
GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,
忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的GC 功能可以自
动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。
13. EJB 包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求
要建立一个Bean 的实例时,EJB 容器不一定要创建一个新的Bean 的实例供客户机调用,而
是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean
时,容器必须立即在服务器中创建一个新的Bean 实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean 实例。
EntityBean:Entity Beans 能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans 就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB 容器崩溃了,Entity beans 也是存活的。Entity Beans 生命周期能够被容器或者 Beans 自己管理。
EJB 通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems
的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA 接
口。
14.应用服务器有那些?
BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,
jBoss,Tomcat
15.给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException,
BufferUnderflowException, CannotRedoException, CannotUndoException,
ClassCastException, CMMException, ConcurrentModificationException, DOMException,
EmptyStackException, IllegalArgumentException, IllegalMonitorStateException,
IllegalPathStateException, IllegalStateException, ImagingOpException,
IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException,
NoSuchElementException, NullPointerException, ProfileDataException,
ProviderException, RasterFormatException, SecurityException, SystemException,
UndeclaredThrowableException, UnmodifiableSetException,
UnsupportedOperationException
16.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类
(concrete class)?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前
提是实体类必须有明确的构造函数。
17.说出数据连接池的工作机制是什么?
J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端
程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空
闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池
连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
18. try {}里有一个return 语句,那么紧跟在这个try 后的finally {}里的code 会不会被
执行,什么时候被执行,在return 前还是后?
会执行,在return 前执行。
19.编程题: 写一个Singleton 出来。
一个是饿汉式 一个是懒汉式
20.垃圾回收的优点和原理。并考虑2 种回收机制。
Java 语言中一个显着的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的
问题迎刃而解,它使得Java 程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制, Java 中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。
回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
分享到:
评论

相关推荐

    01-2021二建法规-经典100题二建法规冲刺20pdf.pdf

    01-2021二建法规-经典100题二建法规冲刺20pdf.pdf

    01-13真题.zip

    本人20年考研收集的一些计算机专业的初试资料,由于资源上传有大小的限时,最大只能上传220MB的资源,所以先把一部分上传,其余的资料大家在私信我,我发给大家。祝拿到资料的同学一战成硕!

    电大数据结构-选择题.docx

    01.一种逻辑结构在存储时 C.可采用不同的存储结构 9.一个队列的入队序列是2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是 (A.8,6,4,2)。 23.一棵完全二叉树共有4层,且第4层上有...

    01-15年燕大数据结构真题

    01-05燕大数据结构真题,里面有答案,非常的全面,20年的考燕大计算机的同学可自行下载,希望能帮到你们,考研加油!!!!!!

    H3CNE-Cloud培训视频教程【共34集】.rar

    20 服务器虚拟化技术 21 CAS软件介绍 22 CAS软件部署 23 CAS虚拟化管理平台 24 云资源管理01 25 云资源管理02 26 云资源管理-习题 27 虚拟化管理01 28 虚拟化管理02 29 虚拟化管理-练习题 30 云服务01 31...

    2011数据结构+算法面试100题+答案

    整理的前60题的答案:第1题-20题答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx, 第21-40题答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126444.aspx,第41-60题答案: ...

    实验室程序文件.docx

    程 序 文 件 文件编号:0.1 第 1 页 共 1 页 标 题: 批准页 第 1 版 第0次修改 发布日期:2010年07月01日 程 序 文 件 HHRBDC/CX01-01~38—2010 版 号:第壹版 生效日期:2010年7月20日 编 制 人:KKK 审 核 人: ...

    程序员考试刷题-C-Institute-CLP-12-01-Exam-Questions:C-Institute-CLP-12-01-Exam

    20% 的折扣 准备 C++ Institute CCP Programmer CLP-12-01 考试可能会让人不知所措,尤其是如果您已经准备了很多东西。 本次 CLP-12-01 考试在课程内容和参加考试问题的考生人数方面非常困难。 出于这个原因,...

    高级java笔试题-F2E-Tutorial-Collect:web全栈书签收藏整理

    高级java笔试题 README 书签栏 HTML 2013-10-23 22:01 2013-10-23 22:02 2013-10-23 22:02 2015-01-25 20:30 2015-02-06 12:56 2015-02-06 13:03 2015-03-05 11:41 2015-03-13 20:02 2015-06-05 15:37 2015-07-21 18...

    leetcode题库-gitblog:人们死了,但GitHub万岁

    leetcode题库 Gitblog My personal blog using issues and GitHub Actions 置顶文章 ...--2021-02-01 ...--2020-11-20 ...--2020-08-20 ...--2020-01-19 ...--2019-11-01 ...--2019-09-01 --2019-08-01 ...--2020-08-01

    谢希仁-计算机网络习题指导

    习题1-01 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答: 计算机网络的发展过程大致经历了四个阶段。 第一阶段:(20世纪60年代)以单个计算机为中心的面向终端的计算机网络系统。这种网络系统是以批处理...

    系统集成项目管理工程师子恒老师课程16-30

    系统集成项目管理工程师30个课程视频,16-30: P16 7 项目范围管理 02 P17 7 项目范围管理 03 P18 8 进度管理 01 P19 8 进度管理 02 P20 8 进度管理 03 P21 12 项目沟通管理与干系人...P30 2020年下半年-上午真题-1-2题

    2021年电工杯B题--光伏建筑一体化板块指数发展趋势分析及预测01.docx

    2021年电工杯B题--光伏建筑一体化板块指数发展趋势分析及预测,成品,代码数据在附录,20多页的word 稀缺资源

    2009年01-试卷-第一届全国初赛-数学类试卷1

    第 一 题 : (15 分 ) 求 经 过 三 平 行 直 线 第二题:(20 分)设 第三题:(15 分)假设V 是复数域C 上n 维线性空间( 第四题:(1

    HCIA-RS V2.5培训视频教程【共38集】.rar

    【01】网络及传输介质简介 【02】以太网数介绍 【03】以太网数据帧 【04】arp协议 【05】传输层协议 【06】数据转发过程 【07】文件管理 【08】stp原理及配置 【09】STP原理及配置 【10】RSTP原理及配置 ...

    c++ 面试题 总结

    C++面试题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...

    中考政治试题分项版解析汇编(第01期)专题20共同富裕和财富源泉(含解析)-10页.pdf

    中考政治试题分项版解析汇编(第01期)专题20共同富裕和财富源泉(含解析)-10页.pdf

    HCIP路由 交换+安全视频.zip

    20-组播-3 21-HCDP路由综合实验 01-vlan trunk hybrid 03-STP-2 04-交换综合实验-1 05-交换综合实验-2 06-QOS-1 07-QOS-2-分类 标记 队列 08-QOS-3-监管 整形 09-DHCP 10-AAA 11-NAT-1 12-NAT-2 13-交换综合实验

    计算机考研数据结构视频.zip

    2.3XZ T13T14T15T16T19T20T21T24--ZH T1~4 2.3XZ T1T3T4T5T6T12 2.3ZH-T8~10 T14 T16 T21~23 3.1 XZ T4 T5 T10 T11 T12 T14 T15 3.1 ZH T1 T3 T4 3.1-3.2部分习题 3.2 XZ T5 T6 T9 T14 ZH1 3.2 ZH2 3.3-3.4部分习题...

    Leetcode-notes

    笔试题-正式批字节跳动2018算法岗笔试题-第一批=========0 ~ 100===========Week 01 - Leetcode 01 - 10Week 02 - Leetcode 11 - 20Week 03 - Leetcode 21 - 30Week 04 - Leetcode 31 - 40Week 05 - Leetcode 41 - ...

Global site tag (gtag.js) - Google Analytics