自己的第一次面试总结

1.利用sql进行分页查询:

  mysql: sql="select * from tableName limit"+(pageNumber-1)*pageSize+","+pageSize;

  其中pageNumber指的是页数,pageSize指的是每页的大小,

  例如:取出表中第31-40的记录(以自增ID为主键)

     select * from tableName order by id limit 30,10;

2.jquery选择器:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947406.html

3.Spring的特点:

  ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并 且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

  ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦 合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不 是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

  ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的 业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们 并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

  ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是 一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生 成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

  ◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。

4.Spring中IOC的原理:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947615.html

         http://www.cnblogs.com/jianmang/articles/4947604.html

5.Spring中AOP的原理:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947638.html

6.简述对于MVC的理解:

  MVC的架构的Web程序被分割成若干逻辑部件,使得程序开发编程变的更加容易。它把对象按照功能的不同分割成3个部分,主要目的就是为了将各种对象的耦合度降到最低。被分割成的3个部分为:模型(Model),视图(View),控制器(Controller)

  • 模型(Model):代表了应用程序的数据和处理这些数据的规则。当模型发生变化时,它会通知视图,并为视图提供查询模型相关状态的能力。
  • 视图(View):用来组织模型的内容,它从模型中获取数据,然后将数据展现给客户,该角色往往又JSP承担。
  • 控制器(Controller):负责从客户端接受请求,并把这些请求转换为某种行为。这些行为往往又模型来实现,这些行为完成以后,再选择一个视图来展现给客户。   

  下面简单介绍一下最基础的开发模式(JSP-Servlet)来构建一个MVC架构模式,后来的那些框架都是在此基础上增加的,代替相应的组件实现MVC的设计模式的。

(JSP-Servlet)开发中,由Servlet来充当控制器的角色,它接受请求,根据请求信息的不同将它们分发给合适的JSP页面来作为用户 的响应,同时,Servlet还需要实例化一个JavaBean对象,JSP就可以通过使用JavaBean的相关标签 (如<jsp:getProterty>)来的到JavaBean的数据,结构如下图所示:

               

   采用模型2,可以将页面的显示,业务逻辑的处理和流程的控制很清晰的分离出来。JSP负责数据的显示,JavaBean负责业务逻辑的处 理,Servlet负责流程的控制。MVC模式使得Web应用程序很容易扩展和维护,因为各个部件的功能不同,可以由不同的人进行开发和维护。例如,前端 攻城狮专门负责JSP页面,充分发挥她们的美术和设计才能,后台攻城狮负责业务逻辑的实现。

7.Hibernate中hql可以写子查询吗?

8.strurs2的执行流程:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947662.html

9.基于注解的Spring配置:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947828.html

10.EL表达式:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947836.html

11.Request与Session的区别:

12.Session的生命周期:

13.线程安全:

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947847.html

14.死锁:

  一:什么是死锁?
    死锁是指在一组进程中的各个进程均占有不会释放的资源,
    但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。
    死锁产生有四个必要的条件:互斥条件,不可剥夺条件,部分分配,循环等待,
    这四个条件不是充分条件,即使这四个条件同时存在,系统也不一定发生死锁,
    但系统一但发生死锁,这四个条件一定是满足的。

  死锁产生的必要条件是:
    ① 互斥条件:系统中存在一个资源一次只能被一个进程所使用;
    ② 非抢占条件:系统中存在一个资源仅能被占有它的进程所释放,而不能被别的进程强行抢占。
    ③ 占有并等待条件:系统中存在一个进程已占有了分给它的资源,但仍然等待其他资源。
    ④ 循环等待条件:在系统中存在一个由若干进程形成的环形请求链,
     其中的每一个进程均占有若干种资源中的某一种,同时每个进程还要求(链上)下一个进程所占有的资源。

15.在Struts2中,怎么将后台获得的数据在jsp中呈现出来?

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947867.html

16.在Spring中获取到的实例是单实例还是多实例?

  spring生成对象默认是单例的。通过scope属性可以更改为多例。

  <bean id="user" class="modle.User" scope="prototype">
   </bean>

  Scope——值为singleton或prototype,用来指定这个Bean是否使用单实例。

  详情点击链接:http://www.cnblogs.com/jianmang/articles/4947872.html

17.创建Servlet需要配置哪些?

18.Servlet怎么创建,继承什么类,Servlet的作用,Servlet的生命周期?

19.Struts2是属于哪一层,怎么创建一个Action?

  1.  如果是在mvc中(视图 控制  模型 )    是属于  控制
  2.  如果是j2ee层次(表现层、业务层、数据持久层、数据层)  就是属于表现层的

  创建一个action,除了需要继承actionSupport之外,还需要在struts.xml中配置

20.SpringMVC和mybatils接触过吗?

20.编写同步安全的单例模式?

21.编程使一句英语句子的各个单词的首字母大写?

//方法一
public class Capitalized {
char[] cs = { 'T', 'o', 'd', 'a', 'y', ' ', 'i', 's', ' ', 's', 'u', 'n',
'n', 'y', '!' };

// 构造方法
public Capitalized() {
}

public void printCapitalized() {
int i;
for (i = 0; i <cs.length; i++) {
if (Character.isSpaceChar(cs[i])){
i = i + 1;
cs[i]=Character.toUpperCase(cs[i]);
}
}

for (i = 0; i< cs.length; i++) {
System.out.print(cs[i]);
}
}

public static void main(String[] args) {
new Capitalized().printCapitalized();
}

}

//方法二

public class Capitalized {

public static void main(String[] args) {
String s="today is sunny!";
String arr[]=s.trim().split("\\s+");
if(s.length()>0)
for (int i = 0; i < arr.length; i++) {
arr[i]=Character.toUpperCase(arr[i].charAt(0))+arr[i].substring(1);
System.out.print(arr[i]+" ");
}
}

}

22.批量插入
  insert into tableName values(),(),(),,,,,;
23.连接池的工作机制?

  

  

posted @ 2015-11-08 19:10  剑芒  阅读(321)  评论(0编辑  收藏  举报