zoukankan      html  css  js  c++  java
  • JAVA 2013面试题-下

    51.char型变量中能不能存储一个中文汉字?为什么?

      可以,因为java中以Unicode编码,一个char占16个字节,所以放一个中文没问题。

    52.多线程有几种实现方法?都是什么?同步有几种实现方法?都是什么?

      多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

      同步的实现方法有两种,分别是synchronized与notify。

    53.JSP的内置对象及方法。

      request :它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header,session数据的有用方法。

      response:并提供了几个用于设置送回浏览器的响应的方法(例如cookie,头信息等)。

      out:并提供了几个方法使你能用于向浏览器回送输出结果。

      pageContext:它是用于方便存取各种范围的名字空间、servlet现骨干的对象的API,并且包装了通用的servlet相关功能的方法。

      session:Session可以存储用户状态信息。

      application:有助于查找有关servlet引擎和servlet环境的信息。

      config:用于存取servlet实例的初始化参数。

      page:表示从该页面产生的一个servlet实例。

    54.线程的基本概念、线程的基本状态以及状态之间的关系。

      线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。

      JAVA中的线程有四种状态:运行、就绪、挂起、结束。

    55.JSP的常用指令。

      isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式).

    56.什么情况下调用doGet()和doPost()?

      JSP页面中的form表单标签里的method属性为get时调用doGet(),post调用doPost().

    57.页面对象传递的方法?

      request,session,application.cookie等。

    58.JSP和servlet的异同?他们之间的联系是什么?

      JSP是Servlet技术的扩展,本质上Servlet的简易方式,更强调应用的外表表达。JSP编译后是“类servlet”。Servlet和JSP最主要不同在于,Servlet的应用逻辑是在java文件中,并且完全从表示层的HTML分离开来的,而JSP的情况是java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

    59.四种会话跟踪技术。

      对于在jsp页面存储、访问属性而言,一共就四种状态,范围由小到大

      page表示页面都可以访问到,

      request表示一次向服务器的请求范围内,

      session表示一个会话内可以访问,

      application表示在这个应用下都可以访问到。

    60.J2EE是技术还是平台还是框架?

      J2EE本身是个标准,一个为企业分布式应用的开发提供的标准平台。

      J2EE也是一个框架,包括JDBC,JNDI,RMI,JMS,EJB,JTA等技术。

    61.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?

      区别主要两点:a.条件操作布尔型,而逻辑操作不仅可以操作布尔型,而且可以操作数值型;

      b.逻辑操作不会产生短路。

    62.XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

      a.两种形式 dtd,schema

      b.本质区别:schema本身是xml的,可以被XML解析器解析

      c.有DOM,SAX,STAX等

      DOM:处理大型文件时其性能下降的非常厉害,这个问题是由DOM的树结构所造成的,这种结构占用内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问。

      SAX:是事件驱动型XML解析方式,它顺序读取XML文件,不需要一次性全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

      STAX:Streaming API for XML.

    63.简述synchronized和java.util.concurrent.locks.Lock的异同?

      相同点:Lock能完成synchronized所实现的所有功能。

      不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。

    64.EJB的角色和三个对象。

      一个完整的基于EJB的分布式计算结构由6个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider)、应用组合者(Application Assembler)、部署着(Deployer)、EJB服务器提供者(EJB Server Provider)、EJB容器提供者(EJB Container Provider)、系统管理员(System Administrator)

      三个对象Remote(Local)接口、Home(LocalHome)接口、Bean类。

    65.如何给weblogic指定大小的内存?

      在启动Weblogic的脚本中(位于所在Domain对应服务器目录下的startServerName),增加

    set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M。

    66.如何启动时不需输入用户名和密码?

      修改服务启动文件,增加WLS_USER和WLS_PW项。也可以在bootproperties文件中增加加密过的用户名和密码。

    67.说说你所熟悉的J2EE中几种常用设计模式?说明工厂模式。

      Java中的23种设计模式:

    Factory(工厂模式),Builder(建造模式),Factory Method(工厂方法模式),

    Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),

    Adapter(适配器模式), Bridge(桥梁模式),Composite(合成模式),

    Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),

    Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),

    Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模),

    Observer(观察者模式),State(状态模式),Strategy(策略模式),

    Template Method(模板方法模式),Chain Of Responsibleity(责任链模式)。

      工厂模式:根据工厂模 根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

    68.排序都有哪几种方法?请举例。用JAVA实现一个快速排序。

      插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),

    选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

    //使用快速排序方法对a[0:n-1]排序

      从a[0:n-1]中选择一个元素作为middle,该元素为支点,把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点,递归地使用快速排序方法对left进行排序,同样对right排序,结果为left+middle+right.

    69.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

      可以,必须只有一个类名与文件名相同。

    70.MVC的各个部分都有哪些技术来实现?如何实现?

      MVC是Model-View-Controller的简写。"Model"代表的是应用的业务逻辑(通过JavaBean实现),"View"是应用的表示层,用于与用户的交互(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模式把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重要。model层实现系统中的业务逻辑,view层用于与用户交互,controller层是model与view之间沟通的桥梁,可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

    71.java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?

      有两种实现方法,分别是继承Thread类与实现Runnable接口

      用synchronized关键字修饰同步方法

      反对使用stop()是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯的状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被“挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。

    72.java中有几种类型的流?JDK为每种类型的流提供了一些抽象以供继承,请说出他们分别是哪些类?

      字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter.在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

    73.java中存在内存泄露么?请简单描述。

      存在,有两类主要的java内存泄露:一种是不再需要的对象的引用。另一种是未释放的系统资源。

    74.java中实现多态的机制是什么?

      重构和重载都是多态的表现。重构是父子类之间的多态,重载是一个类中多态性的表现。

    75.是否可以从一个static方法内部发出对非static方法的调用?

       不可以,如果其中包含对象的method();不能保证对象初始化。

    76.写clone()方法时,通常都有一行代码,是什么?

      Clone有缺省行为,super.clone();他负责产生正确的大小空间,并逐位复制。

    77.在java中,如何跳出当前的多重嵌套循环?

      用break,return方法。

    78.J2EE是什么?

      J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型。在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次中。所属层次包括客户层组件,Web层组件,Business层粗剪,企业信息系统层。

    79.UML方面

      标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图)实现图。

    80.说出一些常用的类,包,接口各五个。

      常用类:BufferedReader,BufferedWriter,FileReader,FileWirter,String Integer

      常用包:java.lang,java.awt,java.io,java.util,java.sql

      常用接口:Remote,List,Map,Document,NodeList

    81.jsp有哪些动作?作用分别是什么?

      6个基本动作:jsp:include:在页面被请求的时候引入一个文件。

      jsp:useBean:寻找或者实例化一个JavaBean。

      jsp:setProperty:设置JavaBean的属性。

      jsp:getProperty:输出某个JavaBean的属性。

      jsp:forword:把请求转到一个新的页面。

      jsp:plugin:根据浏览器类型为Java插件生成object或embed标记。

    82.Anonymous Inner Class(匿名内部类)是否可以extends其他类?是否可以实现接口?

      可以继承其他类或者实现接口,在swing编程中常用此方法。

    83.应用服务器与WEB SERVER的区别?

      应用服务器:Weblogic、Tomcat、Jboss

      WEB SERVER:IIS、Apache

    84.BS与CS的联系与区别?

      C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型的数据库系统,如Oracle、Sybase、Informix或SQL Server。客户端需要安装专用的客户端软件。

      B/S是Brower/Server的缩写。客户机上只要安装一个浏览器,服务器安装Oracle等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要的事务逻辑在服务器端实现。浏览器通过WebServer同数据库进行数据交互。

    85.Linux下线程,GDI类的解释。

      LINUX实现的就是基于核心轻量级进程的“一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。

      GDI类为图形设备编程接口类库。

    86.Struts的应用。

      Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC实际模式的应用框架。

      Struts有如下的主要功能:1.包含一个controller servlet,能将用户的请求发送到相应的Action对象。2.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。3.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBean属性、国际化的提示和消息。

    87.Jdo是什么?

      JDO是Java对象持久化的新规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象粗出,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经专一到JDO产品提供商身上,使开发人员解脱出来,从而专注在业务逻辑上,另外JDO很灵活,因为它可以再任何数据底层上运行。JDBC只是面向关系型数据库,JDO更加通用,提供任何数据底层的存储功能,比如关系型数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

    88.内部类可以引用他包含类的成员吗?有没有什么限制?

      可以访问创建它的外部类对象的内容

      内部类如果不是static的,那么它可以访问创建它的外部类对象的所有属性,如果是static的,即为nested class,那么只能访问外部类对象所有static属性。

      一般普通类只有public或package的访问修饰,而内部类可以实现static,protected,private等访问修饰。

      当从外部类继承的时候,内部类是不会被覆盖的,它们是完全独立的实体,每个都在自己的命名空间内 ,如果从内部类中明确的继承,就可以覆盖原来内部类的方法。

  • 相关阅读:
    CentOS FTP基于虚拟用户的配置
    CentOS6.5 FTP配置
    MAC 隐藏文件的显示
    nignx知识点总结
    什么是函数式编程
    javascript有用代码片段
    PHP百杂
    好文:javascript中的四种循环
    好文:node.js最佳实践
    好文:不使用匿名函数的三个理由
  • 原文地址:https://www.cnblogs.com/joycelishanhe/p/3618369.html
Copyright © 2011-2022 走看看