自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(27)
  • 收藏
  • 关注

转载 垃圾收集器和内存分配策略

垃圾收集器回收哪些虚拟机内存区域 java堆和方法区 回收什么样的内存区域 回收“已死”的对象(即不再使用的对象)占用的内存 怎么判断对象“已死” 引用计数法 做法:给对象中添加一个引用计数器,每当被引用时,计数器就加1;每当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。 使用:客观上,引用计数法实现简单,判断效率高,在很多情况下都是一个不错的算法...

2019-03-01 11:56:00 80

转载 Java内存区域和内存溢出异常

前言 对于java程序员来说,在虚拟机自动内存管理的机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出的问题,由虚拟机管理内存,这一切看起来都很美好。不过,也正是因为java程序员把内存控制的权利交给了java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一项艰难的工作。所以本篇博...

2019-02-26 20:25:00 109

转载 keepalived介绍

keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。 VRRP协议 VRRP全称 Virtual Router Redundan...

2019-02-23 13:04:00 123

转载 Nginx + Keepalived实现应用高可用负载均衡功能

说明:此处仅介绍Keepalived 实现nginx负载均衡器的高可用,关于nginx介绍和负载均衡实现可查看我的另两篇博文Nginx负载均衡和Nginx配置了解 应用背景:实现高可用,避免单点故障 技术实现:使用2台虚拟机通过Keepalived工具来实现 nginx 的高可用(High Avaiability),达到一台nginx入口服务器宕机,另一台备机自动接管服务的效...

2019-02-23 12:39:00 102

转载 Nginx配置了解

安装Nginx常用编译选项说明 nginx大部分常用模块,编译时./configure --help查看,以--without开头的都是默认安装。 --prefix=PATH    指定nginx的安装目录。默认 /usr/local/nginx --conf-path=PATH    设置nginx.conf配置文件的路径。nginx允许使用不...

2019-02-22 17:03:00 140

转载 Nginx实现负载均衡功能

一、什么是Nginx? Nginx是一款轻量级的Web 服务器、反向代理服务器、电子邮件(IMAP/POP3)代理服务器。 二、Nginx的优点: 高并发连接:官方测试Nginx能够支撑5万并发连接,实际测试可达到3万左右,每天可以处理亿次访问量;原因是:采用最新epoll(linux2.6内核)和kqueue(freebsd)网络I/O模型,而Apache采用的是传统的sel...

2019-02-22 15:08:00 72

转载 Spring MVC的文件上传和下载

简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的。Spring MVC 使用Apache Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。因此,Spring MVC的文件上传还需依赖Apache Commons FileUp...

2019-02-20 14:06:00 73

转载 Spring MVC深入学习

一、MVC思想 MVC思想简介:  MVC并不是java所特有的设计思想,也不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范;MVC思想将一个应用部分分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和可维护性; MVC特点: ...

2019-02-19 17:56:00 227

转载 Spring MVC入门

一、springMvc简介 springMvc是一个web层框架; 二、springMvc特点: springMvc拥有强大的灵活性、非侵入性和可配置性; springMvc拥有一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象; springMvc分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析,等等,每一...

2019-02-19 10:14:00 58

转载 RabbitMQ

前言: RabbitMQ擅长解决多系统、异构系统之间的数据交换(消息通知、通讯问题),也可以应用于系统间服务的相互调用(RPC)。 RabbitMQ简介: AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反...

2019-02-18 14:59:00 57

转载 git工具使用说明

一、什么是git? Git是分布式版本控制系统 概念: 工作区:就是你在电脑里能看到的目录; 暂存区:一般存放在(.git/index)中,所以我们把暂存区有时也叫作索引(index); 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库发布管理; 二、集中式vs分布式 集中式版本控制系统,版本...

2019-02-14 17:53:00 92

转载 单例模式(3)

简介: 单例模式是一种简单的设计模式,但是要在程序设计中使用好单例模式,却需要注意几个地方。 单例模式意味着在整个系统中,单例类只能有一个实例对象,且需要自行完成实例化,并始终对外提供同一个实例对象。 单例模式实现方式: 饿汉模式: public class Singleton { //饿汉模式是最简单的实现方式,在类加载时就创建单例类对象 privat...

2019-02-14 14:36:00 56

转载 数据结构学习前言(1)

数据结构分类: 线性结构: 数组、链表、栈、队列、哈希表... 树形结构: 二叉树、二分搜索树、AVL、红黑树、Treap、Splay、堆、Trie、线段树、K-D树、并查集、哈夫曼树... 图形结构: 邻接矩阵、邻接表... 数据结构使用: 根据应用的不同,灵活的选择合适的数据结构 计算机世界里数据结构的应用:数据库、操作系统、文件压缩 数据结构 + 算法 = 程序...

2019-02-13 09:12:00 47

转载 Mybatis框架基础支持层——日志模块(8)

前言: java开发中常用的日志框架有Log4j,Log4j2,Apache Commons Log,java.util.logging,slf4j等,这些工具对外的接口不尽相同。为了统一这些工具的接口,Mybatis定义了一套统一的日志接口供上层调用,并为上述日志框架提供了相应的适配器。 在Mybatis的日志模块中,使用了适配器模式。Mybatis调用其他日志模块时,使用了其内部...

2019-02-12 14:14:00 149

转载 适配器模式(2)

适配器模式的定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。 图解: A、B两个图框代表已经塑模成型的物体A和物体B,现在要求把A和B安装在一起使用,如何安装?两者的接口不一致,是不可能安装在一起使用的,那怎么办?引入一个物体C,如下: 引入物体C后,C适应了物体A的接口,同时也适应了物体B的接口,然后三者就可以组...

2019-01-31 10:27:00 57

转载 设计模式之6大设计原则(1)

单一职责原则(Single Responsibility Principle),简称SRP。 定义:一个类只负责一件事情; 说明:类的单一职责原则受多重因素制约,实际实现起来,需要考虑项目工期、成本、人员技术水平等 使用:接口一定要做到单一职责原则,类的设计尽量做到单一职责原则 扩展:单一职责原则同样适用于类中的方法,方法一定要职责分明,耦合最低处理 里氏替换原则: 定义:只...

2019-01-30 15:44:00 73

转载 Mybatis框架基础支持层——反射工具箱之MetaClass(7)

简介:MetaClass是Mybatis对类级别的元信息的封装和处理,通过与属性工具类的结合, 实现了对复杂表达式的解析,实现了获取指定描述信息的功能 public class MetaClass { private ReflectorFactory reflectorFactory; private Reflector reflector; ...

2019-01-29 14:26:00 89

转载 Mybatis框架基础支持层——反射工具箱之实体属性Property工具集(6)

本篇主要介绍mybatis反射工具中用到的三个属性工具类:PropertyTokenizer、PropertyNamer、PropertyCopier。 PropertyTokenizer: 主要用来解析Mybatis使用过程中遇到的类似"order[0].items[0].name"这种由"."和"[ ]"组成的表达式: public class PropertyTokeni...

2019-01-24 10:58:00 87

转载 Mybatis框架基础支持层——反射工具箱之对象工厂ObjectFactory&DefaultObjectFactory(5)...

ObjectFactory官方简介:MyBatis每次创建结果集对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。 ObjectFactory接口源码: public ...

2019-01-23 16:03:00 183

转载 Mybatis框架基础支持层——反射工具箱之泛型解析工具TypeParameterResolver(4)

简介:TypeParameterResolver是一个工具类,提供一系列的静态方法,去解析类中的字段、方法返回值、方法参数的类型。 在正式介绍TypeParameterResolver之前,先介绍一个JDK提供的接口Type,因为TypeParameterResolver的实现会涉及到它的实现;它是所有类型的父接口,在JDK实现中,Type接口拥有四个接口和一个实现类分别代表不同的数据...

2019-01-22 16:40:00 157

转载 java安全管理器SecurityManager介绍

java安全管理器类SecurityManager简单剖析: javadoc介绍: SecurityManager是一个允许应用实现一种安全策略的类。它允许一个应用去明确,在执行一个可能安全或者敏感的操作之前,此操作是否允许在一个安全的上下文中被执行。应用可以同意或者拒绝执行操作。 SecurityManager类包含许多以check开头命名的方法。java库中的各种方法在执行...

2019-01-21 16:08:00 161

转载 Mybatis框架基础支持层——反射工具箱之Reflector&ReflectorFactory(3)

说明:Reflector是Mybatis反射工具的基础,每个Reflector对应一个类,在Reflector中封装有该类的元信息, 以及基于类信息的一系列反射应用封装API public class Reflector { private static final String[] EMPTY_STRING_ARRAY = new String[0]; ...

2019-01-19 11:21:00 78

转载 Mybatis框架基础支持层——解析器模块(2)

解析器模块,核心类XPathParser /** * 封装了用于xml解析的类XPath、Document和EntityResolver */ public class XPathParser { /** * 将xml文件读入内存,并构建一棵树, * 通过树结构对各个节点node进行操作 */ private Doc...

2019-01-17 16:56:00 59

转载 Mybatis框架可视化(1)

Mybatis整体架构视图: 接 口 层 SqlSession (定义了Mybatis暴露给应用程序调用的API) 核 心 处 理 层 配置解析 (加载核心配置、映射配置、 mapper接口注解信息, 解析后形成的对象 保存至Configuration对象) 参数映射 SQL解析 (动态s...

2019-01-17 13:56:00 123

转载 JDK动态代理简单使用(2)

JDK动态代理使用: 使用JDK动态代理步骤:①创建被代理的接口和类; public interface IA { void f1(String param); } public class A implements IA { @Override public void f1(String param) { System...

2019-01-11 16:51:00 60

转载 代理(1)

什么是代理? 代理模式是指给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。这种模式有什么用呢?它可以在原对象的基础上增强原对象的功能,比如在原对象调用一个方法的前后进行日志、事务操作等。Spring AOP就使用了代理模式。 了解代理入口: 静态代理: 如何实现代理模式呢?首先来看静态代理。静态代理是指在程序运行前就已经存...

2019-01-11 16:43:00 45

转载 动态代理源码分析(3)

分析入口: Proxy类的newProxyInstance方法: @CallerSensitive public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, ...

2019-01-11 16:18:00 47

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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