收藏 分销(赏)

JAVA试题及培训资料.doc

上传人:仙人****88 文档编号:7858524 上传时间:2025-01-23 格式:DOC 页数:8 大小:64KB 下载积分:10 金币
下载 相关 举报
JAVA试题及培训资料.doc_第1页
第1页 / 共8页
JAVA试题及培训资料.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
1、面向对象的三个基本特征 面向对象的三个基本特征是封装、继承和多态。   2、方法重载和方法重写的概念和区别 override(重写):是父类和子类间的多态。不可以缩小父类的访问权限;和父类的方法名、参数、返回值相同;子类方法不能抛出比父类更多的异常。 overloading(重载):类中方法间表现的多态;方法中的参数类型、个数、顺序只少有一个不同;不能存在就返回类型不同的方法;    3、接口和内部类、抽象类的特性 接口:只有方法的定义,没有具体的实现; 接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。 内部类:内部类是在一个类的内部嵌套定义的类,它可以是其他类的成员,也可以是在一个语句块的内部定义,还可以在表达式内部匿名定义。 内部类有如下特性: ?         一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称.名字不能与包含它的类名相同。 ?         可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。 ?         可以定义为abstract。 ?         可以声明为private或protected。 ?         若被声明为static,就变成了顶层类,不能再使用局部变量。 ?         若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static。 内部类的优缺点: ?         优点:节省编译后产生的字节码文件的大小 ?        缺点:使程序结构不清楚 抽象类:有方法的定义,可以有部分实现;    4、文件读写的基本类 inputStream,outputStream File\fileRead\    5、串行化的注意事项以及如何实现串行化 串行化注意事项: 1.串行化能保存的元素 只能保存对象的非静态成员变量,不能保存任何的成员方法和静态成员变量。而且串行化保存的是变量的值,对于变量的任何修饰符,都不能保持。 2.transient关键字 对于某些类型的对象,其状态是瞬时的,这样的对象是无法保证其状态的。例如一个thread对象或一个FileInputStream对象,对于这些字段,我们必须用transient关键字标明。 3.定制串行化 缺省的串行化机制,对象串行化首先写入类数据和类字段的信息,然后按照名称的上升排列顺序写入其数据。如果想明确地控制这些数值的写入顺序和写入种类,必须定义自己的读取数据流的方式。就必须在类的定义中重写writeObject()和readObject()方法。 只要implements serializable接口,就表明这个类参加了串行化协议。    6、线程的基本概念、线程的基本状态以及状态之间的关系 线程在程序执行过程中,能够执行程序代码的一个执行单位,每个程序知道有一个线程,那就是程序本身。 线程的四种状态:运行,就续,挂起,终止    7、线程的同步、如何实现线程的同步 Synchronized,wait和notify    8、几种常用的数据结构及内部实现原理。 线性表、堆、队列    9、Socket通信(TCP、UDP区别及Java实现方式) 实现Client端功能的ClientApp.java原文件: import .*; import java.io.*; import java.lang.*; public class ClientApp { public static void main(String args[]) {     try     {        //创建通讯并且和主机Rock连接        Socket cSocket=new Socket("192.168.100.188",8018);        //打开这个Socket的输入/输出流        OutputStream os=cSocket.getOutputStream();        DataInputStream is=new DataInputStream(cSocket.getInputStream());        int c;        boolean flag=true;        String responseline;       while(flag)        {            //从标准输入输出接受字符并且写如系统            while((c=System.in.read())!=-1)            {               os.write((byte)c);               if(c=='\n')               {                  os.flush();                  //将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来                  responseline=is.readLine();                  System.out.println("Message is:"+responseline);               }            }        }        os.close();        is.close();        cSocket.close();     }     catch(Exception e)     {       System.out.println("Exception :"+ e.getMessage());     } } } 实现Server端功能的ServerApp.java原文件: import .*; import java.io.*; public class ServerApp { public static void main(String args[]) {      try      {         boolean flag=true;          Socket clientSocket=null;         String inputLine;         int c;         ServerSocket sSocket=new ServerSocket(8018);         System.out.println("Server listen on:"+sSocket.getLocalPort()); while(flag)         {           clientSocket=sSocket.accept();           DataInputStream is=new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));           OutputStream os=clientSocket.getOutputStream();           while((inputLine=is.readLine())!=null)           {              //当客户端输入stop的时候服务器程序运行终止!              if(inputLine.equals("stop"))              {                 flag=false;                 break;              }              else              {                 System.out.println(inputLine);                 while((c=System.in.read())!=-1)                 {                   os.write((byte)c);                   if(c=='\n')                   {                     os.flush();   //将信息发送到客户端                     break;                   }                 }              }            }           is.close();           os.close();           clientSocket.close();         }         sSocket.close();      }      catch(Exception e)      {        System.out.println("Exception :"+ e.getMessage());      } } } 10、Java的事件委托机制和垃圾回收机制 java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个那里。在这种方案中,简单的等待,直到它收到一个事件。一旦事件被接受,将处理这个事件,然后返回。垃圾回收机制垃圾收集是将分配给对象但不在使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收 11、JDBC调用数据库的基本步骤 导入必要的类,装入JDBC驱动程序,识别数据源,分配一个Connection对象,分配一个Statement对象,使用Statement执行一个查询,从返回的ResultSet对象中检索数据,关闭ResultSet,关闭Statement对象,关闭 Connection对象 12、解析XML文件的几种方式和区别 Dom解析在内存中创建一个DOM树,能随机访问文件内容,也可以修改原文件内容SAX解析线性解析,不能随机访问,也无法修改原文件Dom解析要先用SAX解析创建DOM树 13、Java四种基本权限的定义 public private protected 默认 14、Java的国际化 Java 中提供了诺干国际化敏感类,来实现国际化的。例如:dateformat timezone 等等。 二、JSP    1、至少要能说出7个隐含对象以及他们的区别 Out:out 对象能把结果输出到网页上。out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。 Session: session对象表示目前个别用户的会话(session)状况。session对象实现javax.servlet.http.HttpSession接口. Application: application对象最常被使用在存取环境的信息。 pageContext:pageContext对象能够存取其他隐含对象。 Exception:若要使用exception 对象时,必须在page 指令中设定。<%@ page isErrorPage="true" %>才能使用。exception提供的三个方法: getMessage( ) getLocalizedMessage( )、 printStackTrace(new java.io.PrintWriter(out)) Request: request 对象包含所有请求的信息,如:请求的来源、标头、cookies和请求相关的参数值等等。 Response: response 对象主要将JSP 处理数据后的结果传回到客户端。 Config: config 对象里存放着一些Servlet 初始的数据结构。 Page: page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法 2、forward 和redirect的区别 forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。 3、JSP的常用指令 1.page指令 import session contentType buffer isTreadSafe info errorPage isErrorPage 2.include指令 3.taglib指令 三、servlet 1、什么情况下调用doGet()和doPost()? 当表单提交时method设置的是 get 就调用 doget 方法,如果是 post 就调用 dopost方法。 2、servlet的init()方法和service()方法的区别 初始化时调用init()方法有请求到达时调用service()方法,service()根据请求的类型,调用doget()或depost()等方法 3、servlet的生命周期 加载、实例化、初始化、处理客户端请求以及如何被移除。 容器负责加载和实例化一个servlet,容器调用servlet的init()方法初始发servlet,servlet容器调用其servlet()方法,根据客户端的方法,执行doGet或doPost方法,当WEB服务器和容器关闭时,会自动调用HttpServlet.destroy()方法关闭任何打开的资源,并进行一些关闭前的处理。 从Tomcat处理用户请求,我们可以清晰的看到容器Servlet的生命周期管理过程: 1、客户发出请求—>Web 服务器转发到Web容器Tomcat; 2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse; 3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程; 4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法; 5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里; 6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。 从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。 4、如何现实servlet的单线程模式 通过集成(extends)thread类或者实现(implements)Runnabled接口,将类定义成线程类。 通过关键字synchronized或者wait和notify实现同步 5、servlet的配置 <web-app> <servlet> <servlet-name>Admin</servlet-name> <servlet-class>jb-aptech.adminservlet</servlet-class> <init-param> <param-name>email</param-name> <param-value>admin@jb-</param-value> </init-param> </servlet> </web-app> 6、四种会话跟踪技术 Session,request,application,page page是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面 request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系) session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求 application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域 四、EJB 1、EJB容器提供的服务        主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。    2、EJB的角色和三个对象        EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者        三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类    2、EJB的几种类型        会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean        会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种        实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种    3、bean 实例的生命周期        对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Entity Bean和Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。    4、激活机制        以Statefull Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的 ejbActive和ejbPassivate方法。    5、remote接口和home接口主要作用        remote接口定义了业务方法,用于EJB客户端调用业务方法        home接口是EJB工厂用于创建和移除查找EJB实例    6、客服端调用EJB对象的几个基本步骤 一、设置JNDI服务工厂以及JNDI服务地址系统属性 二、查找Home接口 三、从Home接口调用Create方法创建Remote接口 四、通过Remote接口调用其业务方法 五、数据库 1、存储过程的编写 Create procedure examp(employee_id NUMBER)AS Tot_emp NUMBER; BEGIN        DELETE FROM employee WHERE Employee.id = examp.employee_id; Tot_emp = top_emp -1; END; 2、基本的SQL语句 Select * from dual Delete from dual; Insert table values(); Update table set columber 六、weblogic 1、 如何给weblogic指定大小的内存? 在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M 2、 如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。 3、 如何启动时不需输入用户名与密码? 修改服务启动文件,增加 WLS_USER和WLS_PW项。也可以在boot.properties文件中增加加密过的用户名和密码. 4、 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 保存在此Domain的config.xml文件中,它是服务器的核心配置文件。 5、 说说 weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入 http://主机:端口号//helloword.jsp就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办? Domain目录\服务器目录\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的 WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。 6、 如何查看在weblogic中已经发布的EJB? 可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB 7、 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 缺省安装中使用DemoIdentity.jks和DemoTrust.jks KeyStore实现SSL,需要配置服务器使用Enable SSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trust keystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。    8、在weblogic中发布ejb需涉及到哪些配置文件 不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xml CMP实体Bean一般还需要weblogic-cmp-rdbms-jar.xml    9、EJB需直接实现它的业务接口或Home接口吗,请简述理由. 远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。 10、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。 11、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法     Session Facade Pattern:使用SessionBean访问EntityBean Message Facade Pattern:实现异步调用 EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问 Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性 Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性 Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性 EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服