总结逻辑、数据库SQL笔试题

宇宙最强皮皮虾 2013-08-19 04:00:54

总结逻辑、数据库SQL面试题


Struts2工作机制?
答:1.发送一个Action请求
2.请求经过一系列的过滤器
3.由ActionMapper来决定这个请求是否需要调用某个Action
4.把请求处理交给ActionProxy
5.询问配置文件,找到Action类
6.执行Action,然后根据返回字符串决定调用相应的页面

DWR?
答:DWR是一个Ajax框架,运行开发人员在客户端通过JavaScript代码调用服务器端的Java方法。

JavaScript中的isNaN?
答:判断一个值是不是不是一个数。

Object中的方法?
答:equest
getClass
notity
toString
finalize
hashCode
wait

串行化的注意事项以及如何实现串行化?
答:注意事项:
1.只能保存对象的非静态成员变量
2.对于某些类型的对象,其状态是瞬时的
实现串行化:
在java.io包中,接口Serializeble用来作为实现对象串行化的工具

线程的基本概念?线程的状态?
答:线程是指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少有一个线程,也就是程序本身。
线程的状态:运行,就绪,挂起,结束。

JDBC操作数据库基本步骤?
答:1.加载驱动
2.创建连接
3.获取语句对象
4.执行SQL语句
5.如果是查询,使用结果集
6.关闭连接
7.处理异常

Java基本权限?
答:public 全局
private 本类
peotected 继承
default 同包

如何实现servlet的单线程模式?
答:<%@ page isThreadSafe="false" %>

jsp四中会话跟踪技术?
答:page:当前页面有效
request:对页面的一次请求有效
session:对当前页面和其子窗口有效
application:对所有页面有效

spring aop原理是怎么样的?
答:把java类放在spring容器里作为bean,需要的时候直接拿出来使用即可,你不必关注bean是如何产生和销毁的,面向切面编程可以想象成在一个合适的时间点做一些操作。

spring mvc和struts2有什么区别?
答:1.spring mvc入口servlet,struts2是filter
2.spring mvc基于方法的设计,struts2基于类
3.spring mvc是AOP方法,struts2是OOP
4.struts2在接收参数的时候可以用属性来接收

spring aop的实现原理?
答:spring aop可以说是对oop的补充和完善,它的实现就是拦截,一系列的过滤器。

存储过程的编写?

CREATE OR PEPLACE PROCEDURE 存储过程名 IS
BEGIN
NULL;
END;


如何取得年月日,小时分秒?

Calender c=Calender.getInstance();
System.out.println("年:"+c.get(Calender.YEAR));
System.out.println("月:"+c.get(Calender.MONTH)+1);
System.out.println("日:"+c.get(Calender.DAY_OF_MONTH));
System.out.println("24小时:"+c.get(Calender.HOUR_OF_DAY));
System.out.println("12小时:"+c.get(Calender.HOUR));
System.out.println("分:"+c.get(Calender.MNUTE));
System.out.println("秒:"+c.get(Calender.SECOND));


查询一个省有几个县(a=省,b=市,c=县,a和b是一对多,b和c是一对多)?
答:首先创建一个包含三个表的视图:

CREATE VIEW abc AS
SELECT a.aname,c.cname FROM a,b,c WHERE b.aid=a.aid AND c.bid=b.bid

然后查询视图:

SELECT aname,COUNT(*) FROM abc GROUP BY aname


用SQl语句查询出员工工资表(WorersSalary)所有信息,工资最高的前三条信息按降序排在最前面,其余按原序?

SELECT s.* FROM (
(SELECT s1.* FROM 表名 AS s1 ORDER BY s1.列名 DESC LIMIT 3)
UNION
(SELECT s2.* FROM 表名 AS s2)
) AS s


解析xml节点?

public static void main(String[] args) throws Exception{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("pet.xml"); //解析根目录下的pet.xml文件
NodeList dogList=doc.getElementByTagName("dog"); //dog根节点
for(int i=0;i<dogList.getLength();i++){
Node dog=dogList.item(i);
Element ele=(Element)dog;
String id=ele.getAttribute("id"); //得到dog节点的id属性
System.out.println(id);
for(Node node=dog.getFirstChild();node!=null;node=node.getNextSibling()){ //循环dog节点中的子节点
if(node.getNodeType()=node.ELEMENT_NODE){
String name=node.getNodeName(); //得到节点名称
String value=node.getFirstChild().getNodeValue(); //得到值
System.out.println(name+"——"+value);
}
}
}
}


手写JDBC连接(Oracle数据库)?

public class JDBC{
private static String driver="Oracle.jdbc.Driver.OracleDriver";
private static String url="jdbc:Oracle:this:@127.0.0.1:1532:数据库名称";
private static String user="账号";
private static String password="密码";

public Connection getConn(){
Connection conn=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
}catch(Exception e){
e.printStackTrace();
}
}
}


写出6种常用的设计模式?
答:单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点。
抽象工厂:提供一个创建对象的接口,而无需指定它的具体类。
策略模式:定义一系列算法,并把它们封装起来,本模式可以使算法独立于使用它们的客户。
代理模式:为其他对象提供一种代理以控制这个对象的访问。
迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象内部表示。
观察者模式:定义对象间一对多依赖关系,当一个对象状态发生改变时,所有依赖它的对象都将得到通知。

100元买100份材料.A:5元 B:3元 C:0.5元?

public static void main(String[] args){
int iCount=100/5;
int jCount=100/3;
for(int i=1;i<=iCount;i++){
for(int j=i;j<=jCount;j++){
int k=100-i-j;
if(i*5+j*3+k*0.5==100){
System.out.println(i+"-------"+j+"-------"+k);
}
}
}
}


冒泡排序?

public void sort(int[] data){
for(int i=0;i<data.length:i++){
for(int j=data.length-1;j>i;j--){
if(data[j]<data[j-1]){
int temp=data[j];
data[j]=data[j-1];
data[j-1]=temp;
}
}
}
}


插入排序?

public void sort(int[] data){
int temp;
for(int i=1;i<data.length;i++){
for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){
int temp=data[j];
data[j]=data[j-1];
data[j-1]=temp;
}
}
}


选择排序?

public void sort(int[] data){
int temp;
for(int i=0;i<data.length;i++){
int lowIndex=i;
for(int j=data.length-1;j>i;j--){
if(data[j]<data[lowIndex]){
lowIndex=j;
}
}
int temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
}

...全文
199 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
x123456789a 2013-08-19
  • 打赏
  • 举报
回复
学习了

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧