随笔分类 - Java
java基础技术
摘要:##引言 Java的目标是跨平台,就是所谓的“一处编译、处处运行”,但是显然不同的运行环境需要的二进制代码是不一样的,怎么办呢?那就把源代码编译成针对一台抽象的计算机(虚拟机)的代码(.class文件),虚拟机对上的接口是一致的,让编译结果运行在虚拟机之上,再由这个虚拟机软件将程序转换成本地计算机所
阅读全文
摘要:##引言 在Spring中有许多Enable开头的注解,比如以下常见注解 @EnableTransactionManagement @EanbleAsync @EnableCache @EnableAspectJAutoProxy @EnableSchedulin 这些注解是在什么时候,什么地方被处
阅读全文
摘要:##引言 ###什么是事务? 在理解事务之前,我们要先了解事务的基本作用 比如在生活中有这样一个场景————取钱,每个人应该都干过的事 在ATM机上取钱,1.输入密码————2.输入金额————3.银行扣钱————4.ATM出钱 以上几个步骤中,3和4就是必须是一个事务,因为它们之间,要么都完成,要
阅读全文
摘要:##引言 Spring AOP(Aspect Orient Programming),AOP翻译过来就是面向切面编程,它体现的是一种编程思想,是对面向对象编程(OOP)的一种补充。 在实际业务开发过程中,有一些代码,跟业务没有任何关系,但在很多地方又会用到,比如:记录日志、计算执行时间、事务、权限验
阅读全文
摘要:概念 MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议。 MESI协议中的状态 CPU中每个缓存行(caceh line)使用4种状态进行标记(使用额外的两位(b
阅读全文
摘要:##引言 Spring容器中提供很多方便的注解供我们在工作中使用,比如@Configuration注解,里面可以在方法上定义@Bean注解,将调用方法返回的对象交由Bean容器进行管理,那么Spring框架是如何处理@Configuration注解的呢 ##源码 /** * 此类是一个后置处理器的类
阅读全文
摘要:##引言 在Spring中BeanFactoryPostProcessor(后面使用简写BFPP),作为容器启动过程的对容器进行修改操作的Bean对象,是Spring框架对外提供的核心扩展点之一,Spring IoC容器允许BeanFactoryPostProcessor在容器实例化任何bean之前
阅读全文
摘要:##引言 在Spring中,Component、Service是在工作中经常被使用到的注解,为了加深对Spring运行机制的理解,今天我们一起来看一下Spring中对Component等注解的处理方式 ##Component注解源码 在Component注解的源码中(已去掉多余无关内容) /** *
阅读全文
摘要:##Spring MVC基本原理 Spring MVC是Spring开源项目在Web开发上的一个扩展,方便我们在开发Web项目的时候使用IOC来管理我们的bean对象,我们都知道Tomcat是作为web项目的一个容器(准确点说是servlet容器),既然要在web项目中使用Spring框架,我们就必
阅读全文
摘要:##引言 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可
阅读全文
摘要:##BeanFactory和FactoryBean BeanFactory和FactoryBean长得很相似,也很容易让我们产生误解,特别是对于初学者而言,搞懂他俩关系非常有必要,因为这两个接口,是Spring框架中非常重要的两个接口,也是很多同鞋在面试中经常被问到的问题 ###BeanFactor
阅读全文
摘要:##BeanPostProcess简介 在Spring中 BeanPostProcessor 是一个非常重要的接口,它用于在每个bean对象初始化前后修改Bean的属性信息,比如我们最常用的@Autowired注解,在内部处理的时候,是通过一个AutowiredAnnotationBeanPostP
阅读全文
摘要:##简介——什么是观察者模式 观察者模式是一种定义对象相互之间依赖关系的一种设计模式,它属于设计模式中的行为模式,通过发布/订阅的方式在对象之间互相传送消息 ###一般观察者使用步骤 订阅事件(addObserver) 被观察者发布事件 观察者响应事件 ###举例说明 我们可以用一个例子来解释一下观
阅读全文
摘要:##Aware接口 在Spring中有许多的Aware接口,提供给应用开发者使用,通过Aware接口,我们可以通过set的方式拿到我们需要的bean对象(包括容器中提供的一些对象,ApplicationContext等),根据需要可以将其注入到本地对象的属性中。 先来看一个Spring两个基础的接口
阅读全文
摘要:在Spring中创建Bean是分为两个步骤的 实例化Bean(JVM 分配空间,属性设为默认值) 初始化Bean(Spring 属性的依赖注入) 通过将已实例化但未初始化的Bean提前暴露出去的方式解决set或属性注入时产生的循环依赖 流程图
阅读全文
摘要:##简介 Java的java.util.concurrent包中提供了并发相关的接口和类,本文将重点介绍CompletableFuture并发操作类 JDK1.8新增CompletableFuture该类 Class CompletableFuture<T> java.lang.Object jav
阅读全文
摘要:##单例模式 单例模式是我们在编程过程中经常使用的一种设计模式,它属于一种创建型模式。在这种设计模式中涉及到一个需要保证单例的一个类,通过这个类自身去创建本类的一个对象,同时在代码中的任何地方,能够获取到的此类对象都是同一个对象,从而保证此类的对象有且仅被创建一次。 此类提供一个静态的公共方法(pu
阅读全文
摘要:设计模式——动态代理 java 设计模式 ###简介 动态代理是相对就静态代理而言 静态代理是指:代理类通过对被代理类的引用,在代理类中重构被代理对象中需要代理的方法(在调用被代理类的引用对象相应方法的前后,添加我们需要的操作),静态代理对原有代码不会产生任务改变,不会自动生成新的字节码,只需要新建
阅读全文
摘要:##一群友分享的阿里面试题 1.将head链表以m为组反转链表(不足m则不反转): 例子:假设m=3. 链表 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 ->8 output: 3 -> 2 -> 1 ->6 ->5 ->4 -> 7 ->8 ###解法一:使用JDK的链表Lin
阅读全文

浙公网安备 33010602011771号