JAVA企业面试题100道_第1页
JAVA企业面试题100道_第2页
JAVA企业面试题100道_第3页
JAVA企业面试题100道_第4页
JAVA企业面试题100道_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CSS+JavaScript1、 HTML中定义表格的宽度用80px与80%的区别是什么?px表示像素,%表示占整个页面宽度的百分比。2、 简述DIV元素和SPAN元素的区别。DIV默认情况下是分行显示,SPAN在同行显示。3、 在HTML页面布局中,position的值有哪几种?默认值又是什么?1)position的五种值分别是static, relative, absolute, fixed, inherit2)position的缺省值是static4、 怎样使一个宽为200px和高为200px的层垂直居中于浏览器中?写出CSS样式代码。这里使用百分比和绝对定位,与外补丁负值的方法,负值的

2、大小为其自身宽度高度一半。5、 CSS规范中,.(句点)后面跟一个名称代表什么含义?#(井号)后面跟一个名称代表什么含义?如果要对一个元素设置CSS样式(内嵌样式),应将CSS样式写在它的什么属性内?1) .(句号)后面跟一个名称表示文档中所有class属性值包含这个名称的应用其样式,2) #(井号)后面跟个名称表示文档中ID为此名称的元素应用其样式。3) CSS样式写在style属性内。6、 CSS具体含义是什么?在网页制作中为什么要使用CSS技术?CSS(Cascading Style Sheets)也叫层叠样式表,它是用来控制网页中一个或多个元素的外观。在网页制作中,使用样式表可以减少很

3、多具有相同外观元素的重复设置工作,从而给网页的设计和维护带来了很大的方便;具体应用是:改变样式表中元素显示样式的定义,则在使用该样式表的所有网页中相应元素的显示样式都会自动发生改变。7、 CSS+DIV开发Web页面的优势有哪些? 1)CSS+DIV,这个网页设计模式中,DIV承担了网页的内容,CSS承担了网页的样式。这样就使网页的内容和样式的分离开来。有利于页面的维护升级。2)有助于提高搜索引擎亲和力(快速找到需要的数据,而不是像在TABLE中一层层的查找)3)有助于页面的重构(换皮肤如blog,直接套用另外一套样式就可以实现,而不用改动网页脚本。)8、 一个HTML文档必须包含三个元素,它

4、们是head、body和哪个?html9、 HTML中文档内联注释应该是以!-开头还是!-或者?-,又以什么结尾?以结尾10、 引用CSS样式,有哪几种方法?1)导入一个已经存在的CSS文件:2)直接在HARD里声明一个CSS代码段: .3)直接在网页元素里声明使用CSS样式:style=color:red;11、 JavaScript中settimeout与setinteval两个函数的区别?settimeout只执行一次,setInteval没有次数限制。12、 编写JavaScript脚本生成1-6之间的整数?var NowFrame;NowFrame=Math.random( )*6+

5、1 /随机生成一个1-6之间的小数NowFrame=parseInt(NowFrame) /把1-6之间的小数转化为整数 13、 设置什么属性可以让一个DIV隐藏和显示?值分别是什么?1)设置diasplay属性的值为none时,该层隐藏。2)设置diasplay属性的值为block时,该层显示。14、 在JavaScript脚本中,isNaN的作用是什么?isNaN的作用是判断值是否为数字15、 JavaScript中获取某个元素有哪几种方式?document.getElementById();此方法用于获得名为ID值的元素document.myform.xxx;此方法按照层次结构来获取do

6、cument.getElementsByName();此方法用于获得所有的名字相同的元素16、 Ajax的优缺点都有什么? Ajax的优点:1)页面无刷新,用户体验非常好。2)使用异步方式与服务器通信,具有更加迅速的响应能力。3)可以把一些服务器负担的工作转到客户端,利用客户端闲置的能力来处理,减轻服务器负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担。4)基于标准化并被广泛支持的技术,不需要下载插件或者小程序。Ajax的缺点:1)Ajax不支持浏览器back按钮。2)安全问题, Ajax暴露了与服务器交互的

7、细节。3)对搜索引擎的支持比较弱。4)破坏了程序的异常机制。5)不容易调试。17、 简述一下Ajax的工作原理。 Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。18、 JavaScript中的数据类型有几种?分别是什么? JavaScript中的数据类型有7种,分别是:1)Number 数字类型2)String 字符串类型3)Boolean 布尔类型4)Function 函数

8、5)Object 对象6)Null7)Undefined 没有定义类型19、 在JavaScript脚本中,表达式2+5+8得到的结果是什么?并说明原因。因为2和5是数字类型,“8”是字符串类型,所以相加得到的结果是78。20、 编写JavaScript脚本隐藏一个超级链接真实的地址。代码示例如下:Link Text HereJava21、 String 和StringBuffer的区别是什么? Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供

9、的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffer来动态构造字符数据。22、 请谈谈final、finally和finalize的区别?final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。23、 Error和Exception有什么区别?Error 表示恢复不是不可能但很困难的情况下的

10、一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。Exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。24、 GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。25、 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类?接口可以继承接口,

11、抽象类可以实现(implements)接口;抽象类是否可继承实体类,前提是实体类必须有明确的构造函数。26、 char型变量中能不能存贮一个中文汉字?为什么?能够定义成为一个中文的,因为Java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的。27、 一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?可以包含多个类,必须只有一个类名与文件名相同。28、 Java中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overload

12、ing是一个类中多态性的一种表现。29、 List、Map、Set三个接口,存取元素时,各有什么特点?List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。30、 ArrayList和Vector的区别1)同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。 2)数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半。31、 说出ArrayList,Vector, LinkedList的存储性能和特性。ArrayList和Vect

13、or都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。32、 简述作用域public,private,protected,以及默认时的区别?public(共有):可以被该类的成员或非该类的成员。private(私有):只能被该类的成员

14、访问,任何非该类成员不能访问任何私有的方法或变量,其主要目的是隐藏数据。protected(保护):可以被该类的成员以及其子类成员访问,还可以被同一包内其他类的成员访问。默认(default):只有它本身的类和在同一个包里的类才可以访问它。33、 说说Java中的异常处理机制的简单原理和应用。当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是Java类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是

15、Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。34、 Java面向对象的特征有哪些方面?1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原

16、始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。35、 什么是类与对象?对象就是真实世界中的实体,对象与实体是一一对应的,也就

17、是说现实世界中每一个实体都是一个对象,它是一种具体的概念。类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。36、 启动一个线程是用run()还是start()?启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。37、 什么是封装?只要有足够的方法,就没必要直接去操作对象属性,只要调用这些方法就可以实现要完成的任务,这种现象称为封装,它通过对象方法对其属性的操作把对象属性

18、封装在一个对象内部,对象与外界打交道全部通过其自身的方法来实现,有效的把对象属性隐藏在对象内部。38、 abstract class和interface有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类

19、可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。39、 Set

20、里的元素能不能重复?用什么方法来区分是否重复?用 = 还是 equals()?它们有何区别?Set元素不能重复,用iterator()方法来区分是否重复,equals()是判断两个set是否相等,= = 和equals()决定引用值是否指向同一对象,equals()在类中被覆盖,目的是当两个分离的对象的内容和类型相匹配的话,返回真值。40、 简述Java的事件委托机制和垃圾回收机制?Java的事件委托机制是:一个源产生一个事件并将它送到一个或多个监听器那里,而监听器一直等待,直到它收到一个事件,一旦事件被接受,监听器将会处理这个事件,然后返回。垃圾回收机制是:垃圾收集将分配给对象但不再使用的内

21、存回收或释放的过程。如果一个对象没有指向它的引用或其值为null时,则次对象适合进行垃圾回收。41、 运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。42、 接口和内部类、抽象类各自的特征是什么?接口:在一个类里,只有申明没有实现。内部类:是在一个类的内部定义的一个类。抽象类:是以abstract 定义的,里面至少有一个抽象方法。43、 String是最基本的数据类型吗?基本数据类型包括byte、i

22、nt、char、long、float、double、boolean和short。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。44、 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。45、 swtich是否能作用在byte上,是否能作用在

23、long上,是否能作用在String上?switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。46、 try 里有一个return语句,那么紧跟在这个try后的finally 里的code会不会被执行,什么时候被执行,在return前还是后?会执行,在return前执行。47、 String s = new String(xyz);创建了几个String Object?两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s 。4

24、8、 float型float f=3.4是否正确?不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4;49、 构造器Constructor是否可被override?构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。50、 在Java中,是否可以继承String类?String类是final类,故不可以继承。51、 int 和 Integer 有什么区别?Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Jav

25、a为每个原始类型提供了封装类。原始类型封装类: booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。52、 描述一下JVM加载class文件的原理机制?JVM中类的装载是

26、由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。53、 if(-0.0 = 0.0)是相等还是不等?相等。54、 说出一些常用的类,包,接口,请各举5个?常用类:System,ArrayList,FileInputStream,Thread,Socket.常用的包:java.io,java.util,java.sql,java.javax.naming,常用接口:Collection,Connection, Cloneable, Comparable, Serializable

27、55、 throw 与 throws的区别与联系是什么? 区别一:throw 是语句抛出一个异常;throws 是方法抛出一个异常;throw语法:throw 在方法声明中,添加throws子句表示该方法将抛出异常。throws语法:()throws,其中:异常类可以声明多个,用逗号分割。区别二:throws可以单独使用,但throw不能;区别三:throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。56、 什么是JDK?JDK(Java Development Kit)是整个Java的核心,包括了J

28、ava运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。57、 介绍一下Java的集合类? 1)集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。2)集合类型主要有3种:set(集)、list(列表)和map(映射)。58、 有一组数字 int list = 3,10,6,8,98,22,86,74,1,请用Java语言编程排序(升降序皆可),算法不限。public

29、 class Paixupublic static void main(String args)int list = 3,10,6,8,98,22,86,74,1;int temp;for(int i = 0; i list.length-1; i +) for (int j = 0; j list.length -i- 1; j+)if(listj+1 listj)temp = listj;listj = listj+1;listj+1 = temp;for(int z = 0; z list.length; z+)System.out.println(排序后的顺序是: + listz);5

30、9、 在Java中,请编写一个Singleton程序。public class Singleton private static Singleton single = new Singleton(); private Singleton() public Singleton getInstance() return single; 60、 已知数据源名称为conn,用户名称为lianyi,密码为admin,数据库Users,请用JDBC检索出表success的所有数据。success表的字段如:table success(int stuId,int couId,int grade)。impor

31、t java.sql.PreparedStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sqlDriverManager;public class DBpublic void getAllInfo()tryClass.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);String url = “jdbc:Microsoft:sqlserver/localhost:1433;databaseName=Users”;Connection

32、conn = DriverManager.getConnection(url,“lianyi”,”admin”);String sql = “SELECT * FROM success”;PreparedStatement ps = conn.getPreparedStatement(sql);ResultSet rs = ps.executeQuery();while(rs.next()System.out.println(rs.getInt(1);System.out.println(rs.getInt(2);System.out.println(rs.getInt(3);rs.close

33、();ps.close();catch(SQLException ex)System.out.println(ex.toString();catch(Exception ex)System.out.println(ex.toString);finallytryconn.close()catch(Exception ex)System.out.println(ex.toString(); JavaWeb+SSH61、 什么叫做SQL注入,如何防止?1)页面用连接方式、表的字段名做为参数,将sql语句暴露。2)可以使用存储过程防范。62、 概述三层结构体系和优点?1)标准三层为:表示层 (Web)

34、:展示数据;业务层(BLL):处理业务逻辑,是表示层和数据访问层的桥梁;数据访问层(DAL):对数据库进行操作。2)三层的优点:a、代码重用; b、解耦(当一层的代码发生改变,尽量不影响其他层,从而方便程序的修改和扩展)63、 JSP中有哪些内置对象?作用分别是什么?PageContext对象:提供存取所有关于JSP程序执行时期所要用到的属性和方法,为JSP页面包装页面的上下文,管理对属于JSP中可见部分钟已命名对象的访问Request对象:包含客户端向服务器端发出请求的内容,可以通过这个对象了解到客户端向服务器端发出请求的内容和客户端所要求的资料Response对象:包含的是服务器端向客户端

35、做出的应答信息Session对象:用于保存客户信息而分配给客户的对象Application对象:作用是显示相应页面所属的JSPContainterApplication对象Out对象:作用是在服务器中向客户端打开的OutputStream,该对象可以把除脚本小程序外的所有信息发送到客户端的页面浏览器中Config对象:Servlet的配置信息,当一个Servlet初始化时,容器把某些信息通过此对象传递给ServletPage对象:作用是为了执行当前页面的应答请求而设置的Servlet类实体(Instance),即显示的是JSP本身,只有在JSP页面内才是合法的Exception对象:作用是为了

36、对能够预测可能发生异常的情况做出相应的处理。64、 在Java Servlet API中forward()与redirect()的区别是什么?forwar()仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;redirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward()更加高效,在forward()可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。65、

37、 XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?1)两种形式 dtd和schema。2) 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。3)有DOM,SAX,STAX等。DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问 SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,

38、它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 STAX:Streaming API for XML (StAX)66、 JSP有哪些动作?作用分别是什么?JSP共有以下6种基本动作:jsp:include 在页面被请求的时候引入一个文件。 jsp:useBean 寻找或者实例化一个JavaBean。 jsp:setProperty 设置JavaBean的属性。 jsp:getProperty 输出某个JavaBean的属性。 jsp:forward 把请求转到一个新的页面。 jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EM

39、BED标记。67、 说出数据连接池的工作机制是什么?J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。68、 JSP和Servlet有哪些相同点和不同点,它们之间的联系是什么?JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是“类servlet”。Servlet和JSP最主要的不

40、同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。69、 简单说明Servlet的生命周期?Servlet是一种可以 在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命 周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:Se

41、rvlet容器完成加载Servlet类和实例化一个Servlet对象。init()方法完成初始化工作,该方法由Servlet容器调用完成。service()方法处理客户端请求,并返回响应结果。destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源。70、 什么是WebService? WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(w

42、eb服务定义语言)/SOAP(简单请求协议)规范的。71、 什么是HTTP(Hyper Text Transfer Protocol、超文本传输协议)? HTTP(Hyper Text Transfer Protocol、超文本传输协议)是用来在互连网上传输文档的协议,它是Web上最常用也是最重要的协议,也是Web服务器和Web客户(如浏览器)之间传输Web页面的基础。HTTP是建立在TCP/IP之上的应用协议,但并不是面向连接的,而是一种请求/应答(Request/Response)式协议。浏览器通常通过HTTP向Web服务器发送一个HTTP请求,其中包括一个方法、可能的几个头、一个体。常用

43、的方法类型包括:GET(请求一个网页)、POST(传送一个表单中的信息)、PUT(存入这个信息、类似于FTP中的PUT)和DELETE(删除这个信息)。Web服务器接受到HTTP请求之后,执行客户所请求的服务,生成一个HTTP应答返回给客户。HTTP应答有一个状态行、可能的几个头、一个体。在头中可以定义返回文档的内容类型(MIME类型)、Cache控制、失效时间。MIME类型包括:“text/html”(HTML文本)、“image/jpeg”(JPEG图)、“audio/ra”(RealAudio文件)。HTTP本身也在不断完善和发展,目前,常用的是HTTP1.1,它更好地利用TCP的特性,

44、对HTTP1.0作了改进。72、 请总结一下Web开发中的会话跟踪实现技术都有哪几种? 1、session,也是最常用的一种2、Cookie3、地址重写4、隐藏域73、 提交表单请求时,POST和GET有哪些区别? 以GET方式请求方式传输,所带参数附加在请求URL后直接传给服务器,并可以从服务器端的QUERY_STRING这个环境变量中读取;如果以POST请求方式传输则参数被打包在数据包中传给服务器。使用POST方法数据由标准的输入设备读入,使用GET方法,数据由CGI变量Query_STRING传递给表单数据处理程序,即附加在请求地址的后面,在浏览器的地址栏可看到Servlet会自动将以上

45、两种方法得到的数据进行处理,对于两种方法Servlet处理方法是一样的,用户只要调用HttpServletRequest的getParameter()方法,给出变量名称即可取出变量的值。74、 Tomcat 最多支持并发多少用户? Tomcat的最大并发数是可以配置的,而且并没有限制你所配置的并发数数量,需要根据你的应用处理request所需要的带宽,CPU,内存,压力等进行配置。还有一种说法是Tomcat的理论并发数量极限是服务器最大可用的端口数,也就是最多65536个,但是我并不确定这是正确的。Tomcat支持的并发数与操作系统也是有关系的,一些操作系统会限制外来的连接数。实际运用中,最大

46、并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。75、 Hibernate对象的三种状态是什么? Hibernate中的load()和get()方法有何区别?1)瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。2)load()方法认为该数据一定存在,可以放心的使用代理来延时加载 ,如果使用过程中发现了问题,就抛出异常;76、 Hibernate 有哪5 个核心接口?1)Co

47、nfiguration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象;2)SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;3)Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;4)Transaction 接口:管理事务;5)Query 和Criteria 接口:执行数据库的查询。77、 H

48、ibernate是如何延迟加载? Hibernate提供了属性的延迟加载功能。当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。78、 Spring中,两种依赖注入的类型都是什么? 两种依赖注入的类型分别是setter注入和构造方法注入。79、 解释一下Dependency injection(DI,依赖注入)和IOC(Inversion of control,控制反转)? 依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲,依赖注入是

49、一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:把一个数据库连接已参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖。应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。80、 介绍一下DWR框架 DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让Ajax开发变得很简

50、单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).DWR的实现原理是通过反射,将Java翻译成JavaScript,然后利用回调机制,从而实现了JavaScript调用Java代码。SqlServer+Oracle81、 在SqlServer中,什么是存储过程?什么是触发器?1)存储过程是一个预编译的SQL语句的集合,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执

51、行要快。2)触发器是一种特殊的存储过程,主要是通过表的事件(对表的增,删,改操作)来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发82、 在Oracle中,触发器分为事前触发和事后触发,这两种触发有和区别?语句级触发和行级触发有何区别?1)事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。2)语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。8

52、3、 请说出SqlServer数据库中存储过程和函数的区别?存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的,用户可以调用存储过程。函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。84、 谈谈你对SqlServer数据库中视图的看法。视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。视图本质上讲,就是保存在数据库中的select查询。视图并不是数据库中存储的数据值的集合。对最终用户的好处:结果更容易理解、获得数据更容易。对开发人员的好处:限制数据检索更容易、维护应用程序更方便。85、 在数据库设计中,什么是规范化?三范式的定义是

53、什么?1)从数据库的表中,除去冗余数据的过程称为规范化。2)三范式的定义:第一范式的定义:如果一个表中没有重复组(每一字段只存储一个值)。第二范式的定义:如果一个表属于1NF,任何属性只依赖于关键字,则这个表属于第二范式(必须先符合1NF的条件,且每一行都能被唯一的识别)第三范式的定义:如果一个表属于2NF,且不包含传递依赖性(没有一个非关键属性依赖于另一个非关键属性)86、 SqlServer中的索引指什么?它的优、缺点各是什么?1)索引:是一个数据库对象,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,然后根据指定的排序次序排列这些指针。2)优点:提高

54、查询执行的速度,强制实施数据的唯一性,提高表之间联接的速度。3)缺点:存储索引要占用磁盘空间,数据修改需要更长的时间,因为索引也要更新。87、 在SqlServer中,现有三张表:table student(int stuId,varchar(20) dtuName), table course(int couId,varchar(30) couName),table success(int stuId,int couId,int grade)a) 查出被学生选修的课程信息,去掉重复的课程信息答案1:SELECT * FROM course WHERE couId in(SELECT DIST

55、INCT couId FROM success)答案2:SELECT DISTINCT c.* FROM course AS c INNER JOIN success AS s ON c.couId = s.couIdb) 查出学生选修的课程门数和学生姓名,并按所选修课程门数倒序排序SELECT s.stuName,COUNT(a.couId) AS 选修的课程门数 FROM student AS s INNER JOIN success AS a ON s.stuId = a.stuId GROUP BY s.stuName ORDER BY 选修的课程门数 DESCc) 查出没有被学生选修的课程信息SELECT * FROM couse WHERE couId NOT IN(SELECT DISTINCT coutId FROM success) d) 查出分数最高的学生名称和分数最高的课程名称答案1: SELECT TOP 1 s.stuName,c.couName,max(a.grade) AS grade FROM student AS s INNER JOIN success

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论