Java面试整理(一)2021.5
一、Spring
IOC:控制反转,把创建对象权交给Spring来管理
AOP:面向切面编程(解决的是系统层面的问题,如事物,日志,权限等)
IOC的XML开发:
1.引入.xsd的约束文件
2.<bean id="" class=""/>
bean的作用域:singleton propertype request session application
autowired自动装配:byName byType
3.注入方式 构造器注入 setter注入 p空间属性名称注入
AOP的XML开发:
1.引入.xsd的约束文件
2.<bean id="" class=""/>
<AOP:configuration/> <AOP:Aspect/> <AOP:pointcut/>
5个通知:<AOP:before/> <AOP:after/> <aop:after_returning/> <aop-throw/> <aop:arrounding/>
二、SpringMVC
1.用户发送请求到前端控制器
2.前端控制器委托请求处理到页面控制器
3.页面控制器调用业务模型到模型
4.模型返回数据模型到页面控制器
5.页面控制器返回MODELANDVIEW到前端控制器
6.前端控制器渲染视图到视图
7.视图返回控制到前端控制器
8.前端控制器产生响应给用户
三、Mybatis 是一个ORM半自动对象关系映射框架,它是对JDBC的封装
XML开发:1.全局配置文件 2.映射文件
1.引入.dtd约束文件
2.<environment/>
3.<transaction JDBC/> 数据库事务
4.<DataSource/> 数据源
5.4个基本信息 数据库驱动 URL user name
6.注册映射文件 <mappers/> <mapper/> <insert/> <delete/> <select/> <update/>
#{}进行预编译处理,会进行数据类型匹配,会把sql语句替换成占位符?,防止sql注入,提高系统安全性
${}不会进行数据类型匹配,是拼接字符串
四、抽象类和接口的区别
相同点:两者都不能被实例化,两者都可以有抽象方法
不同点:接口不能有静态变量代码块
接口不能有成员方法
接口不能有构造方法, 抽象类可以有
五、StringBuffer和StringBuilder的区别
相同点:两者都是可更改字符串,String是不可更改字符串
StringBuffer:线程安全,方法都是由sychronized修饰
StringBuilder:线程不安全,性能大于StringBuffer
六、JDBC模板
1.加载驱动 class.forName(com.mysql.jdbc.driver) 2.创建连接 Connection c=DriverManagement.getconnection(url,user,password) 3.执行SQL语句 Statement s=c.createstatement() string sql="" 4.返回处理结果 Result r=s.executeQuery(sql) 5.释放资源 c.close()
七、集合
两个接口
collection:list(有序的,可重复) ArrayList linklist vector
set(无序的,不可重复) hashset treeset
map:hashmap:线程不安全,效率高,键可为null,并且只能有一个
treemap:线程安全的,键不能为null
键值对的形式:键不能重复,值可以重复
八、I/O流
按流向分可分为:输入流和输出流
按数据类型分可分为字符流和字节流,以stream结尾的是字节流,以read/writer结尾的是字符流
字节流可以读取任意类型的文件,字符流只能读取文本文件
九、jsp九大内置对象
request reponse application pagecontext out page config seeion exception
十、数据库语法
select
distinct 去重
from表名
where 条件
group by 分组
having 过滤
order by 排序
limit a,b b 或 offset a(a是偏移量,b是分单位)
drop:删除整个表结构truncate:清空表所有数据delete:删除谋一行数据

浙公网安备 33010602011771号