面试题目
猿计划BUG
这个作者很懒,什么都没留下…
展开
-
谈谈你对spring框架中IOC的理解
What?When?Why?How? spring框架的IOC是一种控制反转思想, 基于这种思想可以科学管理对象资源,降低对象之间的耦合性,提高应用对象的灵活性, spring框架的核心就是IOC思想的实现,spring中所有的模块都是基于IOC,更重要的是基于IOC整合各种资源,例如Hibenate,AOP,Redis,Shiro等 ...原创 2019-07-24 11:21:32 · 245 阅读 · 0 评论 -
装饰模式
1.如何理解装饰模式 油漆工模式 基于目标对象添加额外职责(功能扩展) 2.装饰模式场景分析 IO(BufferReader) new BufferedReader(new FileReader) mybatis原创 2019-07-27 09:26:22 · 116 阅读 · 0 评论 -
模板方法模式
1.如何理解模板方法模式 基于算法步骤进行封装(算法骨架) 算法步骤中的部分实现交给子类 2.场景分析 Mybatis(SqlSessionTemplate,BaseExecutor) Spring(JDBCTemplate) 3.模板方法角色 抽象产品(AbstractObject) 具体产品(ConcreteObject) 4.应用分析 优势:提高代码的复用性 劣势:对于静态方法而...原创 2019-07-26 16:37:57 · 103 阅读 · 0 评论 -
策略模式
1.如何理解策略模式 基于面向对象中封装变化的思想将算法进行封装 基于多态性实现策略的灵活变化 2.策略模式场景分析 Mybatis(Executor,Cache) Spring(AOP) 3.策略模式角色构成 Context:环境类(抽象策略持有者) Strategy:抽象策略类(定义了策略的抽象类或接口) ConcreteStrategy:具体策略类(实现了具体策略的对象) 4.策...原创 2019-07-26 16:20:00 · 116 阅读 · 0 评论 -
代理模式
1.如何理解代理模式 基于目标对象(Target)创建代理对象(Proxy),并由代理对象控制目标对象的执行 基于OCP原则扩展目标对象的功能(装饰模式也可以实现,但是装饰模式不可以控制目标对象) 2.代理模式场景分析 mybatis(为接口创建代理对象,拦截器应用) spring(AOP,JDK动态代理,CGLIB代理) 3.代理模式角色构成 Subject:抽象主题角色(可以省略,基...原创 2019-07-26 16:05:50 · 109 阅读 · 0 评论 -
适配器模式
1.如何理解适配器模式(Adapter) 适配器模式(Adapter Pattern) 将一个接口转换为客户希望的另一个接口,以解决接口不兼容问题 又可以叫包装器模式 分为类适配器,对象适配器 2.适配器模式场景分析 Mybatis(Log接口) Spring(HandlerAdapter,AdviserAdapter,HandlerInterceptorAdapter)AdviserAda...原创 2019-07-26 15:30:55 · 97 阅读 · 0 评论 -
单例模式
1.如何理解单例模式 保证一个类的实例在"“特定范围”"只有一份(例如一个JVM内部,一个线程内部),并且提供一个全局访问点可以访问到这份实例 2.单例模式应用场景 Spring(Singleton作用域的Bean对象) BeanFactory.getBean访问点 Mybatis(ErrorContext对象是每个线程一份此类实例) 常量池,连接池,线程池等 3.单例模式对象角色构成 ...原创 2019-07-26 14:26:27 · 96 阅读 · 0 评论 -
建造模式
1.如何理解(Builder) 也可以理解为构建模式,通常用于构建相对比较复杂的对象, 构建过程复杂(很多过程又重复比较多) 对象依赖关系复杂 2.建造模式应用分析 Mybatis(XmlConfigBuilder,XmlStatementBuilder) Spring(XmlBeanDefinitionReader) 3.建造模式对象角色分析 抽象建造者对象角色(Builder):可能...原创 2019-07-26 10:00:31 · 86 阅读 · 0 评论 -
工厂方法模式的理解
1.工厂方法模式的理 是一种创建型模式 基于抽象工厂扩展具体工厂然后创建产品对象 2.工厂方法模式应用场景 Mybatis(SqlSessionFactoryBean) Shiro(ShiroFilterFactoryBean) Spring(DataSourceFactory,TransactionFactory) 3.工厂方法模式角色 抽象产品(Product) 具体产品(Concr...原创 2019-07-25 20:31:18 · 215 阅读 · 0 评论 -
反射应用及理解
如何理解反射 1)java中一种特有的技术 2)java中自省特性的一种实现(对象运行时动态发现对象及成员) 3)可以实现java动态编程,提高了框架编程的通用性 应用场景 1)构建对象 2)方法调用 总之:反射不能预知未来,但可以驾驭未来,通过反射可以构建编程框架,实现通用性编程,简化代码编写 反射应用起点 引用发射的起点为字节码文件Class对象 1)类名.class 2)Clas...原创 2019-07-25 17:39:38 · 191 阅读 · 0 评论 -
序列化和反序列化
1.概念 序列化:把对象转为字节或者字符的过程 反序列化:把字节或者字符转为对象的过程 2.序列化应用场景 (1)网络通讯(微服务架构中,服务之间的调用Dubbo框架中的RPC调用) (2)存储数据(文件或者缓存) 3.java中如何序列化和反序列化 (1)对象实现serializable接口 (2)添加序列化id(为反序列化提供保障) (3)借助流对象完成序列化与反序列化 4...原创 2019-07-25 15:56:30 · 123 阅读 · 0 评论 -
如何理解泛型
1.泛型的理解 JDK1.5出现的一种新特性,可以理解为参数化类型 2.为何使用泛型 提高代码的通用性,程序运行时的性能(泛型编译时有效,运行时无效) 3.泛型的应用 可以修饰类,接口,方法 4.泛型的通配符(?) 主要是用于变量的定义 5.泛型上下界 <? extends Object> 表示上界是Object类型,即传入的类型必须继承Obejct,也可以是Obej...原创 2019-07-25 14:50:44 · 381 阅读 · 0 评论 -
谈谈你对spring MVC的理解
spring MVC是一种分层设计思想 目标是将复杂的应用系统按照分层处理进行设计和规划,通过这种设计方式达到分而治之的效果,从而降低程序开发的难度,提高代码的可维护性. ...原创 2019-07-24 11:30:35 · 2267 阅读 · 0 评论 -
线程与进程
1.如何理解进程和线程 进程:操作系统进行资源调度和分配的一个基本单位(浏览器,APP,JVM) 线程:进程中最小执行单位(可以理解为一个顺序执行流) 说明:多个线程可以共享所属进程的所有资源 2.如何理解多线程的并行与并发 并发:多线程抢占CPU,可能不同时执行,侧重于各个任务交替执行 并行:线程可以不共享CPU,可每个线程一个CPU同时执行多个任务 并行只出现在多CPU或多核CPU中...原创 2019-07-27 16:25:19 · 159 阅读 · 0 评论