public static void fun(int [] a,int c){
for(int i=0;i<a.length-1;i++){
for(int j=i;j<a.length-1;j++){
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
System.out.print(a[i]+\"大众 \"大众);
}
}
2.查询出M 页的N行数据(分页的实现,求第M也的记录数)
Select top N from table where id not in (select top (M-1)N id from table )
3.Linkedlist arraylist内部是如何实现的(更深入的问了LinkedList与ArrayList的差异)
ArrayList的内部实现是基于内部数组Object[],以是从观点上讲,它更像数组,但LinkedList的内部实现是基于一组连接的记录,以是,它更像一个链表构造,以是,它们在性能上有很大的差别。
在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样一定要花费较多韶光,以是,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且须要随机地访问个中的元素时,利用ArrayList会供应比较好的性能;
而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,以是,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问个中的元素时,就该当利用LinkedList了。
如果在编程中,两种环境交替涌现,这时,可以考虑利用List这样的通用接口,而不用关心详细的实现,在详细的环境下,它的性能由详细的实现来担保
4.new ArrayList(10)含义
在内存中连续分配了用来存在Object工具的数组;
5.面向工具紧张内容? 有什么浸染?
就剖析设计层面来说,面向工具技能供应了更高等的抽象能力以及更多的方法和工具,如设计模式; 就实现掩护层面来说,面向工具技能使代码重用更随意马虎,且使代码具有可扩展性,便于软件的掩护和升级更新。
6.如何移动一个数 使62-63=1成立
62-63=1如何移动 2的6次方即是64 2的6次方-63=1 把2移动到6的左下方
7.递归实现1,1,2,3,5,8,….第30个数是多少?
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
int i=Foo(30);
System.out.println(i);
8.JAVA实现向数据库添加一列
Connection con = null;
ResultSet rs = null;
Class.forName(\"大众com.microsoft.jdbc.sqlserver.SQLServerDriver\"大众);
String url=\"大众jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name\公众;
Connection con = DriverManager.getConnection(url,\"大众\公众,\公众\公众);
StateManager sm =con.createStateMent();
String sql = \公众 alter table student add age int; \"大众;
rs = sm.excute(sql);
9.写出删除表中重复记录的语句 oracle
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group
10.用什么方法使做事器关闭之后,session所保存的信息不会丢失?
利用cookie
11.如果页面没有<html></html>标签,会涌现什么缺点代码?
没有什么变革
12.抽象类是否可以没有抽象方法?为什么?
可以 在java中用abstract关键字来润色一个类时,这个类叫做抽象类。
抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。
13.servlet中的init方法什么时候被调用?
容器首次创建实例的时候
14.用4 个0,用你所知道的数学方法打算出24
0的阶乘即是1 即 0!
=1那么4个0便是4了
又4的阶乘为24 4!
=24
15.linux中进程的查看和调度分别用什么命令?
ps -A 查看 renice top
16.凑集类有哪些?有哪些方法?
凑集类 ArrayList LinkedList HashSet HashMap
方法:add(),remove(),put(),addAll(),removeAll()
17.OSI七层模型tcp四层模型是什么样的
OSI七层参考模型 :物理层 、数据链路层 、网络层 、传输层、运用层、会话层、表示层
TCP/IP:第一层网络接口层第二层 第二层??网间层 第三层??传输层 第四层??运用层
18.JAVA测试模式(ZZ):
模式(一) Main 模式
模式(二) toString 模式
模式(三) Equal 模式
模式(四) Internal Tester Class 模式
模式(五) Extern Tester Class 模式
19.一学生表!
有班及id,学号!
成绩!
一求均匀成绩!
二求比均匀成绩高的学生的所有信息
select id,avg(成绩) from table group by id
select from table where 成绩 > (select 成绩 from (select id,avg(成绩) 成绩 from table group by id)as a )
20.jdk的新特性
“JDK1.5”的一个主要主题便是通过新增一些特性来简化开拓,这些特性包括泛型,for-each 循环,自动装包/拆包,列举,可变参数, 静态导入 。利用这些特性有助于我们编写更加清晰,精悍,安全的代码。
21.j2ee的规范?
SUN公司定义的一个开拓分布式企业级运用的规范。它供应了一个多层次的分布式运用模型和一系列开拓技能规范。多层次分布式运用模型是指根据功能把运用逻辑分成多个层次,每个层次支持相应的做事器和组件,组件在分布式做事器的组件容器中运行(如Servlet组件在Servlet容器上运行,EJB组件在EJB容器上运行),容器间通过干系的协议进行通讯,实现组件间的相互调用 J2EE规范定义了以下四个层次。 1.客户端层(Client Tier) 2.Web层 3.业务层(Business Tier) 4.企业信息系统层
22.ajax的事情事理?
Ajax 基本上便是把 JavaScript 技能和 XMLHttpRequest 工具放在 Web 表单和做事器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给做事器。相反,JavaScript 代码捕获表单数据并向做事器发送要求。同时用户屏幕上的表单也不会闪烁、消逝或延迟。换句话说,JavaScript 代码在幕后发送要求,用户乃至不知道要求的发出。更好的是,要求是异步发送的,便是说 JavaScript 代码(和用户)不用等待做事器的相应。因此用户可以连续输入数据、滚动屏幕和利用运用程序。
然后,做事器将数据返回 JavaScript 代码(仍旧在 Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人觉得运用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript 代码乃至可以对收到的数据实行某种打算,再发送另一个要求,完备不须要用户干预!
这便是 XMLHttpRequest 的强大之处。它可以根据须要自行与做事器进行交互,用户乃至可以完备不知道幕后发生的统统。结果便是类似于桌面运用程序的动态、快速相应、高交互性的体验,但是背后又拥有互联网的全部强大力量。
23..Xml特点?
XML是一种可扩展标记措辞 (XML) 是 Web 上的数据通用措辞。它使开拓职员能够将构造化数据,从许多不同的运用程序通报到桌面,进行本地打算和演示。XML 许可为特定运用程序创建唯一的数据格式。它还是在做事器之间传输构造化数据的空想格式。XML紧张具有以下几个特点:① 简洁有效XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web运用种,它保留了SGML的可扩展功能,这使得XML从根本上有差异于HTML。并且XML种还包括可扩展格式措辞XSL(Extensible Style Language)和可扩展链接措辞XLL(Extensible Linking Language)使得XML的显示和解析更加方便快捷。② 易学易用XML对SGML进行了精简,它抛弃了SGML中不常用的部分,方便用户编写Web页面同时也给设计职员实现XML浏览器降落了困难。③ 开放的国际化标准XML是W3C正式批准的,它完备可用于Web和工具的开拓。XML具有标准的名域解释方法,支持文档工具模型标准、可扩展类型措辞标准、可扩展链接措辞标准和XML指针措辞标准。利用XML可以在不同的打算机系统间交流信息,而且还可以超过国界和超越不同文化疆界交流信息。④ 高效可扩充XML支持复用文档片断,利用者可以发明和利用自己的标签,也可以与他人共享,可延伸性大。在XML中,可定义一组无限量的标准,可以有效地进行XML文件的扩充。
24.oracle中除了数据库备份,还有什么方法备份?
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。
25.j2ee的常用设计模式
Factory(工厂模式),Builder(建造模式)fFactory Method(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式)
26.由aaa字符串得到1000个a写个程序
StringBuilder sBuilder = new StringBuilder();
for(int i=0;i<333;i++){
sBuilder.Append(\公众aaa\"大众);
}
sBuilder.Append(\"大众aaa\公众.subString(0,1));
27.servlet与cgi的差异
CGI运用开拓比较困难,由于它哀求程序员有处理参数通报的知识,这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI运用只能运行于这一环境中。每一个CGI运用存在于一个由客户端要求激活的进程中,并且在要求被做事后被卸载。这种模式将引起很高的内存、CPU开销,而且在同一进程中不能做事多个客户。
Servlet供应了Java运用程序的所有上风——可移植、稳健、易开拓。利用Servlet Tag技能,Servlet能够天生嵌于静态HTML页面中的动态内容
Servlet对CGI的最紧张上风在于一个Servlet被客户端发送的第一个要求激活,然后它将连续运行于后台,等待往后的要求。每个要求将天生一个新的线程,而不是一个完全的进程。多个客户能够在同一个进程中同时得到做事。一样平常来说,Servlet进程只是在Web Server卸载时被卸载
28.SOCKET中有几中连接办法,差异?
Sockets有两种紧张的操作办法:面向连接的和无连接的。无连接的操作利用数据报协议,无连接的操作是快速的和高效的,但是数据安全性不佳. 面向连接的操作利用TCP协议.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高
29.Socket如何获取本地ip地址?
public InetAddress getLocalAddress()
30.truncate与delete的差异?(delete from table和truncate table tablea的差异!
)
truncate是DDL語言.delete是DML語言 DDL語言是自動提交的.命令完造诣不可回滾.truncate的速率也比delete要快得多.
详细解释:
相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的构造(定义)
drop语句将删除表的构造被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,实行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部开释
truncate 语句缺省情形下见空间开释到 minextents个 extent,除非利用reuse storage; truncate会将高水线复位(回到最开始).
4.速率,一样平常来说: drop> truncate > delete
5.安全性:小心利用drop 和truncate,尤其没有备份的时候.否则哭都来不及
利用上,想删除部分数据行用delete,把稳带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
31.xml有哪些解析技能,及差异?
有DOM,SAX,STAX等
DOM:处理大型文件时其性能低落的非常厉害。这个问题是由DOM的树构造所造成的,这种构造占用的内存较多,而且DOM必须在解析文件之前把全体文档装入内存,适宜对XML的随机访问SAX:不现于DOM,SAX是事宜驱动型的XML解析办法。它顺序读取XML文件,不须要一次全部装载全体文件。当碰着像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事宜,用户通过在其回调事宜中写入处理代码来处理XML文件,适宜对XML的顺序访问
32.文件和目录(i/o)操作,怎么列出某目录下所有文件?某目录下所有子目录,怎么判断文件或目录是否存在?如何读写文件?
列出某目录下所有文件:调用listFile(),然后判断每个File工具是否是文件可以调用 isFile(),判断是否是文件夹可以调用isDirectory(),判断文件或目录是否存在:调用exists() 方法,读写文件利用FileReader和FileWriter两个类即可
33.怎么用java反射得到一个类的私有方法?
package test;
public class TestClass {
private String testMethod(String value){
return \"大众test:\"大众+value;
}
}
try {
//得到test.TestClass类
Class c=Class.forName(\"大众test.TestClass\"大众);
//得到testMethod的方法
Method m=c.getDeclaredMethod(\公众testMethod\"大众, new Class[]{String.class});
//打印完全的方法表示字符串
System.out.println(m.toGenericString());
//调用这个方法
Object obj=m.invoke(c.newInstance(), new Object[]{\"大众method\公众});
//打印返回结果
System.out.println(obj);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
34.写一个单例模式?描述工厂模式和单例优缺陷 举例在什么情形下用
class Single{}
public class SingleFactory {
private SingleFactory(){};
private static Single single;
public static Single getSingle(){
if(single==null){
single=new Single();
}
return single;
}
}
大略工厂模式能够根据外界给定的信息,决定究竟该当创建哪个详细类的工具。通过它,外界可以从直接创建详细产品对 象的尴尬局势中摆脱出来。
外界与详细类隔离开来,偶合性低。
明确区分了各自的职责和权力,有利于全体软件体系构造的优化。
缺陷:工厂类集中了所有实例的创建逻辑,随意马虎违反GRASPR的高内聚的任务分配原则 虽然大略工厂模式能够适应一定的变革,但是它所能办理的问题是远远有限的。它所能创建的类只能是事先教考虑到的,如果须要添加新的类,则就须要改变工厂类了。(这个问题在工厂方法模式将得到很好的办理)
运用情景 工厂类卖力创建的工具比较少 客户只知道传入了工厂类的参数,对付始何创建工具(逻辑)不关心
35.JVM加载class文件事理?
所谓装载便是探求一个类或是一个接口的二进制形式并用该二进制形式来布局代表这个类或是这个接口的class工具的过程.
在Java中,类装载器把一个类装入Java虚拟机中,要经由三个步骤来完成:装载、链接和初始化,个中链接又可以分成校验、准备、解析
装载:查找和导入类或接口的二进制数据;
链接:实行下面的校验、准备和解析步骤,个中解析步骤是可以选择的;
校验:检讨导入类或接口的二进制数据的精确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量的初始化Java代码和静态Java代码块
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个主要的Java运行时系统组件。它卖力在运行时查找和装入类文件的类
一个Java运用程序利用两种类型的类装载器:根装载器(bootstrap)和用户定义的装载器(user-defined)。
根装载器以某种默认的办法将类装入,包括那些Java API的类。在运行期间一个Java程序能安装用户自己定义的类装载器。根装载器是虚拟机固有的一部分,而用户定义的类装载器则不是,它是用Java措辞写的,被编译成class文件之后然后再被装入到虚拟机,并像其它的任何工具一样可以被实例化。 Java类装载器的体系构造如下所示:
Bootstrap(根装载器)
|
Extension (扩展装载器)
|
System
|
UserDefine1
/ \
UserDefine2 UserDefine3
|
UserDefine4
Java的类装载模型是一种代理(delegation)模型。当JVM 哀求类装载器CL(ClassLoader)装载一个类时,CL首先将这个类装载要求转发给他的父装载器。只有当父装载器没有装载并无法装载这个类时,CL才得到装载这个类的机会。这样, 所有类装载器的代理关系构成了一种树状的关系。树的根是类的根装载器(bootstrap ClassLoader) , 在JVM 中它以\"大众null\公众表示。除根装载器以外的类装载器有且仅有一个父装载器。在创建一个装载器时, 如果没有显式地给出父装载器, 那么JVM将默认系统装载器为其父装载器
下面针对各种类装载器分别进行详细的解释:
根(Bootstrap) 装载器:该装载器没有父装载器,它是JVM实现的一部分,从sun.boot.class.path装载运行时库的核心代码。
扩展(Extension) 装载器:继续的父装载器为根装载器,不像根装载器可能与运行时的操作系统有关,这个类装载器是用纯Java代码实现的,它从java.ext.dirs (扩展目录)中装载代码。
系统(System or Application) 装载器:装载器为扩展装载器,我们都知道在安装JDK的时候要设置环境变量(CLASSPATH ),这个类装载器便是从java.class.path(CLASSPATH 环境变量)中装载代码的,它也是用纯Java代码实现的,同时还是用户自定义类装载器的缺省父装载器。
小运用程序(Applet) 装载器: 装载器为系统装载器,它从用户指定的网络上的特定目录装载小运用程序代码。
36.Tomcat的class加载的优先顺序一览
1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文
3.$CATALINA_HOME/common/classes下的class
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却涌现找不到JDBC Driver的情形。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自详细的webapp /WEB-INF/classes下的class文件。
12.各自详细的webapp /WEB-INF/lib下的jar文件。
37.CS与BS联系差异
1)java适宜开拓bs构造,cs不是它的强项 C/S 做事器常日采取高性能的PC、事情站或小型机,并采取大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端须要安装专用的客户端软件。B/S 客户机上只要安装一个浏览器(Browser),如Internet Explorer,做事器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种构造下,用户界面完备通过WWW浏览器实现,一部分事务逻辑在前端实现,但是紧张事务逻辑在做事器端实现。浏览器通过Web Server 同数据库进行数据交互 1.硬件环境不同: C/S 一样平常建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门做事器供应连接和数据交流做事. B/S 建立在广域网之上的
2)对安全哀求不同 C/S 一样平常面向相对固定的用户群, 对信息安全的掌握能力很强. 一样平常高度机密的信息系统采取C/S 构造适宜. 可以通过B/S发布部分可公开信息. B/S 建立在广域网之上, 对安全的掌握能力相对弱, 可能面向不可知的用户
3)对程序架构不同 C/S 程序可以更加看重流程, 可以对权限多层次校验 B/S 对安全以及访问速率的多重的考虑, 建立在须要更加优化的根本之上
38.Error和 exception的差异与联系
error 表示规复不是不可能,但很困难的情形下的一种严重问题。比如说内存溢,网络故障等。不可能指望程序能处理的情形。
exception 表示一种设计或实现问题。也便是说,它表示如果程序运行正常,就不会发生的情形。程序可以捕获到这些非常,并进行处理。
39.在编写页面的会用到哪些技能?
美化页面须要用到CSS、页面交互利用JavaScript、动态页面须要用到JSP、XML等动态网页技能。
40.手写个程序在本页面中央弹出一个窗体,里面有学生的成绩,可以修正学生的成绩,并且可以关闭窗口,把每个要用的jsp页面显示出来。(用 JavaScript)
到显示页面的ShowStudentServlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(\"大众gbk\"大众);
response.setCharacterEncoding(\"大众gbk\"大众);
response.setContentType(\公众text/html\公众);
StudentDao dao=new StudentDao();
List<Student> sts=dao.stlist();
request.setAttribute(\"大众sts\"大众, sts);
request.getRequestDispatcher(\"大众/showStu.jsp\公众).forward(request, response);
}
学天生就的显示页面:showStu.jsp
<table>
<tr>
<th>学号</th>
<th>姓名</th>
<th>成绩</th>
<th>修正</th>
</tr>
<c:forEach items=\公众${sts}\"大众 var=\公众st\"大众>
<tr>
<td>${st.sid}</td>
<td>${st.name}</td>
<td>${st.score}</td>
<td><button onclick=\公众window.showModalDialog('UpdateStudentServlet?sid=${st.sid }&rand='+Math.random());location.reload();\公众>修正</button></td>
</tr>
</c:forEach>
</table>
要求修正的UpdateStudentServlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(\"大众gbk\"大众);
response.setCharacterEncoding(\"大众gbk\"大众);
response.setContentType(\"大众text/html\"大众);
String s=request.getParameter(\"大众sid\"大众);
if(s!=null&&!s.equals(\"大众\"大众)){
StudentDao dao=new StudentDao();
Integer sid=Integer.parseInt(s);
Student st=dao.findById(sid);
request.setAttribute(\"大众st\"大众, st);
request.getRequestDispatcher(\"大众/updateStu.jsp\"大众).forward(request, response);
}else{
throw new ServletException(\公众须要通报一个名为sid的int类型参数\公众);
}
}
可以修正成绩的页面:updateStu.jsp
<base href=\"大众<%=basePath%>\"大众 target=\"大众_self\"大众>
<form action=\"大众UpdateScoreServlet\"大众 method=\"大众post\"大众>
<table>
<tr>
<th>编号</th>
<td><input type=\"大众text\公众 name=\"大众sid\"大众 value=\"大众${st.sid }\"大众 readonly=\"大众readonly\"大众/></td>
</tr>
<tr>
<th>姓名</th>
<td><input type=\"大众text\公众 name=\"大众name\"大众 value=\"大众${st.name }\"大众 readonly=\公众readonly\"大众/></td>
</tr>
<tr>
<th>分数</th>
<td><input type=\公众text\公众 name=\公众score\"大众 value=\公众${st.score }\"大众/></td>
</tr>
<tr>
<td colspan=\公众2\"大众><input type=\公众submit\"大众 value=\"大众修正\"大众/></td>
</tr>
</table>
</form>
卖力修正成绩的UpdateScoreServlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(\"大众gbk\"大众);
response.setCharacterEncoding(\公众gbk\"大众);
response.setContentType(\"大众text/html\"大众);
String sid=request.getParameter(\公众sid\公众);
String score=request.getParameter(\公众score\"大众);
if(sid!=null&&!sid.equals(\"大众\公众)&&score!=null&&!\"大众\"大众.equals(score)){
StudentDao dao=new StudentDao();
Student st=new Student();
st.setSid(Integer.parseInt(sid));
st.setScore(Double.parseDouble(score));
dao.update(st);
response.getWriter().println(\公众<script type='text/javascript'>alert('修正成功');window.close();</script>\公众);
}
}
41.用main涵数输出一到一百的和。
#include <stdio.h>
int main() {
printf(\"大众sum:%d\n\公众, sum());
return 0;
}
int sum() {
int i;
int sum = 0;
for (i = 1; i <= 100; i++)
sum += i;
return sum;
}
42.查一下每门课程都大于80的学生姓名
学生表student 分数表grade
select s.name from student s where s.id not in(select g.studentid from grade g where g.marks<=80)
或者
select s.name from student s where not exists(select 1 from grade g where g.studentid=s.id and g.marks<=80)
43.LIUNIX如何查看CPU,IP,内存?
cat /proc/cpuinfo 查看CPU
cat /proc/meminfo 查看内存
/sbin/ifcong 查看 IP的
44.j2EE系统访问速率慢.从哪些方面可以优化
J2EE性能的优化包括很多方面的,要达到一个性能优秀的系统,除了关注代码之外,还该当根据系统实际的运行情形,从做事器软硬件环境、集群技能、系统构架设计、系统支配环境、数据构造、算法设计等方面综合考虑
45.J2EE访问速率慢,怎么样优化
1 利用缓冲标记 对付代码逻辑繁芜的页面,利用缓冲标记提高性能的效果比较明显;反之,效果可能略逊一筹。
2 始终通过会话Bean访问实体Bean一些时候,利用实体Bean会导致程序性能不佳。如果实体Bean的惟一用场便是提取和更新数据,改成在会话Bean之内利用JDBC访问数据库可以得到更好的性能
3 选择得当的引用机制
4 在支配描述器中设置只读属性 实体Bean的支配描述器许可把所有get方法设置成“只读”。当某个事务单元的事情只包含实行读取操作的方法时,设置只读属性有利于提高性能,由于容器不必再实行存储操作
5 缓冲对EJB Home的访问
46.haShtable的事理
事理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值阐明为该节点的存储地址
47.struts中的prepare怎么用?
prepare是在validate拦截器之前实行
<s:checkboxlist list=\"大众users\公众 listKey=\"大众id\"大众 listValue=\公众name\"大众 name=\"大众userid\"大众></s:checkboxlist>
在利用struts2 checkboxlist,select绑定list时,有时候会涌现 以下非常
The requested list key 'users' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]这样的缺点。是由于list的值为空
办理办法是把初始化list的事情放到prepare拦截器中
public class RoleAction extends ActionSupport implements Preparable{
@Override
public void prepare() throws Exception {
//初始化list
} }
48. C#题目conetextmenu控件如何利用.. listview
ContextMenu 组件供应与选定工具干系的常用命令的菜单。可以通过向 MenuItems 凑集中添加 MenuItem 工具来向快捷菜单中添加项。可以从快捷菜单中永久地移除项;但是在运行时隐蔽或禁用项可能更为妥当。 ListView的ContextMenu属性设置为ContextMenu工具
49.写一条SQL语句,查询姓张学生中均匀成绩大于75的学生信息
select from student where name in (select name from student
where name like '张%' group by name having avg(score) > 75)
50.从以下方面比较strut1和strut2:线程模式、依赖、可测性、表达式措辞、捕获输入、绑钉值到页面、类型转换
线程模式: Struts1 Action是单例模式并且必须是线程安全的,由于仅有Action的一个实例来处理所有的要求。单例策略限定了Struts1 Action能作的事,并且要在开拓时特殊小心。Action资源必须是线程安全的或同步的。
• Struts2 Action工具为每一个要求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个要求产生许多可丢弃的工具,并且不会导致性能和垃圾回收问题)
Servlet 依赖:
• Struts1 Action 依赖于Servlet API ,由于当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被通报给execute方法。
• Struts 2 Action不依赖于容器,许可Action分开容器单独被测试。如果须要,Struts2 Action仍旧可以访问初始的request和response。但是,其他的元素减少或者肃清了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
可测性:
• 测试Struts1 Action的一个紧张问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--供应了一套Struts1的仿照工具(来进行测试)。
• Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更随意马虎。
捕获输入:
• Struts1 利用ActionForm工具捕获输入。所有的ActionForm必须继续一个基类。由于其他JavaBean不能用作ActionForm,开拓者经 常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开拓者可能是在重新描述(创建)已经存 在的JavaBean(仍旧会导致有冗余的javabean)。
• Struts 2直策应用Action属性作为输入属性,肃清了对第二个输入工具的需求。输入属性可能是有自己(子)属性的rich工具类型。Action属性能够通过 web页面上的taglibs访问。Struts2也支持ActionForm模式。rich工具类型,包括业务工具,能够用作输入/输出工具。这种 ModelDriven 特性简化了taglib对POJO输入工具的引用。
表达式措辞:
• Struts1 整合了JSTL,因此利用JSTL EL。这种EL有基本工具图遍历,但是对凑集和索引属性的支持很弱。
• Struts2可以利用JSTL,但是也支持一个更强大和灵巧的表达式措辞--\"大众Object Graph Notation Language\"大众 (OGNL).
绑定值到页面(view):
• Struts 1利用标准JSP机制把工具绑定到页面中来访问。
• Struts 2 利用 \"大众ValueStack\公众技能,使taglib能够访问值而不须要把你的页面(view)和工具绑定起来。ValueStack策略许可通过一系列名称相同但类型不同的属性重用页面(view)。
类型转换:
• Struts 1 ActionForm 属性常日都是String类型。Struts1利用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• Struts2 利用OGNL进行类型转换。供应基本和常用工具的转换器。
51.struts的事情事理可分为如下8步。
1.读取配置(初始化ModuleConfig工具)
Struts框架总掌握器(ActionServlet)是一个Servlet,在web.xml中被配置成一个自动启动的Servlet。读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig工具。
2.用户要求
用户提交表单或调用URL向WEB运用程序做事器提交一个要求,要求的数据用HTTP协议上传给WEB做事器。
3.添补FormBean
(.do要求)从ActionConfig中找出对该当要求的Action子类,如有对应的Action且这个Action又一个相应的ActionForm,ActionForm被实例化并用HTTP要求的数据添补其属性,并保存在ServletContext中,这样他们就可以被其它Action工具或JSP调用。如果没有对应的Action,掌握器则直接转发给JSP或静态页面。
4.派发要求
掌握器根据配置信息ActionConfig将要求派发到详细的Action,相应的FormBean一并传给这个Action的execute()方法。
5.处理业务
Action一样平常只包含一个execute方法,它卖力实行相应的业务逻辑。实行完毕后返回一个ActionFoward工具,掌握器通过该ActionFoward工具来进行转发事情。
6.返回相应
Action根据业务处理的不同结果返回一个相应工具给总掌握器,该目标相应对相对应一个详细的JSP页面或另一个Action。
7.查找相应
总掌握器根据业务功能Action返回的目标相应工具找到对应的资源工具,常日是一个详细的JSP页面。
8.响运用户
JSP将结果展现给用户。