zoukankan      html  css  js  c++  java
  • java面试题

    一、Servlet技术

       1、什么是servlet

         Sun公司定制的一种扩展web服务器端的组件规范(服务器端的Java应用程序)。具有独立于平台和协议的特性,可以生成动态的web页面,担当客户端请求与服务器端响应的中间层。

     2、与CGI区别

      Servlet与CGI的区别在于服务器的进程中,servlet是通过多线程的方式运行service方法,一个servlet实例可以服务于多个请求,一般不会被销毁。CGI对每个请求都产生新的进程,服务完成后就销毁,所以CGI效率低于servlet。

     3、servlet什么时候被实例化

      如果没设置loadOnStartup,则在第一次被调用时实例化(servlet被实例化后,tomcat会调用init()方法初始化这个对象)

      设置loadOnStartup分三种情况:

      (1)loadOnStartup < 0

        负数的情况下,web容器启动的时候不会做实例化,第一次被调用的时候被实例化

      (2)loadOnStartup > 0

      web容器启动的时候做实例化,顺序是有小到大,正整数越小的先被实例化

      (3)loadOnStartup = 0 

      web容器启动的时候做实例化,相当于最大正整数,web启动时,最后被初始化

      4、servlet声明周期

        加载servlet:tomcat第一次访问servlet的时候,tomcat会负责创建servlet实例;

        初始化:servlet实例化后,tomcat会调用init()方法初始化该实例化对象;

        处理请求:当浏览器访问servlet的时候,servlet会调用service()方法处理请求:

        销毁:当tomcat停止或servlet从tomcat删除的时候,会自动调用destroy()方法,让该实例释放占用的资源。一个servlet若长时间不被使用,也会被tomcat自动删除;

        卸载:servlet调用完destroy()方法后,等待垃圾回收。若有需要再次使用该servlet,会重新调用init()方法进行初始化。

      5、相关博文链接 

    https://www.cnblogs.com/disneyland/p/4692339.html  servlet什么时候被实例化

    https://blog.csdn.net/u012129558/article/details/52329543 

    https://blog.csdn.net/heyanfeng22/article/details/45898661 servlet的单例理解

    二、字符串

      1、String、StringBuffer和StringBuilder的区别

        相关博文链接:

        http://www.cnblogs.com/Wilange/p/7570633.html

        http://www.cnblogs.com/Wilange/p/7572125.html

      2、String str = new String("abc")和String str2 = "abc"这两句代码执行后分别会创建几个对象?

        相关博文链接:

        https://blog.csdn.net/zmx1026/article/details/46054903

     三、java的集合框架

      1.相关博客链接

        https://www.cnblogs.com/leskang/p/6029780.html LinkedList的底层数据结构

        https://blog.csdn.net/zhanglh046/article/details/52882994  HashMap的底层数据结构

        https://blog.csdn.net/dou_yuan/article/details/77675872  HashMap的底层数据结构

        https://blog.csdn.net/anxpp/article/details/51234835 HashMap的底层数据结构

        https://www.cnblogs.com/KingIceMou/p/6976574.html(HashMap扩容)

        https://blog.csdn.net/aichuanwendang/article/details/53317351(HashMap扩容JDK1.8相比JDK1.7改进)

      

      

  • 相关阅读:
    matlab练习程序(dubins曲线)
    matlab练习程序(扩展曲线边界)
    软件测试
    python3 二叉树添加以及删除节点
    python3 二叉树实现
    python3 顺时针打印矩阵元素
    python3 反转字符串的两种方式
    python3 字符串单词反转
    python3 链表
    python3 二分查找法实现
  • 原文地址:https://www.cnblogs.com/lmmblogs/p/9153019.html
Copyright © 2011-2022 走看看