面经综合总结
atomicity 原子性
consistency 一致性
isolation 隔离性
durability 持久性
二、drop,truncate,delete区别
1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate 不能删除行数据,要删就要把表清空。
3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存
1、递归过深引起java.lang.stackOverflowError异常
解决方法:避免使用很深递归,或者使用循环对递归方法进行替换;
2、抽象类和接口
接口:
没有构造方法
成员变量:只能是常量。默认修饰符:public static final
成员方法:jdk1.7 public abstract
jdk 1.8 可以default和static开头
接口是一种特殊的抽象方法,接口中的方法全部是抽象的(abstract可省略)
抽象类
abstract不允许修饰变量;
抽象类中的抽象方法(前面有abstract修饰)不能用private、static、synchronized、native访问符修饰;
原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;
static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法用static修饰没有意义;
synchronized关键字是为该方法加一个锁
3、String中方法
1、spilt()主要作用是对一个字符串分割成字符串数组;
2、trim()方法,把一个字符串的前后空格去掉
js trim方法 用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
3、replace方法:支持字符串和字符替换
replace(oldChar, newChar)
replaceAll
4、charAt()返回索引指定的字符
byte short int long 1;2;4;8
float 4 double 8
char 2字节
boolean 1字节
final,finally,finalize区别
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
finally:异常处理语句结构的一部分,表示总是执行。
finally和catch可以两个都存在也可以只存在一个,但是try不能单独存在
catch个数 0个或多个
finalize:当对象不再被程序所使用的时候,垃圾回收器将会将其回收
,无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以尽快回收,
垃圾回收器在回收某个对象的时候,首先会调用该对象的finalize()方法
sleep和wait方法
sleep是Thread类中的方法,不会马上进入运行状态;
wait是object类中的方法,一旦调用wait方法,必须使用notify和notifyall唤醒
释放锁:sleep不会释放锁资源,但wait会释放同步资源锁
使用范围:sleep可以在任何地方使用,但wait只能在synchronized的同步方法代码块中使用
异常处理:sleep需要捕获异常,而wait不需要捕获异常;
start()和run()方法区别
start启动线程,真正实现了多线程;
run()只是thread类的一个普通方法;
run()方法访问权限必须是public ,返回值是void
list,set,map三者区别
list和set都是单列集合,继承自collection接口;Map是双列集合,键值对的形式,独立接口
hashmap和hashtable区别
hashmap允许key和value为null
hashtable的key和value都不为null
hashmap初始值容量为16
hashmap中key不能重复,value可以重复
hashmap线程不安全,而hashtable线程安全
Hashtable是有序的,HashMap是无序的。
静态方法区的方法比线程的run方法先执行
list和set区别
1、list和set都是继承自collection接口
2、list特点:元素存放有序,可重复;
set特点:元素存放无序,元素不可重复,重复元素会被覆盖掉
list的实现类有Linkelsit,Arraylist,Vector。
vector的底层逻辑和arraylist一样都是动态数组,线程安全的;
linkedlist是基于双链表实现的,而arraylsit是动态数组实现的;因此linkedlist查询慢,增删快;arraylist查询快,增删慢;
set的实现类有hashset,treeset,linkedhashset,这三个类都是不可重复的,但只有hashset无序;
public:可以被所有其他类访问
protected:自身,子类及同一个包中类可以访问
default(friendly):同一包中的类可以访问,声明时没有加修饰符,认为是friendly
private:只能被自己访问和修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hneEs0af-1667397140941)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221027230752472.png)]
PreparedStateMent接口上statement的接口,它表示一条预编译过的sql语句;
PreparedStateMent可以防止sql注入
第一个参数表示设置sql语句的索引**(从一开始)**,第二个参数表示设置的值
方法重载和方法重写区别
重载;方法名相同,参数列表不同,与返回值类型无关
重写:方法名相同,参数列表相同,返回值类型相同,访问修饰符子类大于等于父类的
抛出的异常小于等于父类抛出的异常
switch作用域 byte,short,int,char,枚举类型(jdk1.5以上)
js date对象
gettime()返回自1970年1月1日00:00以来的毫秒值;
getdate()返回1-31中的某一天;
getday()返回0-6的某一天;(0代表 周日)
getyear()返回的值是当前年份-1900;
getfullyear才是返回当前年份;
mybatis框架重点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DxMsNAb-1667397140941)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029161903653.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vC4yfGO-1667397140942)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029163100496.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QLw7ItC7-1667397140943)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029164018999.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n1VIzss7-1667397140943)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029165219363.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4oMcKcI-1667397140943)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101090225307.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxUvRk6b-1667397140944)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101092853269.png)]
jsp表达式用法:<%=Expression>
<%=表达式%>
//注意:表达式不以分号结束;
1.以下关于HttpServlet的说法中,错误的是()
A. HttpServlet的子类至少重写doGet或doPost方法之一
B. HttpServlet位于javax.servlet.http包中
C. HttpServlet类的子类至少重写service方法
D. HttpServlet是一个抽象类
答案:C
A. service()
B. main()
C. init()
D. doGet()
答案:C
解析:servlet专门用来接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果。
Servlet初始化阶段,这个阶段web容器会通过调用init()方法来初始化Servlet实例,并且传递一个能够实现
一、填空
1、Tomcat服务器的默认端口是8080。怎样修改tomcat的端口__在Tomcat下打开conf文件夹找到server.xml文件用记事本打开在中把8080更改即可,
2、异常的处理,可在该方法的代码段中包含3类代码:try、catch和finally代码块。
3、jsp主要内置对象有:Request,response,session,application, page,pagecontext, config,out,exception
4、理论上,GET是用于获取服务器信息并将其作为响应返回给客户端,POST是用于客户端把数据传送到服务器。
5、application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session对象则是每个客户专用的。
6、JDBC的主要任务是:与数据库建立连接、发送SQL语句、处理结果。
7、一个Bean由三部分组成:实现Java.io.serializable接口、提供无参数的构造方法、提供getter()和setter()方法访问它的属性。
8、JavaServlet的主要特点是:、方便、、、节省投资。运行servlet需要在___web.xml_____注册.
9、Servlet的生命周期分三个时期:装载Servlet、创建一个Servlet实例、销毁。
10、JSP开发网站的两种模式分为_____jsp+javabean___________和jsp+javabean+servlet。
二、选择题
1、下面哪一个不是JSP本身已加载的基本类?(b)
A、java.lang.*B、java.io.*C、javax.servlet.D、javax.servlet.jsp.
2、对于预定义的说法错误的是:©
A、一次可声明多个变量和方法,只要以“;”结尾就行B、一个声明仅在一个页面中有效
C、声明的变量将作为局部变量D、在预定义中声明的`变量将在JSP页面初始化时初始化
3、从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确:(D)
A、Select * from员工where姓名=’玛丽’B、Select * from员工where姓名=’%玛丽_’
C、Select * from员工where姓名like ‘_玛丽%’D、Select * from员工where姓名like ‘%玛丽%’
4、下述选项中不属于JDBC基本功能的是:(D)
A.与数据库建立连接B.提交SQL语句C.处理查询结果D.数据库维护管理
5、在JSP中使用标记时,不会出现的属性是:©
A.nameB.propertyC.valueD.以上皆不会出现
6、Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:(D)
A.作用于整个JSP页面。
B.可以在一个页面中使用多个指令。
C.为增强程序的可读性,建议将指令放在JSP文件的开头,但不是必须的。
D.指令中的属性只能出现一次。
7、在JSP中调用JavaBean时不会用到的标记是:(A)
A.B. jsp:userbeanC.jsp:setPropertyD.jsp:getProperty
8、关于JavaBean正确的说法是:(A)
A、Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写
B、在JSP文件中引用Bean,其实就是用语句
C、被引用的Bean文件的文件名后缀为.java
D、Bean文件放在任何目录下都可以被引用
9、Servlet程序的入口点是:(A)
A、init()B、main()C、service()D、doGet()
10、不能在不同用户之间共享数据的方法是(A)
A、通过cookieB、利用文件系统C、利用数据库D、通过ServletContext对象
三、问答题
1.jsp有哪些内置对象?作用分别是什么?
application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。
Config对象允许将初始化数据传递给一个JSP页面
Exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。
Out对象代表提供输出流的访问
Page对象代表JSP页面对应的Servlet类实例
PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性
Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数据的上下文
Response对象允许直接访问HttpServletResponse对象
Session对象可能是状态管理上下文中使用最多的对话
2.jsp有哪些动作?作用分别是什么?
操作被用来以“名—值”队的形式为其他标签提供附加信息
操作允许在请求是在现成的JSP页面里包含静态或者动态资源
操作允许将请求转发到另一个JSP、servlet或静态资源文件
标签用来在JSP页面中创建一个JavaBean实例并指定他的名字以及作用范围
此操作和setBean一起协作,用来设置JavaBean的属性
操作是对操作的补充,用来访问一个Bean的属性
用来产生客户端浏览器的特别标签,可以使用它来插入Applet和JavaBean
3.JSP中动态INCLUDE与静态INCLUDE的区别?
如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,但这个被包含文件不会被JSP编译器执行。相反,如果这个被包含文件是动态的文件,那么他将被JSP编译器执行。如果是动态文件还可以用传递参数
4.两种跳转方式分别是什么?有什么区别?
操作允许在请求是在现成的JSP页面里包含静态或者动态资源
操作允许将请求转发到另一个JSP、servlet或静态资源文件
5.servlet运行的生命周期图.
装载Servlet
Servlet类Servlet初始化(调用init方法)
实例对象被回收提供服务(调用Service方法)
销毁Servlet实例(调用destroy方法)
6.在程序里怎样注册servlet.
displayChart
org.jfree.chart.servlet.DisplayChart
displayChart
/displayChart
常用jsp标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DvQ8HuwM-1667397140944)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221031200821577.png)]
mybatis动态sql及其作用
where,if,foreach,trim,choose when,otherwise;
mybati缓存机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuYufD8i-1667397140945)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101154656740.png)]
spring框架bean的生命周期
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYRAH9vU-1667397140945)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155414267.png)]
mybatis执行过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHAHvSJ8-1667397140945)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155448619.png)]
在mybatis中#和$的区别?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j9GH1CBI-1667397140945)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155645757.png)]
#相当于占位符,$相当于字符串拼接;
mybatis如何处理一对一,一对多,多对多关系?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jCHjlAk8-1667397140946)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155825361.png)]
resulttype和resultmap区别?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3XQgQEvT-1667397140946)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155914700.png)]
spring自动装配方式?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t4UBjg3o-1667397140946)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160311961.png)]
singleton和prototype区别?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-16JOxxzn-1667397140946)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160402002.png)]
@Component @Controller @Service @Repository的区别?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csfaWBJn-1667397140947)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160446372.png)]
aop通知有几种?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6JNZSAn-1667397140947)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160604144.png)]