java基础知识1

5八、线程的基本概念、线程的基本状态以及状态之间的关系
线程指在程序执行过程当中,可以执行程序代码的一个执行单位,每一个程序至少都有一个线程,也就是程序自己。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
 

5九、JSP的经常使用指令
< %@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)
< %@include file="filename"%>
< %@taglib prefix="c"uri=" http://......"%>
 

60、什么状况下调用doGet()和doPost()?
Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
 

6一、servlet的生命周期
web容器加载servlet,生命周期开始。经过调用servlet的init()方法进行servlet的初始化。经过调用service()方法实现,根据请求的不一样调用不一样的do***()方法。结束服务,web容器调用servlet的destroy()方法。
 

6二、如何现实servlet的单线程模式
<%@ page isThreadSafe="false"%>
 

6三、页面间对象传递的方法
request,session,application,cookie等
 

6四、JSP和Servlet有哪些相同点和不一样点,他们之间的联系是什么?
JSP 是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不一样点在于,Servlet的应用逻辑是在Java文件中,而且彻底从表示层中的HTML里分离开来。而JSP的状况是Java和HTML能够组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
 

6五、四种会话跟踪技术
会话做用域ServletsJSP 页面描述
page否是表明与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(能够带有任何的 include 指令,可是没有 include 动做)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面
request是是表明与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(因为 forward 指令和 include 动做的关系)
session是是表明与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话能够也常常会跨越多个客户机请求
application是是表明与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局做用域
 

6六、Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象全部属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的全部Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(String name):得到HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的全部值,结果是一个枚举的实例
getHeaderNames():返回因此request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于得到请求中的数据
getMethod():得到客户端向服务器端传送数据的方法
getParameter(String name):得到客户端传送给服务器端的有name指定的参数值
getParameterNames():得到客户端传送给服务器端的全部参数的名字,结果是一个枚举的实例
getParameterValues(String name):得到有name指定的参数的全部值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():得到查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
 

6七、J2EE是技术仍是平台仍是框架?
    J2EE自己是一个标准,一个为企业分布式应用的开发提供的标准平台。
    J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
 

6八、咱们在web应用开发过程当中常常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
  Public String translate (String str) {
    String tempStr = "";
    try {
      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
      tempStr = tempStr.trim();
    }
    catch (Exception e) {
      System.err.println(e.getMessage());
    }
    return tempStr;
  }
 

6九、简述逻辑操做(&,|,^)与条件操做(&&,||)的区别。
区别主要答两点:a.条件操做只能操做布尔型的,而逻辑操做不只能够操做布尔型,并且能够操做数值型
b.逻辑操做不会产生短路
 

70、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)
 

7一、简述synchronized和java.util.concurrent.locks.Lock的异同 ?
主要相同点:Lock能完成synchronized所实现的全部功能
主要不一样点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock必定要求程序员手工释放,而且必须在finally从句中释放。
 

7二、EJB的角色和三个对象
一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色能够由不一样的开发商提供,每一个角色所做的工做必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类
 

7三、EJB容器提供的服务
主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。
 

7四、EJB规范规定EJB中禁止的操做有哪些?
    1.不能操做线程和线程API(线程API指非线程对象的方法如notify,wait等),2.不能操做awt,3.不能实现服务器功能,4.不能对静态属生存取,5.不能使用IO操做直接存取文件系统,6.不能加载本地库.,7.不能将this做为变量和返回,8.不能循环调用。
 

7五、remote接口和home接口主要做用
remote接口定义了业务方法,用于EJB客户端调用业务方法。
home接口是EJB工厂用于建立和移除查找EJB实例
 

7六、bean 实例的生命周期
对于Stateless Session Bean、Entity Bean、Message Driven Bean通常存在缓冲池管理,而对于Entity Bean和Statefull Session Bean存在Cache管理,一般包含建立实例,设置上下文、建立EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create以后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则经过激活和去激活机制保持Bean的状态并限制内存中实例数量。
 

7七、EJB的激活机制
以Stateful Session Bean 为例:其Cache大小决定了内存中能够同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,若是对应EJB Object发现本身没有绑定对应的Bean实例则从其去激活Bean存储中(经过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的 ejbActive和ejbPassivate方法。
 

7八、EJB的几种类型
会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种
实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种
 

7九、客服端调用EJB对象的几个基本步骤
设置JNDI服务工厂以及JNDI服务地址系统属性,查找Home接口,从Home接口调用Create方法建立Remote接口,经过Remote接口调用其业务方法。
 

80、如何给weblogic指定大小的内存?
在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增长set MEM_ARGS=-Xms32m -Xmx200m,能够调整最小内存为32M,最大200M
 

8一、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?
能够在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增长set PRODUCTION_MODE=true。
 

8二、如何启动时不需输入用户名与密码?
修改服务启动文件,增长 WLS_USER和WLS_PW项。也能够在boot.properties文件中增长加密过的用户名和密码.
 
 
 
8三、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或链接池等相关信息进行配置后,实际保存在什么文件中?
保存在此Domain的config.xml文件中,它是服务器的核心配置文件。
 

8四、说说weblogic中一个Domain的缺省目录结构?好比要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入 http://主机:端口号//helloword.jsp就能够看到运行结果了? 又好比这其中用到了一个本身写的javaBean该如何办?
Domain 目录服务器目录applications,将应用目录放在此目录下将能够做为应用访问,若是是Web应用,应用目录须要知足Web应用目录要求,jsp文件能够直接放在应用目录中,Javabean须要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将能够实如今浏览器上无需输入应用名。
 

8五、在weblogic中发布ejb需涉及到哪些配置文件
不一样类型的EJB涉及的配置文件不一样,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP实体Bean通常还须要weblogic-cmp-rdbms-jar.xml
 

8六、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置
缺省安装中使用DemoIdentity.jks和DemoTrust.jks  KeyStore实现SSL,须要配置服务器使用Enable SSL,配置其端口,在产品模式下须要从CA获取私有密钥和数字证书,建立identity和trust keystore,装载得到的密钥和数字证书。能够配置此SSL链接是单向仍是双向的。
 

8七、如何查看在weblogic中已经发布的EJB?
可使用管理控制台,在它的Deployment中能够查看全部已发布的EJB
 

8八、CORBA是什么?用途是什么?
CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和容许应用程序间互操做的协议。其目的为:用不一样的程序设计语言书写在不一样的进程中运行,为不一样的操做系统开发。
 
8九、说说你所熟悉或据说过的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架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性。
相关文章
相关标签/搜索