面试题

面试题

Spring是个开源框架,Spring使用基本JavaBean来完成以前只能由EJB完成的事情
Spring是轻量级框架主要是Ioc和AOP
IOC控制反转:在普通用户创建对象的执行权交给Spring容器,
依赖注入:将一个类A作为另一个类B的属性,类B has 类A(依赖)注入,将类A 当做参数注入到类B中
AOP面向切面编程:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP原理:动态代理方式实现程序的统一维护和管理;采取横向抽取代取纵向继承
AOP术语:目标类,连接点,增强,织入,切面
优点:方便解耦,简化开发(高内聚低耦合),AOP编程技术,方便测试,声明事务支持
Spring框架模式:
代理模式:在AOP和remoting中被用的比较多
单例模式:在spring配置文件中定义bean默认
工厂模式:BeanFactory用来创建对象的实例
===========================================================
SpringMvc原理
Uer发送用户请求>前台控制层找到controller>返回前台控制器>处理适配器调用ModeAndView>返回前台控制器>视图解析器>返回前台控制器>view
========================================================
Mybatis运行原理:全局配置文件 >回话工厂>回话>执行器>映射器>数据库
Mybatis缓存分为:一级缓存和二级缓存,
一级缓存:是Sqlsession级别缓存,是通过mapper代理方式获得,在执行相同查询语句时,第二次执行相同查询语句,会在SqlSession中执行,互不干扰每个Sqlsession都是相互独立,但执行删除,修改,添加时Sqlsession机会清空,避免脏读。
二级缓存:是mapper级别缓存,指的是namespace的路径的缓存机制,所以多个语句查询可以共用一个mapper缓存机制。
===========================================================
Hibernate和Mybatis区别
Hibernate全自动完全可以通过对象关系模型实现对数据库操作,mybatis半自动仅有基本的字段映射,对象数据以及实际关系需要手写sql语句
Hibernate数据库移植性远大于Mybatis
Mybatis相比Hibernate需要关心更多细节
Sql直接优化mybatis要比Hibernate方便多,mybatis都是写在xml里,Hibernate是自动生成hql不能直接维护
===========================================================
SelectOne和SelectList区别:
SelectOne是处理查询结果为一条记录,但也可以用SelectList,
SelectList是处理查询为多条记录,但是不可以用SelectOne.。
#{ }和${ }的区别:
#{ } 是占位符,相当于?
${ } 拼接符,拼接内容不做任何修饰,直接拼接到sql语句会引发sql注入。
List ,set ,Map区别
List 有序,可重复,可插入多个null元素,提供索引随意访问
Set无序,不可重复,无序容器,只允许一个null元素
Map键值对存在,可以拥有随意个null值但最多只能有一个null键。
面向对象三大特征:封装,继承,多态
==========================================================
对象序列化:是将一个对象变成二进制的过程
数据库事务:是用户自定义的一组不可再分的操作集合,这些操作要么全做要么全不做
事务特性ACID
原子性:事务最小执行单位不可再分
一致性:数据在操作之前和操作之后要保持完整/一致
隔离性:一个事务在执行时,不受其他事务影响
持久性:事务一旦提交,将永远保存更改后的数据
===========================================================
Create table user 创建表
Inster into user (name)vaules(‘李四’)插入
Update user set id=’1’ where name=’张三’修改
高级查询
Select user form a inner join b on
===========================================================
Jdbc开发步骤:
1加载驱动2.获取驱动连接3创建对象4发送sql语句
Mysql搜索引擎
MyISAM表是独立操作系统,可以轻松将win服务器移动到linux服务器中
InnoDB是默认
Memmory出发点是速度
MERGE是一组MyISAMB表的组合
Archive归档的意思
===========================================================单例模式:
Public class Singleton1{
Private static final Singleton1 instance=new Singleton1();
//私有的默认构造函数
Public Singleton1(){}
//静态工厂方法
Public static Singleton1 getInstance(){
Return instance;
}
}
===========================================================
Final,finally,finalize区别
FIinal修饰符最后的不可修改
Finally在异常处理提供Fially块来执行任何清除操作
Finalize方法名:是在垃圾收集器删除对象之前对这个对象调用
Int和Integer区别
Int基本数据类型Integer包装类
为了在各种类型间转化,通过各种方法的调用。
重写和重载区别
Override(重写):
1方法名,参数,返回值相同2.子类方法不能缩小父类方法访问权限
3.子类不能抛出比父类多的异常4.方法被定义为final不能被重写
Overload(重载)
1参数类型、个数、顺序至少有一个不相同2.不能重载只有返回值不同的方法名
3.存在于父类和子类、同类中
抽象类和接口区别
接口是公开,不能有私有的方法或变量;抽象类可以有私有的方法或私有变量
接口要是实现接口里所有方法;抽象类可以选择地重写需要用到的方法
接口可以实现多重继承;抽象类只可以继承一个类
===========================================================
反射用途和实现
Java发射主要提供以下功能:在运行时构造一个类的对象;判断一个类所具有的成员变量和方法;调用一个对象的方法;生成动态代理。最大应用框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值