atomicity 原子性,不可再拆分
consistency 一致性:事务开始之前和结束之后,数据库的完整性权限没有被破坏,包括约束一致性和数据一致性。
isolation 隔离性,一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对其他并发事务时隔离的。
durability 持久性,指一个事务一旦提交,它对数据库的改变都是永久性的,后续操作不应该对其造成影响。
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修饰)不能用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:异常处理语句结构的一部分,表示总是执行。
finally和catch可以两个都存在也可以只存在一个,但是try不能单独存在
catch个数 0个或多个
finalize:当对象不再被程序所使用的时候,垃圾回收器将会将其回收
,无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以尽快回收,
垃圾回收器在回收某个对象的时候,首先会调用该对象的finalize()方法
sleep是Thread类中的方法,不会马上进入运行状态;
wait是object类中的方法,一旦调用wait方法,必须使用notify和notifyall唤醒
使用范围:sleep可以在任何地方使用,但wait只能在synchronized的同步方法代码块中使用
异常处理:sleep需要捕获异常,而wait不需要捕获异常;
start启动线程,真正实现了多线程;
run()只是thread类的一个普通方法;
run()方法访问权限必须是public ,返回值是void
list和set都是单列集合,继承自collection接口;Map是双列集合,键值对的形式,独立接口
hashmap允许key和value为null
hashtable的key和value都不为null
hashmap初始值容量为16
hashmap中key不能重复,value可以重复
hashmap线程不安全,而hashtable线程安全
Hashtable是有序的,HashMap是无序的。
1、list和set都是继承自collection接口
2、list特点:元素存放有序,可重复;
set特点:元素存放无序,元素不可重复,重复元素会被覆盖掉
vector的底层逻辑和arraylist一样都是动态数组,线程安全的;
linkedlist是基于双链表实现的,而arraylsit是动态数组实现的;因此linkedlist查询慢,增删快;arraylist查询快,增删慢;
set的实现类有hashset,treeset,linkedhashset,这三个类都是不可重复的,但只有hashset无序;
public:可以被所有其他类访问
protected:自身,子类及同一个包中类可以访问
default(friendly):同一包中的类可以访问,声明时没有加修饰符,认为是friendly
private:只能被自己访问和修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ciMtoOt3-1668567343184)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221027230752472.png)]
PreparedStateMent接口上statement的接口,它表示一条预编译过的sql语句;
PreparedStateMent可以防止sql注入
第一个参数表示设置sql语句的索引**(从一开始)**,第二个参数表示设置的值
重载;方法名相同,参数列表不同,与返回值类型无关
重写:方法名相同,参数列表相同,返回值类型相同,访问修饰符子类大于等于父类的
抛出的异常小于等于父类抛出的异常
gettime()返回自1970年1月1日00:00以来的毫秒值;
getdate()返回1-31中的某一天;
getday()返回0-6的某一天;(0代表 周日)
getyear()返回的值是当前年份-1900;
getfullyear才是返回当前年份;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSfE2Soi-1668567343185)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029161903653.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TERXnbGw-1668567343185)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029163100496.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHKI10WT-1668567343185)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029164018999.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xUr6dkj0-1668567343186)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221029165219363.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NDu30ELi-1668567343186)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101090225307.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7wGfNjy-1668567343186)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101092853269.png)]
jsp表达式用法:<%=Expression>
<%=表达式%>
//注意:表达式不以分号结束;
A. HttpServlet的子类至少重写doGet或doPost方法之一
B. HttpServlet位于javax.servlet.http包中
D. HttpServlet是一个抽象类
答案:C
A. service()
B. main()
D. doGet()
答案:C
解析:servlet专门用来接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果。
Servlet初始化阶段,这个阶段web容器会通过调用init()方法来初始化Servlet实例,并且传递一个能够实现
一、填空
1、Tomcat服务器的默认端口是8080。怎样修改tomcat的端口__在Tomcat下打开conf文件夹找到server.xml文件用记事本打开在中把8080更改即可,
2、异常的处理,可在该方法的代码段中包含3类代码:try、catch和finally代码块。
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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqoImCLD-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221031200821577.png)]
where,if,foreach,trim,choose when,otherwise;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i94gRuCp-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101154656740.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ScuHxDSB-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155414267.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6p4VGSeE-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155448619.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsFYVU1B-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155645757.png)]
#相当于占位符,$相当于字符串拼接;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEE7T3SC-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155825361.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BcKgmERY-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155914700.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmGijOxW-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160311961.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9b9xmrUT-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160402002.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAUsJU7u-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160446372.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4T3lK3Pf-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160604144.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QovnkQIG-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108153913972.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMFNI9n6-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108154825390.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gE9EglaM-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108155536314.png)]
基本数据类型开辟出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtXWxEaL-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108160111352.png)]
str=“123”
abc “123”+“abc” str 三个对象
可能存在精度转换 int------->float
变量,表达式
1、先声明,初始化,在使用
2、基本数据类型赋值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MY7eYB8B-1668567343192)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108162046100.png)]
6、long !=9999999999;
整数常量默认时int,超出了int的范围,需要加后缀L;
4、运算符
执行顺序:从左到右;赋值:从右到左 int j=i=i+1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rON6J0Hu-1668567343192)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108162956202.png)]
单目运算符 ++ – !
赋值运算符:+= -= *=
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yjcOM9OF-1668567343192)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108163457806.png)]
if…else
switch(非正常 switch ,不写break穿透)、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mojn0GRe-1668567343192)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108164450952.png)]
byte,short,int,char,enum,string
for
while
do…while
for(;i<100;) for(;😉
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVv7dJPb-1668567343193)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108164830304.png)]
跳转
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-meoa6y17-1668567343193)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108165314624.png)]
从物理结构分为聚簇索引和非聚簇索引两块;
聚簇索引指的索引的键值的逻辑顺序与表中相对应的物理顺序一致,即每张表只能由一个聚簇索引,也就是我们说的主键索引;
非聚簇索引的逻辑顺序与数据行的物理顺序不一致;
从应用上分为以下几类:
普通索引:MySQL 中的基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了提高查询效率。通过 ALTER TABLE table_name ADD INDEX index_name (column) 创建;
唯一索引:索引列的值是唯一的。但是允许为空值;
主键索引:特殊的唯一索引,也是聚簇索引,但不允许为空值
组合索引:组合表中多个字段创建的索引,遵循最左前缀 匹配原则,
**全文索引:**只有在MYISAM引擎上才能使用,同时支持char,varchr,text类型字段上使用。
类是一个抽象概念,对象的模板,一类的总体
对象:类的实例化,是一个类的具体,类的具体实例;
1、什么是重载?
方法名相同,参数列表不同,与返回值,访问修符无关,
方法签名:方法名+参数列表
2、重写(覆盖,覆写)
发生在父类和子类之间,在子类中:
子类 访问修饰符大于或等于父类修饰符
子类抛出的异常不能大于父类的异常
方法名相同
参数列表相同
返回值类型相同(小于等于父类的返回值类型)
3、常见的面试题目::
比较直接的:给—个方法的定义,选出哪些是重写或杏重载。
给出一段代码,空出一行,问:以承哪些语句可以插入到空行中;
考概念:--------细节
局部变量 和 成员变量
for循环中变量java中不能用,JavaScript能使用
内部类可以修饰(叫做静态内部类)
方法内部的变量不能用static修饰
调用方式:类命.方法名 实例.xxx
static修饰的放在内存的方法区,唯一,加载时间类加载之前
一、指针功能。super指向父类对象,this指向当前对象
二、用于调用构造方法
super放在子类的构造第一行,可以调用父类的方法(必须放在第一行)
使用this方法放在当前类的构造方法第一行调用构造方法
super,this不能同时出现
1、修饰类:最终类,不能被继承
2、修饰变量:常量,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9shzCJW-1668567343194)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111145901645.png)]
3、方法
最终方法:可以被继承,但是不能被重写
abstract可以修饰类和方法
interface用来定义接口
相同点:
都可以定义抽象方法,都不能被实例化
不同点:
抽象类本质上是一个类。
接口中成员变量都是静态常量
| 抽象类 | 接口 | |
|---|---|---|
| 相同点 | 都可以定义抽象方法,都不能被实例化 | |
| 不同点 | 抽象类中可以有抽象方法,也可以有普通方法, | 接口中只能是抽象方法,不能有方法实现,默认是static,定义的属性为静态常量,jdk1.8之后可以有默认方法 |
| 抽象类要被继承 | 接口要被类实现 | |
| 接口没有构造方法 |
原则:先父类,再子类;先静态,后实例
1、P-静态变量
P-静态代码块
2、C-静态变量
C-静态代码块
3、P-成员变品
P-代码块
4、父类的构造方法
5、C-成员变量
C-代码块
6、子类的构造方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3EgxISw-1668567343194)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111153035108.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKr6RyNa-1668567343194)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111153659584.png)]
1、先回答继承是什么
2、java中的类是单继承
3、接口的继承是多继承
4、关于类的继承:public,protected修饰的类能够被继承,同包下的default成员能够被继承;被final修饰的类不能被修饰
同一个引用类型,引用不同的对象来实现不同的操作,父类对象引用子类实例
四大特征(加上抽象)
7大原则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nEKzmSG0-1668567343195)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111155004517.png)]
常考:单例(饿汉,懒汉线程安全问题)
1、corePoolSize 核心线程大小,维持一个最小的线程数量,
2、maxmumPoolSize 线程池最大线程数量
3、keepAliveTime 空闲线程存活时间
4、unit 空闲线程存活时间单位
5、workQueue 工作队列
6、threadFactory 线程工厂
7、handler 拒绝策略
aop有统一的功能的地方,抽象出来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tQds4NIb-1668567343195)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221114095253782.png)]
行列转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3zX2ygMN-1668567343195)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221114095807918.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Na6Xiigx-1668567343195)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221114104009356.png)]
1、三大范式
1nf 数据表中的任意字段都是单一的不可再分 ,解决表中表
2nf 在1nf基础上,非主键列完全依赖于主键,而不能是依赖主键的一部分;数据表中不存在任意字段对任意关键字段的部分依赖,解决数据有效性问题
3nf 在2nf基础上,数据表中的字段非主键列只依赖主键,不依赖于其他非主键
1、innodb支持事务,myisam不支持,对于innodb每一条数据都封装成事务
2、innodb支持主键,而myisam不支持
3、innodb是聚簇索引,使用B+tree作为索引结构,数据文件和索引是绑定在一起的,必须要有主键,通过主键查询效率很高。
4、myisam是非聚簇索引,索引和数据文件是分离的,也是使用B+tree作为索引结构,
5、innoDb支持表、行(默认)级锁,而myisam支持表级锁。
6、innodb不支持全文索引,而myisam支持全文索引,5.7以后innodb支持全文索引。
7、只读查询考虑myisam,有读也有写考虑innodb。
索引优点:
提高数据检索效率,降低数据库的io成本。
缺点:索引会占据磁盘空间。
innodb中,数据文件按照b+tree组织索引结构,聚簇索引就是按照每张表的主键构造一棵b+tree,叶子节点存放整张表的行记录数据,也将聚簇索引的叶子节点称为数据页,
一般建表用自增主键做聚簇索引,
常见runtimeException
nullpointerException
ClassCastException
NumberFormatException