面试题
1.怎么对数据库进行优化?
1. 如果对某表的查询频率比较高,则建立索引,但是索引不可以建得太多。
2. 使用存储过程(存储过程是:一组为了完成特定功能的SQL语句集,第一次编译以后,第二次调用就不需要编译了),这样可以大大提高效率。
3. 建立好索引以后还需要设计应用程序的结构和算法:需要注意的点:
i. 避免使用不兼容的数据类型,数据类型不相同时应在程序中完成转换,而不是在SQL语句运行时才转换。
ii. 避免对搜索参数使用其他数学操作符
iii. 避免使用!=或<>等这样的操作符,这样会使系统无法使用索引,导致在执行过程中只能直接搜索变种的数据。
iv. 在应用程序中,在保证实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数;能够分开操作尽量分开操作,提高每次的响应速度。
2.以下两个情况将导致Servlet的init()方法被调用:
当服务器自动重新加载Servlet时;
当Servlet投入服务后加载和实例化时;
3.JSP有哪些内置对象?说说其作用。
request 表示 HttpServletRequest对象,它包含了有关浏览器的请求信息,并提供了几个用于获取cookie,header和session数据的方法。
response 表示 HttpServletResponse对象,提供了几个用于设置送回浏览器的响应的方法(比如:cookie,header等信息);
out 对象是javax.jsp.JspWriter 的一个实例,提供了几个方法,使你能用于向浏览器回送输出结果。
pageContext 表示一个 javax.servlet.jsp.PageContext对象。网页的属性,它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session 表示一个请求的 javax.servlet.http.HttpSession 对象。Session可以存储用户的状态信息。
application 表示一个javax.servlet.ServletContext 对象。这有助于查找有关servlet引擎和servlet环境信息。servlet正在执行的内容。
config 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取servlet实例的初始化参数。
page JSP 网页本身 表示从该页面产生的一个servlet实例。
exception 针对错误页面未捕捉的意外。
4. 字符串如何去掉前后空格,中间空格?
Stirng中最常用的方法:trim()
1.去除前后空格:
String s = " bhjl ";
System.out.println("--"+s.trim()+"--");
输出结果:--bhjl--
2.去除中间空格:
String s = "崩坏 酱";
char[] cs = s.toCharArray();//将s这个字符串转成char类型的数组
StringBuffer news = new StringBuffer();//创建一个strigbuffer对象 用于保存处理后的字符串
for (char c : cs) {//循环遍历cs这个数组中的每一个元素
if (c!=' '){//如果这个元素不等于一个空格
news.append(c);//就把这个元素添加到刚才创建的对象中
}
}
System.out.println(news.toString());//将这个对象转成String类型后输出打印
//也可以用普通for遍历,看个人喜好
// for (int i = 0; i < cs.length; i++) {
// char c = cs[i];
// if (c!=' '){//如果这个元素不等于一个空格
// news.append(c);//就把这个元素添加到刚才创建的对象中
// }
// System.out.println(news.toString());
// }