花旗银行JAVA面试题分类

上传人:jin****ng 文档编号:171540745 上传时间:2022-11-27 格式:DOCX 页数:12 大小:30.09KB
返回 下载 相关 举报
花旗银行JAVA面试题分类_第1页
第1页 / 共12页
花旗银行JAVA面试题分类_第2页
第2页 / 共12页
花旗银行JAVA面试题分类_第3页
第3页 / 共12页
点击查看更多>>
资源描述
J A V A 的 基 本 知 识1、List、Map、Set 三个接口,存取元素时,各有什么特点?List以特定次序来持有元素,可有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值, value可多值。2、Collection 和 Collections 的区别。Collection是集合类的上级接口,继承与他的接口主要有Set和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化 等操作。3、HashMap 和 Hashtable 的区别。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了 Map接口,主要区别在于 HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因为 contains 方法容易让 人引起误解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Javal.2 引进的 Map interface 的一个实现。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需 要自己为它的方法实现同步,而HashMap就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。4、final, finally, finalize 的区别。final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提 供垃圾收集时的其他资源回收,例如关闭文件等。5、JAVA中多线程有几种实现方法?线程同步有几种实现方法,都是什么?多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是 synchronized,wait 与 notify6、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?不能,一个对象的一个synchronized方法只能由一个线程访问。7、sleep() 和 wait() 有什么区别?sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状 态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池, 只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态8、java中有几种类型的流? JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?字节流,字符流。字节流继承于InputStream Outputstream,字符流继承于InputStreamReader OutputStreamWriter。9、java 中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多 态性的一种表现,重载Overloading是一个类中多态性的一种表现。10、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可 以抛出异常吗?Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中, 每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对 象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是 通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如 果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后 (finally )由缺省处理器来处理。用try来指定一块预防所有异常的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的 异常的类型。throw语句用来明确地抛出一个异常。throws用来标明一个成员函数可能抛出的各种异常。Finally为确保一段代码不管发生什么异常都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每 当遇到一个try语句,异常的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没 有对某种异常进行处理,堆栈就会展开,直到遇到有处理这种异常的try语句。11、面向对象的特征有哪些方面答:主要有以下四方面:1抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方 面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一 是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方 法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为 原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实 例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个 基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问 其他对象。4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态 性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。12什么是工厂模式: 工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一 个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据 进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要 定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基 类中的方法而不必考虑到底返回的是哪一个子类的实例JSP/Servlet相关知识1、说出Servlet的生命周期。 -Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣 运行与请求对应的doXXX方法(doGet, doPost)等,当服务器决定将实例销毁的时候调用其destroy方 法。2、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类 servlet。 Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中 的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为jsp的文件。JSP侧重于视 图,Servlet主要用于控制逻辑。3、jsp有哪些动作?作用分别是什么?JSP共有以下6种基本动作 jsp:include :在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置 JavaBean 的属性。 jsp:getProperty :输出某个 JavaBean 的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。4、JSP的内置对象及方法。request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header,和session数据的有用的方法。response 表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏览器的响应的方法(如 cookies,头信息等)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。 pageContext 表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、 servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。session 表示一个请求的 javax.servlet.http.HttpSession 对象。 Session 可以存贮用户的状态信息 applicaton表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的 信息config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 page表示从该页面产生的一个servlet实例5、JSP中动态include与静态include的区别?动态 include 用 jsp:include 动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可 以带参数。静态 include 用 include 伪码实现,定不会检查所含文件的变化,适用于包含静态页面6、如果不希望JSP网页支持Session,应该如何办?J2E vag相es关知“识se请对以下在J2EE中常用的名词进行解释(或简单描述)web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中 的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的 WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。EJB容器:Enterprise java bean容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功 能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口 来获得系统级别的服务。例如邮件服务、事务管理。JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系 统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。 JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。 JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接 口即可。JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种 部署和自定义实现自己的个性安全控制策略。RMI/IIOP: (Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例 如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调 用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。什么是web容器答:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的 环境变量交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的 WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器XML 相关知识xml有哪些解析技术?区别是什么? 答:主要有 DOM,SAX 等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX: 不同于 DOM,SAX 是事件驱动型的 XML 解析方式。它顺序读取 XML 文件,不需要一次全部装载 整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?a:两种形式dtd schema,b:本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发 展schema的根本目的),c:有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的 内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个 文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回 调事件中写入处理代码来处理XML文件,适合对XML的顺序访问STAX:Streaming API for XML (StAX)项目中主要用到xml技术的哪些方面?如何实现的?答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不同数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关 信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。STRUTS/SPRING/HIBERNATE 相关知识STRUTS的应用(如STRUTS架构)答:Struts是采用Java Servlet/JavaServer Pages技术,开发 Web应用程序的开放源码的framework。采 用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts有如下的主要功能:1. 包含一个controller servlet,能将用户的请求发送到相应的Action对象。2. JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。3. 提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提 示和消息。hibernate 工作原理:1、通过 Configuration().configure();读取并解析 hibernate.cfg.xml 配置文件。2、由 hibernate.cfg.xml 中的mapping resource=com/xx/User.hbm.xml/读取解析映射信 息。3、通过 config.buildSessionFactory();得至U sessionFactory。4、sessionFactory.openSession();得至U session o5、session.beginTransaction();开启事务。6、persistent operate;6、session.getTransaction().commit();提交事务7、关闭 session;8、关闭 sessionFactory;hibernate 优点:1、封装了 jdbc,简化了很多重复性代码。2、简化了 DAO层编码工作,使开发更对象化了。3、移植性好,支持各种数据库,如果换个数据库只要在配置文件 中变换配置就可以了,不用改变hibernate代码。4、 支持透明持久化,因为hibernate操作的是纯粹的(pojo) java 类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框 架。ospring 工作原理:1. spring mvc请所有的请求都提交给DispatcherServlet,它会委 托应用系统的其他模块负责负责对请求进行真正的处理工作。2. DispatcherServlet 查询一个或多个 HandlerMapping,找到处理 请求的 Cont roller.3. Dispa tcherServle t 请请求提交到 目标 Cont roller4. Controller进行业务逻辑处理后,会返回一个ModelAndView5. Dispathcher查询一个或多个ViewResolver视图解析器,找到 ModelAndView对象指定的视图对象6. 视图对象负责渲染返回给客户端。为什么要用spring:AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并 将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上, 同时不会增加域对象的对象模型的复杂性。IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递 它们的协作对象。正如单词 倒置 所表明的,IOC就像 反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightcons true tion),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collabora tor)。Spring即使一个AOP框架,也是一 IOC容器。Spring最好的地方 是它有助于您替换对象。有了 Spring,只要用JavaBean属性和 配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替 换具有类似接口的协作对象。解释一下 Dependency injection(DI,依赖注入)和 IOC(Inversion of control,控制反转)?依赖注入DI是一个程序设计模式和架构模型,一些时候也称作控 制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依 赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例 如:把一个数据库连接已参数的形式传到一个对象的结构方法里面 而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的 基本思想就是把类的依赖从类内部转化到外部以减少依赖 应用控制反转,对象在被创建的时候,由一个调控系统内所有对象 的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依 赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他 所依赖的对象的引用,这个责任的反转。spring 中的 BeanFactory 与 ApplicationContext 的作用有哪些?1. BeanFactory负责读取bean配置文档,管理bean的加载,实例 化,维护bean之间的依赖关系,负责bean的声明周期。2. ApplicationContext除了提供上述BeanFactory所能提供的功 能之外,还提供了更完整的框架功能: 什么是aop,aop的作用是什么?面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这 种方式弥补了面向对象编程(OOP)的不足除了类(classes)以外,AOP提供了切面。切面对关注点进行模块 化,例如横切多个类型和对象的事务管理Spring的一个关键的组件就是AOP框架,可以自由选择是否使用 AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的 服务是声明性事务管理,这个服务建立在Spring的抽象事物管理 之上允许用户实现自定义切面,用AOP来完善OOP的使用 可以把Spring AOP看作是对Spring的一种增强SSH:Struts (表示层)+Spring (业务层)+Hibernate (持久层) Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发 请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关 系的分发(View:沿用 JSP,HTTP,Form,Tag,Resourse ; Controller: ActionServlet, struts-config.xml, Action) Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。 Spring:Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表 示层与持久层。EJB相关知识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 接口。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组件。EJB规范规定EJB中禁止的操作有哪些?1. 不能操作线程和线程API(线程API指非线程对象的方法如 notify,wait 等),2. 不能操作awt,3. 不能实现服务器功能,4. 不能对静态属生存取,5. 不能使用IO操作直接存取文件系统,6. 不能加载本地库.,7. 不能将this作为变量和返回,8. 不能循环调用。ajax是什么及其工作原理?Ajax 由 HTML、JavaScript 技术、DHTML 和 DOM 组成,这一 杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程 序。AJAX最核心的一个对象是XMLHttpRequest,所有的Ajax操作都 离不开对这个对象的操作XMLHttpRequest对象相关方法:打开请求XMLHttpRequest.open(传递方式,地址,是否异步请求) 准备就绪执行XMLHttpRequest.onreadystatechange获取执行结果XMLHttpRequest.responseText
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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