JSP相关

1.创建对象的几种方式?
     1、使用 new 关键字
     2、使用 Class 类的 newInstance 方法:这个 newInstance 方法调用无参的构造器创建对象
     3、使用 Constructor 类的 newInstance 方法:这个 newInstance 方法调用有参数的和私有的构造函数
     (Class 的 newInstance 方法内部调用 Constructor 的 newInstance 方法。这也是众多框架 Spring、Hibernate、Struts 等使用后者的原因)
     4、使用 Clone 的方法:调用一个对象的 clone 方法,JVM 就会创建一个新的对象,将前面的对象的内容全部拷贝进去,
          用 clone 方法创建对象并不会调用任何构造函数。需先实现 Cloneable 接口并实现其定义的 clone 方法。这也是原型模式的应用
     5、使用反序列化:当序列化和反序列化一个对象,JVM 会创建一个单独的对象。
          在反序列化时,JVM 创建对象并不会调用任何构造函数。需实现 Serializable 接口



2.Servlet,Listener,Filter 的生命周期?分别在什么时候创建、使用和销毁?
     启动的顺序:context-param -> Listener -> Filter -> Servlet
     生命周期:
     Listener:从程序启动到程序停止运行
          ServletRequestListener:用于监控 servlet 上下文 request
                    每次访问一个 Request 资源前,都会执行 requestInitialized() 方法,
                    访问完毕,都会执行 requestDestroyed() 方法
          HttpSessionListener:用来监控 session 的创建销毁
                    每次调用 request.getSession(),都会执行 sessionCreated() 方法,
                    执行 session.invalidate() 方法,都会执行 sessionDestroyed() 方法
          ServletRequestAttributeListener:用于监控 request 中的 attribute 的操作
                    每次调用 request.setAttribute(),都会执行 attributeAdded() 方法,
                    如果 set 的 key 在 request 里面存在,就会执行 attributeReplacerd() 方法,
                    调用 request.removeAttribute() 方法,都会执行 attributeRemoved() 方法
     Filter:程序启动调用 Filter 的 init() 方法(只调用一次),程序停止调用 Filter 的 destroy() 方法(只调用一次)
          doFilter() 方法每次的访问请求如果符合拦截条件都会调用
          (程序第一次运行,会在 Servlet 调用 init() 方法以后调用,不管第几次,都在调用 doGet(),doPost() 方法之前)
     Servlet:程序第一次访问,会调用 Servlet 的 init() 方法初始化(只执行一次)
          每次程序执行都会根据请求调用 doGet() 或者 doPost() 方法,程序停止调用 destory() 方法
     
     1、在 Tomcat(Servlet容器)启动时,Listener 和 ServletContext 最先初始化
     2、Filter 在 Tomcat(Servlet容器)启动时初始化
     3、如果某个 Servle t配置了 <load-on-startup >1 </load-on-startup >,该 Servlet 也是在 Tomcat(Servlet容器)启动时初始化
     4、每次请求, Request 都会被初始化,响应请求后,请求被销毁
     5、Filter 在请求执行前后,都能做一些处理
     6、如果 Servlet 没有配置<load-on-startup >1 </load-on-startup >,该 Servlet 不会在 Tomcat 启动时初始化,而是在请求到来时初始化
     7、Servlet 初始化后,将不会随着请求的结束而注销
     8、关闭 Tomcat 时,Servlet、Filter、Listener 依次被注销



3.HashMap 和 HashTable 的区别?

HashMap
线程不安全
允许有 null 的键和值
效率高
方法不是 synchronized 的
有 containsValue 和 containsKey 方法
Java1.2 引进的 Map interface 的一个实现
HashTable
线程安全
不允许有 null 的键和值
效率低
方法是 synchronized 的
有 contains 方法方法
继承于 Dictionary 类




4.常用优化 SQL 语句执行效率的方法?
     1、尽量选择较小的列 
     2、将 where 中用的比较频繁的字段建立索引
     3、select 子句中避免使用‘*’
     4、避免在索引列上使用计算、not in 和 <> 等操作
     5、当只需要一行数据的时候使用 limit 1
     6、保证单表数据不超过200W,适时分割表
     7、不要在 where 中包含子查询,在过滤条件中,可以过滤掉最大数量记录的条件必须放在 where 子句的末尾,在 where 中尽量不要使用 or
     8、用 exists 替代 in,用 not exists 替代 not in,用 in 来替代 or
     9、避免在索引列上使用 is null 和 is not null,避免改变索引列的类型
     10、避免带有 like 参数的通配符
     针对查询较慢的语句,可以使用 explain 来分析该语句具体的执行情况


5.linux常用命令
     ls            显示文件或目录
     -l                 列出文件详细信息l(list)
     -a                列出当前目录下所有文件及目录,包括隐藏的a(all)    
     mkdir           创建目录
     -p                创建目录,若无父目录,则创建p(parent)
     cd                切换目录
     touch           创建空文件
     echo            创建带有内容的文件。
     cat               查看文件内容
     cp                拷贝
     mv               移动或重命名
     rm                删除文件
     -r                 递归删除,可删除子目录及文件
     -f                 强制删除
     find              在文件系统中搜索某文件
     wc                统计文本中行数、字数、字符数
     grep             在文本文件中查找某个字符串
     rmdir            删除空目录
     tree              树形结构显示目录,需要安装tree包
     pwd              显示当前目录
     ln                  创建链接文件
     more、less    分页显示文本文件内容
     head、tail     显示文件头、尾内容
     ctrl+alt+F1   命令行全屏模式



规则引擎的设计思路?
使用到 jQuery 的哪些模块?具体说明。
集群部署环境下怎样保持数据的一致性?
服务器经常 down,怎样排查原因?


































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值