1. java基础面试题:自动装箱
Integer i1 = 127; //Integer.valueOf(127);
Integer i2 = 127; //Integer.valueOf(127);
Integer i3 = 128; //Integer.valueOf(128);
Integer i4 = 128; //Integer.valueOf(128);
System.out.println(i1 == i2); //true
System.out.println(i2 == i3); //false
System.out.println(i3 == i4); // false
tips:
/*
==比较的是内存地址
如果值在-128-127之间,自动装箱时直接从数组中取出已经创建好的Integer对象,同一个数字取出的Integer对象是一样的,如果值不在-128-127之间,自动装箱时直接创建一个新的Integer对象放回。
缓存思想:java认为-128-127之间的这些Integer可能使用的比较多,创建好保存在数组中,到时候可以多次去数组中取出来用。
*/
2. MySQL面试题:
#MySQL约束
1.如果一个字段设置了非空与唯一约束,该字段与主键的区别?
-
一张表只有一个主键
-
一张表可以多个字段添加非空与唯一约束
-
主键可以自动增长,自己添加的非空与唯一约束字段无法自动增长
2.怎么修改主键的自动增长开始值?
alter table st6 auto_increment=1000;
3.delete 和 truncate 的区别?
delete from st6;
truncate st6;
1.首先在写法上的区别,delete 删除数据需要加 from 关键字,而 truncate 不需要;
2.delete 删除数据就仅仅只是删除数据而已,再次添加数据时,主键的值还是在原来的基础上增长,
相当于你是房东,把租客赶走,留下房子;
truncate 删除整个表,在创建一张结构一样的表,相当于你是房东,把房子拆了,重新建一个一
样的房子。
3. jsp面试题
- 如果使用HTML注释JSP脚本元素会怎么样?
如:
<!-- <% out.print(3*5); %> -->
答:java代码会正常执行,但是在页面上看不到
4. 过滤器面试题
根据过滤路径判断指定的过滤器是否起作用:
浏览器的访问地址,day是项目的访问地址 | 过滤器的配置 | 是否起作用 |
---|---|---|
http://localhost:8080/day/aaa | /* | 可以 |
http://localhost:8080/day/aaa | /aaa | 可以 |
http://localhost:8080/day/aaa.do | *.do | 可以 |
http://localhost:8080/day/aaa/bbb | /aaa/* | 可以 |
http://localhost:8080/day/bbb.do | /*.do | 不可以 |
http://localhost:8080/day/aaa/bbb.action | /aaa/*.action | 不可以 |
不可以的原因:/开头和扩展名结尾不能同时出现。