• 面试题


    1.JDBC中Statement和PrepareStatement?

    PrepareStatement效率更好些,更加安全。
    PrepareStatement效率主要体现在,如果SQL不改变,注意是采用问号占位符方式,只编译一次,这样再次使用该SQL将会省去编译的时间,提高整体执行效率。为什么SQL要编译,因为SQL也是一门语言和Java一样使用时需要编译。
    PrepareStatement安全性主要体现在,采用问号方式,可以防止SQL注入。
     
    2.简单谈一下Java类装载器
    Java字节码运行需要类装载器,将其装载到内存中,Java的类装载器主要有启动类装载器,扩展类装载器及应用类装载器,使用双亲委派的方式装载,这样更具安全性。
     
    3.转发和重定向的区别?
     转发:
    共享request,URL地址栏不改变‘
    重定向:
    不共享request,URL地址栏改变 
     
    4.BS和CS架构的优缺点?
     BS架构一般称为瘦客户端
    1、优点:
    BS架构的项目分发比较方便,当页面发生改变后,客户端不用安装
    2、缺点
    客户端页面响应速度慢,页面的灵敏度差

    CS架构一般称为胖客户端
    1、优点
    客户端页面响应速度快,页面灵敏度好
    2、缺点
    CS架构的项目分发不方便,当页面发生改变,客户端需要重新安装

    一个项目应该根据具体情况来选择是采用BS还是CS,复杂的项目通常都是BS和CS相结合使用的。要求灵敏度高的项目最好采用CS,对页面没有太高的灵敏度的可以考虑BS。 
     
    5.String,StringBuffer和StringBuilder区别?
    String是不可变对象,每次字符串的相加和相减都会生成新的对象,如果大量的进行字符串的相加和相减不建议使用String,这样会占用JVM的内存,另外String被final修饰不可以继承,String实现了序列化接口和比较接口。
    StringBuffer是可变长度的,所有的方法都是同步的,是线程安全的,性能不好。
    StringBuilder是可变长度的,不是线程安全的,在不需要线程安全的情况下,优先考虑使用,性能高于StringBuffer。

    String、StringBuffer和StringBuilder都是char数组实现的,StringBuffer和StringBuilder默认初始化char数组为16个长度,当16个元素用完了,每次按照(原长度+1)*2进行扩容,主要采用System.arrayCopy()完成。
     
    6.S2SH的集成原理
     他们主要和Spring集成,Struts2和Spring集成主要将Struts2的Action交给Spring创建,这样可以使用Spring的DI,使用DI可以解耦和,Hibernate和Spring的集成主要采用Spring提供的声明式事务,一般采用AOP完成,这样可以简化事务的控制。
     
    7.简要说一下Struts2的执行流程
    执行流程如下:
     一个请求发送过来,由StrutsPrepareAndExecuteFilter接收,进行判断是否是Action,如果不是Action执行chain.doFilter()输出页面,,如果是Action将会创建ActionInvocation,再创建ActionProxy,执行ActionProxy上的Prepare方法准备出Action和Interceptor,Action采用ObjectFactory创建好后放到ActioniInvocation的成员变量上,将默认的18个拦截器放到ActionInvocation的成员变量上,再执行ActionProxy上的exeucte方法,执行18个拦截器,执行完成后执行Action上的方法,Action上的方法执行完成后返回字符串,根据返回的字符串采用ObjectFactory创建Result对象,将创建好的Result对象放到ActionInvocation上,再调用Result对象上的execute方法转向视图,拦截器出栈,最后返回到浏览器。
     
    8.如何理解Transaction?
     Transaction是多个操作的逻辑单元,采用Transaction可以保证ACID特性。
    A(原子性)最基本的一个特性,要么全成功要么全失败;
    C(一致性)可以保证从一种状态到另一种状态的一致性;
    I(隔离性)分为四个,未提交读,提交读,可重复读,序列化读;
    D(持续性)事务一旦提交,将不能回滚。
     
    9.为JavaScript中的String扩展一个trim()函数?
     可以采用prototype关键字并结合正则表达式完成。
    //伪代码如下
    String.prototype.trim=function() {
        return this.replace(/^s+/, "").replace(/s+$/, "");
     
    10.一个等号代表赋值;两个等号只对比值,不对比类型;三个等号对比值还对比类型。
     //伪代码如下
    var v1= "1"; //赋值
    var v2=1; //赋值
    alert(v1==v2);  //返回true
    alert(v1===v3); //返回false 
     
    11.用过哪些web services框架,特点和场合?
     Web Services主要是一项技术,它主要解决异构系统的通信,Java对Web Services主要提供了两种规范JAX-WS和JAX-RS,主要实现框架有CXF和Axis,他们都是apache的项目,CXF具有和Spring完美整体的特点,更容易的使用Spring的哲学思想,Axis的互通信方面比较好,更容易的兼容其它语言的访问。
     
    12.写一个单例模式,说一下优缺点和应用场景
     单例模式是GoF中的创建型设计模式,单例模式主要保证在内存中只创建一个对象。
    优点:
        1、节约内存开销
    缺点:
        1、失去了面向对象的重要特征继承和多态
        2、当拥有可修改成员变量时,小心线程安全问题 
    应用场景:
        1、可以使用单例读取配置文件,这样可以读取一次,减少io及程序的稳定性
        2、可以采用单例做一个缓存
    单例的三个必要条件
        1、私有的类的静态变量
        2、私有的构造器
        3、公共的静态的入口方法
    //伪代码如下
    public class Singleton {
        private static Singleton instance = new Singleton();
        private Singleton() {}
        public static  Singleton getInstance() {
            return instance;
        }
    }
     
    13.你对Facade模式的理解
     Facade属于GoF的结构型设计模式,翻译过来也叫门面模式或外观模式,Facade模式主要体现了,提供统一入口对系统进行访问,这样系统访问更加规整,不需要了解更细节的实现,如一个公司设置了一个前台职位一样,这个前台就是这个公司的Facade,当你去这个公司办事,这个公司的前台首先接待你(这样更加统一),如果联系其他部门由这个前台负责,这样就省去了你和其他部门直接进行联系的复杂过程。像Hibernate中的SessionFactory从统一入口的场景考虑就是一个Facade,还有Spring的BeanFactory从统一入口的场景考虑也是一个Facade。
     
    14.Servlet的生命周期
     Servlet称为服务器端的小程序,主要用来接收服务器创建好的request和response对象的,Servlet第一次访问的时候进行实例化,是单实例多线程的,在实例化后会调用init()方法,每次访问Servlet时会调用service方法,根据请求方式来调用doGet或doPost方法,当Servlet卸载后会调用destory方法。
     
    15.您用到了Apache的哪些开源项目?
    Tomcat,Struts,POI,commons fileupload,Ant,CXF,Axis,James,DBCP等等。
     
    16.
     
    奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗生命在于奋斗,也为自己带盐奋斗奋斗奋斗奋斗奋斗奋斗奋斗奋斗
  • 相关阅读:
    二叉搜索树
    自己课题的任务
    查找
    排序
    python快速教程
    塌下心来,慢慢积累~
    生命只有一次,你可以用它来做一点伟大的事情
    Python 编程规范-----转载
    Some regret....
    Discussing the scenery in the program of 863 with Doctor Zhang!
  • 原文地址:https://www.cnblogs.com/hardwork/p/4303554.html
Copyright © 2020-2023  润新知