2009-02-16 16:06:00
10.连接池的工作原理;(JDBC)
答:连接池中保存有指定个数的数据库连接,当需要时程序可从池中获取可用连接,并在程序使用过之后不关闭连接,并放回连接池中,以供其他的程序在需要时来取用,这样可以大量的节省销毁和创建连接的资源消耗。
11.JNDI是什么?
答:是java命名和目录接口服务
12.什么是web容器;(Web)
答:容器是一个软件的概念,提供了一个组件运行的环境。Web容器或ejb容器都是其中的一种。例如tomcat就是一个开源的服务器,是jsp/servlet的容器。
13. forward和redirect区别;(Web)
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接,这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
回复77:14.struts的入口类;(Web)
答:ActionServlet是Struts的入口类,所有的struts请求都经由该类转发处理
16.servlet的生命周期以及与其相关的类接口和相关方法;(Web)
答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
17.关于hibernate:
1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;
2)Hibernate的二级缓存是什么;
3)Hibernate是如何处理事务的;
答:1)一对多的标签为: <one-to-many> ;多对多的标签为: <many-to-many>;
2)sessionFactory的缓存为hibernate的二级缓存;
3)Hibernate的事务实际上是底层的JDBC Transaction的封装或者是JTA Transaction的封装;默认情况下使用JDBCTransaction。
18.JSP中两种 include方式的区别;(Web)
答:动态include用jsp:include动作实现,它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态include用 <%@include %>指令实现,适用于包含静态页面
19.javascipt的优缺点和内置对象;(Web)
答:关于javascipt:
1)优点:简单易用,与Java有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;
2)缺点:不适合开发大型应用程序
3)javascript有11种内置对象:
Array,String,Date,Math,Boolean,Number,Function,Global,Error,RegExp,Object
20.get和post的区别?(Web)
答:form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET
和POST方法。二者主要区别如下:
1)Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据;
2)Get将表单中数据的按照variable=value的形式,添加到action所指向的URL
后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;
3)Get是不安全的,因为在传输过程,数据被放在请求的URL中,
Post的所有操作对用户来说都是不可见的;
4)Get传输的数据量小,这主要是因为受URL长度限制,而Post可以传输大量
的数据,所以在上传文件只能使用Post;
5)Get限制form表单的数据集必须为ASCII字符,而Post支持整个ISO10646
字符集;
6)Get是form的默认方法。
21.JSP的九个内置对象及其作用、JSP的动作;(Web)
答:JSP共有以下9种基本内置组件:
1)request :用户端请求,此请求会包含来自GET/POST请求的参数
2)response :网页传回用户端的回应
3)pageContext :网页的属性是在这里管理
4)session :与请求有关的会话期 ,可以存储用户的状态信息
5)application :servlet 正在执行的内容 ,可用于查找有关servlet引擎和环境的信息
6)out :用来传送回应的输出
7)config :servlet的构架部件 ,用于存取servlet实例的初始化参数
8)page :JSP网页本身
9)exception :针对错误网页,未捕捉的例外;
JSP共有以下6种基本动作:
1)jsp:include:在页面被请求的时候引入一个文件。
2)jsp:useBean:寻找或者实例化一个JavaBean。
3)jsp:setProperty:设置JavaBean的属性。
4)jsp:getProperty:输出某个JavaBean的属性。
5)jsp:forward:把请求转到一个新的页面。
6)jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
22.写出你熟悉的开源框架以及各自的作用。
答:框价:hibernate,spring,struts.
Hibernate主要用于数据持久化;
Spring 的控制反转能起到解耦合的作用;
Struts 主要用于流程控制;
服务器类:Apache Tomcat Jboss等
24.简述你对Struts框架的理解;(Web)
答: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属性、国际化的提示和消息。
29.如何从form表单中得取checkbox的值;(Web)
答:可在页面把checkbox的name属性取同一个,value属性取每个条目的id,后台用getParamter(“name”)能取到checkbox的一组值。
30.简述HttpSession的作用、使用方法,可以用代码说明。(时间3分钟)(Web)
答:HttpSession中可以跟踪并储存用户信息,把值设置到属性中,有2个方法:setAttribute(),getAttrribute();
例如:在一个方法中用session.setAttribute(“student”,student);在session中设置一个属性名为student,值为一个名为student的对象。而后可在同一session范围内用getAttribute(“student”)取出该属性,得到student对象
33.设计模式有哪些?
答:包括单类模式,工厂模式,MVC模式,观察者模式,代理模式,试配器模式,门面模式等等共23种之多。
34.UML分析设计中常用的几种图;(UML)
答:用例图,静态图(包括类图、对象图、和包图)、行为图、交互图(顺序图、合作图),实现图。
35.你对软件开发中迭代的含义的理解;(UML)
答:软件开发中,各个开发阶段不是顺序执行的,应该是并行执行,也就是跌代的意思。这样对于开发中的需求变化,及人员变动都能得到更好的适应。
37.XML的两种解析方式和定义方式;(XML)
答:解析方式有:
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问;
SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。
定义方式:DTD(文档类型定义)和Schema。
1.简要介绍java程序的健壮性。
答:JAVA 程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏。
2.为什么说java语言是完全面向对象的?
答:因为它不支持任何面向过程的程序设计技术它的所有程序设计技术都是用类来实现的。
3.简要介绍java如何实现安全性。
答:首先JAVA 删除了指针这就避免了非法的内存操作,所有对内存的操作都必须通过对象的实例来实现。而且当我们从网上下载代码执行是它的安全系统能确保恶意程序不会随便访问我们本地计算机的资源。
4.为什么说java是解释性的?
答:因为我们在执行JAVA文件时,编译器会先把代码译成字节码文件,这是一种中间代码,然后JAVA解释器才进行执行。
5.简要介绍java的平台无关性。
答:JAVA程序是在虚拟机上执行的,只要安装了JAVA虚拟机它就可以以字节码的形式在任何平台上执行。
6.简要介绍java的多态性。
答:多态性是指同名的不同方法在程序中共存,系统根据不同的情况调用不同的方法实现不同的功能。实现多态性的方法有两种:覆盖实现,重载实现。
7.简要介绍java是强类型检查语言。
答:JAVA对数据类型的检查非常严格,在定义和用变量时必须先指定其类型而且它只允许数据类型的向上提升,而且不允许出现会出现数据丢失的附值(如把小数附给整形)。
8.int 和 Integer 有什么区别?
答:int是简单数据类型(整形)而Integer是整形的封装类。
9.简要介绍String 和StringBuffer的区别?
答:String 类代表不可变字符串。在值创建之后就不能被改变。而StringBuffer是可变的字符序列,初始容量16字节,通过某些方法可改变其内容和长度。
10.简要介绍java的垃圾回收机制。
答:JAVA的垃圾回收机制就是:当一个对象没有任何引用时,该对象便会启动垃圾回收器调用finalize()方法以配置系统资源或执行相关的清除操作。
11.final关键字的作用是什么?
答:其作用是:用该关键字定义一个变量则该变量是一个最终变量,若用它定义一个方法则在继承过程中该方法无法被覆盖,若用它定义一个类则该类无法被继承。
12.static关键字的作用是什么?
答:用static关键字所定义的方法或变量表示它是一个静态的,该方法或变量(可视为全局变量)不属于任何对象,而是属于类的,在类被加载的时候它就已经存在了。
13.简要介绍super的用法。
答:用super关键字可以调用父类对象的方法或域,当子类需要调用父类带参数的构造方法的时候就可以通过在自己构造方法的第一个可执行语句中使用super关键字来对其进行调用。
14.java的访问限定符有哪些?区别是什么?
答JAVA的访问限定符分别是:public:公有的,在任何情况下都是可见的;
private:私有的,只有在同一个类中是可见的;protected:保护的,只有在同一个类中和该类的子类以及同一个包中是可见的。default:默认的,只在同一个类中和同一包中可见。
15.接口能直接创建对象吗?为什么?
答:不能。因为接口中的所有方法都是抽象的方法。
16.在继承关系中,要创建子类对象,构造函数是如何调用的,应该注意什么?
答:在继承关系中,要创建子类对象,构造方法会先调用其父类无参的构造方法,再调用子类的构造方法。需要注意的是:子类只能自动调用父类无参的构造方法,若要调用父类带参数的构造方法,需要用super关键字进行调用。
17.简要介绍方法覆盖和方法重载的区别。
答:方法的覆盖是发生在两个类中的而且这两个类是继承的关系,子类的方法和父类的方法是同名且同参的。而方法的重载是出现在同一个类中的,同名不同参的若干个方法。
18.简要说明当对象上传后(父类引用指向子类对象),对象的成员访问是受限制的。
答:当父类引用指向子类对象时,若是由父类继承而来的成员则可以访问,若是子类自己扩展的成员则访问受限制
19.谈谈你对内部类及其使用的理解。
答:在一个类中定义另外一个类,这个另外的类就叫做内部类。一个内部类可访问宿主类的任何成员和方法,但当内部类被定义成一个静态类时(嵌套类)它不能访问宿主类的非静态方法(若不想让内部类访问宿主类的成员时因定义成静态的);要创建内部类对象必须先创建其宿主类对象一个内部类可放在宿主类中也可以放在外部类的一个方法中(局部内部类),此时如果内部类要访问该方法的参数或者变量,那么这个参数或变量必须是final的;有时为了省去反复写一些代码还可将一个内部类不起名字把其做成一个匿名内部类。内部类可派生子类,也可用其实现接口。要实例一个内部类必须先实例外部类。