Spring AOP

一、概念 1、AOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP...

2019-01-18 14:36:37

阅读数 8

评论数 0

代理模式以及实现(静态代理、动态代理)

一、定义 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 二、为什么要用代理模式? 中介隔离作用: 在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。 开闭原则...

2019-01-16 15:02:28

阅读数 17

评论数 0

Spring IOC

IoC,Inversion of Control,控制反转。控制反转是一种通过描述(在java中可以使XML或者注解)并通过第三方去获取特定对象的方式。简单地说就是将对象由虚拟机主动创建变为从IoC容器中获取,它是面向对象编程的一种思想,主要作用是降低开发难度、对模块解耦、有利于测试 一、内部...

2019-01-10 22:08:53

阅读数 20

评论数 0

Java注解(Annotation)

一、定义一个注解的方式 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface UseCase { public String id(); public String de...

2018-12-26 16:35:00

阅读数 19

评论数 0

Java 反射

一、反射机制概念 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这...

2018-12-26 16:32:41

阅读数 21

评论数 0

springboot集成rabbitmq实现邮件服务

生产者 pom依赖如下 <dependency> <groupId>org.springframework.boot</groupId&a...

2018-12-23 21:39:31

阅读数 38

评论数 0

RabbitMQ的一些基本概念

RabbitMQ RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性...

2018-12-23 21:37:15

阅读数 18

评论数 0

RabbitMQ的安装以及一些常用命令

最近一直在用RabbitMQ做一些东西,周末做了一下总结,包括RabbitMQ的安装,基本概念,然后做了一个利用RabbitMQ解耦邮件发送的Demo。 Erlang RabbitMQ是用Erlang写的,因此需要先安装Erlang环境 官网:https://www.erlang-soluti...

2018-12-23 21:06:27

阅读数 17

评论数 0

JVM学习笔记⑤ 对象的内存布局以及String对象

对象的内存布局 在 Hotspot 虚拟机中,对象在内存中的布局可以分为3块区域:对象头、实例数据和对齐填充。 Hotspot虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的自身运行时数据(哈希码、GC分代年龄、锁状态标志等等),另一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过...

2018-12-21 16:17:08

阅读数 16

评论数 0

JVM学习笔记④ 内存分配策略与垃圾回收机制

内存分配策略 JVM中的年代划分(新生代、老年代、永久代) 新生代 HotSpot JVM把年轻代分为了三部分:1个Eden区和2个Survivor区(分别叫from(S1)和to(S2))。Eden和Survival的默认分配比例为8:1。一般情况下,新创建的对象都会被分配到Eden区(...

2018-12-20 16:55:22

阅读数 9

评论数 0

JVM学习笔记③ Java内存模型(JMM)

Java 内存模型 在 java 中,所有实例域、静态域和数组元素存储在堆内存中,堆内存在线程之间共享(本文使用“共享变量”这个术语代指实例域,静态域和数组元素)。局部变量(Local variables),方法定义参数(java 语言规范称之为 formal method parameters)...

2018-12-18 15:33:45

阅读数 11

评论数 0

JVM学习笔记② JVM运行时数据区域

结构 方法区(Method Area) 方法区是各个线程共享的区域,存放类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分开来。 对于习惯在HotSpot虚...

2018-12-14 16:48:57

阅读数 25

评论数 0

JVM学习笔记① 类的生命周期以及类加载机制

类的生命周期 这 7 个阶段中的:加载、验证、准备、初始化、卸载的顺序是固定的。但它们并不一定是严格同步串行执行,它们之间可能会有交叉,但总是以“开始”的顺序总是按部就班的。至于解析则有可能在初始化之后才开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。 类的加载 类的加载...

2018-12-12 11:21:08

阅读数 17

评论数 0

利用Redis实现session共享

负载均衡 首先使用nginx配置一个简单的负载均衡: upstream myupstream{ server *.*.*.*:8080 weight=1; server *.*.*.*:8081 weight=1; } server{ listen *.*.*.*:80 ...

2018-12-10 13:48:24

阅读数 36

评论数 0

Redis5.0集群搭建

主从模式 redis安装好后(redis安装:https://blog.csdn.net/lazyRabbitLLL/article/details/84204496) 在redis下新建目录,并复制配置文件 cd /usr/local/redis mkdir -p cluster/7001 mk...

2018-12-09 19:27:59

阅读数 299

评论数 1

基于源码的Java集合框架学习⑭ Map总结

Map概括 Map 是“键值对”映射的抽象接口。 AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。 SortedMap 有序的“键值对”映射接口。 NavigableMap 是继承于SortedMap的,支持导航函数的接口。 HashMap 是基于“...

2018-12-08 13:10:11

阅读数 18

评论数 0

基于源码的Java集合框架学习⑧ LinkedHashMap

类 LinkedHashMap<K,V> 继承自HahMap。 此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映...

2018-12-08 12:36:52

阅读数 28

评论数 0

基于源码的Java集合框架学习⑦ HashMap

类 HashMap<K,V> 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致...

2018-12-08 12:35:32

阅读数 30

评论数 0

基于源码的Java集合框架学习⑯ HashSet以及TreeSet

类 HashSet 此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。 此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将...

2018-12-04 11:24:34

阅读数 23

评论数 1

基于源码的Java集合框架学习⑮ Set接口

接口 Set 一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。 在所有构造方法以及 add、equals 和 hashCode...

2018-12-03 10:41:30

阅读数 14

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭