面经综合总结

5 篇文章 0 订阅
4 篇文章 0 订阅

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-ciMtoOt3-1668567343184)(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-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>

<%=表达式%>

//注意:表达式不以分号结束;

1.以下关于HttpServlet的说法中,错误的是()

A. HttpServlet的子类至少重写doGet或doPost方法之一

B. HttpServlet位于javax.servlet.http包中

C. HttpServlet类的子类至少重写service方法

D. HttpServlet是一个抽象类

答案:C

  1. Servlet程序的入口点是:()

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-nqoImCLD-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221031200821577.png)]

mybatis动态sql及其作用

where,if,foreach,trim,choose when,otherwise;

mybati缓存机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i94gRuCp-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101154656740.png)]

spring框架bean的生命周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ScuHxDSB-1668567343187)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155414267.png)]

mybatis执行过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6p4VGSeE-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155448619.png)]

在mybatis中#和$的区别?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsFYVU1B-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155645757.png)]

#相当于占位符,$相当于字符串拼接;

mybatis如何处理一对一,一对多,多对多关系?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEE7T3SC-1668567343188)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155825361.png)]

resulttype和resultmap区别?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BcKgmERY-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101155914700.png)]

spring自动装配方式?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmGijOxW-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160311961.png)]

singleton和prototype区别?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9b9xmrUT-1668567343189)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160402002.png)]

@Component @Controller @Service @Repository的区别?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAUsJU7u-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160446372.png)]

aop通知有几种?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4T3lK3Pf-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221101160604144.png)]

数组和链表数据结构区别?
http请求头和响应头?
mysql优化?
隔离性?
后台传数据给前端什么格式?
接口和抽象类区别?

java基础语法复习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QovnkQIG-1668567343190)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108153913972.png)]

一、java概述

1、java语言特点:开源,跨平台
2、Java如何实现跨平台?
3、jdk,jre,jvm联系?
jvm:java语言通过jvm实现跨平台
jre,java运行时环境,包含java虚拟机和java程序运行的基础类库
jdk,在jre基础上加上了开发者工具类;
4、运行一个java程序最少要安装jre。

二、数据类型

1、基本数据类型;
整型
byte 8位 -128-127
short 16位 正负3万多
int 32位 正负21亿多
long 64位
字符型
char
布尔型
true
false
浮点型
float 32位 1符号位 23有效位 8指数位
double 64位 1符号位 54有效位 9指数位

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMFNI9n6-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108154825390.png)]

2、引用数据类型;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gE9EglaM-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108155536314.png)]

基本数据类型开辟出

==和equals区别?
基本数据类型==比较的是内存栈中的值是否相等
应用数据类型==比较的是内存栈中的地址值是否相等
3、String是引用数据类型的
类不可变,值也是不可变的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtXWxEaL-1668567343191)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108160111352.png)]

str=“123”

str+=“abc” 创建了几个对象?

abc “123”+“abc” str 三个对象

大量字符串拼接怎么做?stringbuffer,stringbuilder,string区别?
程序运行消耗资源的事情是分配存储空间
在说明效率时候,一定要说明条件!
在做大量字符串拼接时候效率,stringbuilder>stringbuffer>string
4、自动类型转换
低取值范围类型的数据可以向高取值范围的数据转换;

可能存在精度转换 int------->float

int 32位, 精度31位, float 精度 23位

变量,表达式

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穿透)、

switch支持数据类型:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]

跳转

break:跳出循环
continue:跳
出本次循环,执行下一次循环
6、数组(引用数据类型)
1、数组在内存中需要连续空间,长度不能改变,查询比较快,插入慢
2、数组声明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-meoa6y17-1668567343193)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221108165314624.png)]

3、排序(冒泡,交换,插入,快排)

索引

物理结构分为聚簇索引和非聚簇索引两块;

聚簇索引指的索引的键值的逻辑顺序与表中相对应的物理顺序一致,即每张表只能由一个聚簇索引,也就是我们说的主键索引;

非聚簇索引的逻辑顺序与数据行的物理顺序不一致;

从应用上分为以下几类:

普通索引:MySQL 中的基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了提高查询效率。通过 ALTER TABLE table_name ADD INDEX index_name (column) 创建;

唯一索引:索引列的值是唯一的。但是允许为空值;

主键索引:特殊的唯一索引,也是聚簇索引,但不允许为空值

组合索引:组合表中多个字段创建的索引,遵循最左前缀 匹配原则,

**全文索引:**只有在MYISAM引擎上才能使用,同时支持char,varchr,text类型字段上使用。

面向对象

1、类和对象的区别?

类是一个抽象概念,对象的模板,一类的总体

对象:类的实例化,是一个类的具体,类的具体实例;

2、方法

方法重写,重载区别

1、什么是重载?

方法名相同,参数列表不同,与返回值,访问修符无关,

方法签名:方法名+参数列表

2、重写(覆盖,覆写)

发生在父类和子类之间,在子类中:

子类 访问修饰符大于或等于父类修饰符

子类抛出的异常不能大于父类的异常

方法名相同

参数列表相同

返回值类型相同(小于等于父类的返回值类型)

不能重写的方法:构造方法,final修饰的方法,protected,不能继承的方法

3、常见的面试题目::
比较直接的:给—个方法的定义,选出哪些是重写或杏重载。

给出一段代码,空出一行,问:以承哪些语句可以插入到空行中;

考概念:--------细节

3、变量

局部变量 和 成员变量

for循环中变量java中不能用,JavaScript能使用

4、关键字

1、static

内部类可以修饰(叫做静态内部类)

方法内部的变量不能用static修饰

调用方式:类命.方法名 实例.xxx

static修饰的放在内存的方法区,唯一,加载时间类加载之前

2、super,this

一、指针功能。super指向父类对象,this指向当前对象

二、用于调用构造方法

super放在子类的构造第一行,可以调用父类的方法(必须放在第一行)

使用this方法放在当前类的构造方法第一行调用构造方法

super,this不能同时出现

3、final

1、修饰类:最终类,不能被继承

2、修饰变量:常量,

常量的初始化?
普通成员变量(1)声明时候(2)代码块中 (3)构造方法;三选一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9shzCJW-1668567343194)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111145901645.png)]

静态常量:(1)声明时候 (2)静态代码快 --二选一
局部变量(方法内部定义)(1)声明时候必须赋值;

3、方法

最终方法:可以被继承,但是不能被重写

4、abstract和interface区别

abstract可以修饰类和方法

interface用来定义接口

相同点:

都可以定义抽象方法,都不能被实例化

不同点:

抽象类本质上是一个类。

接口中成员变量都是静态常量

抽象类接口
相同点都可以定义抽象方法,都不能被实例化
不同点抽象类中可以有抽象方法,也可以有普通方法,接口中只能是抽象方法,不能有方法实现,默认是static,定义的属性为静态常量,jdk1.8之后可以有默认方法
抽象类要被继承接口要被类实现
接口没有构造方法
5、类的初始化顺序

原则:先父类,再子类;先静态,后实例

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)]

面向对象三大特征

1、封装
隐藏类的内部实现细节,属性设置为private,提供getset方法
2、继承

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKr6RyNa-1668567343194)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111153659584.png)]

java继承机制

1、先回答继承是什么

2、java中的类是单继承

3、接口的继承是多继承

4、关于类的继承:public,protected修饰的类能够被继承,同包下的default成员能够被继承;被final修饰的类不能被修饰

3、多态

同一个引用类型,引用不同的对象来实现不同的操作,父类对象引用子类实例

四大特征(加上抽象)

7大原则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nEKzmSG0-1668567343195)(C:\Users\28344\AppData\Roaming\Typora\typora-user-images\image-20221111155004517.png)]

23种设计模式

常考:单例(饿汉,懒汉线程安全问题)

描述一下你了解的设计模式?
io部分装饰模式
mybatis框架 ,sqlsessionfactory.builder 建造者模式
factory 工厂模式
mybatis 三大执行器选择 策略模式
spring ioc beanfacory工厂模式
aop 动态代理
spring mvc 处理器适配器 适配模式

java线程池参数

1、corePoolSize 核心线程大小,维持一个最小的线程数量,

2、maxmumPoolSize 线程池最大线程数量

3、keepAliveTime 空闲线程存活时间

4、unit 空闲线程存活时间单位

5、workQueue 工作队列

6、threadFactory 线程工厂

7、handler 拒绝策略

aop能用在哪些地方

aop有统一的功能的地方,抽象出来

sql复习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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基础上,数据表中的字段非主键列只依赖主键,不依赖于其他非主键

myisam和innoDb区别

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。

mysql索引

索引优点:

提高数据检索效率,降低数据库的io成本。

缺点:索引会占据磁盘空间。

索引类型

主键索引:唯一的,不允许有空值
普通索引:允许为空和重复
唯一索引:唯一的,但允许为空值
全文索引:
空间索引
前缀索引

innodb中,数据文件按照b+tree组织索引结构,聚簇索引就是按照每张表的主键构造一棵b+tree,叶子节点存放整张表的行记录数据,也将聚簇索引的叶子节点称为数据页,

一般建表用自增主键做聚簇索引,

常见runtimeException

nullpointerException

ClassCastException

NumberFormatException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值