自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 SOA架构和微服务架构的区别

1.SOA架构和微服务架构的区别首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服...

2019-08-29 17:59:18 353

转载 图解Java数据结构之队列

本篇文章,将对队列进行一个深入的解析。使用场景队列在日常生活中十分常见,例如:银行排队办理业务、食堂排队打饭等等,这些都是队列的应用。那么队列有什么特点呢?我们知道排队的原则就是先来后到,排在前面的人就可以优先办理业务,那么队列也一样,队列遵循先进先出的原则。队列介绍刚才通过生活中的例子大致了解了一下队列,那么从数据结构的角度来讲,队列到底是什么呢?1.队列是一个有序列表,可以用...

2019-08-28 16:41:46 148

原创 MongoDB简介

https://www.mongodb.com/MongoDB是一个通用的、基于文档的、分布式的数据库,适用于现代应用开发、云时代的的相关开发工作。它被数百万的开发者所使用,去完成世界上最具创新性的产品和服务。作为一个编码者,考虑面向对象,现在数据库也如此MongoDB是一个文档数据库,它存储类似于JSON格式的文档。这是考虑数据最自然的方式,比传统的行/列模式更具有表现力,更加强...

2019-08-23 11:14:56 378

转载 redis和memcached的区别

Redis 和 Memcache 都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务;Redis是一个开源的key-value存储系统。与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希 表、链表、等数据类型的相关操作。下面我们来进行来看一下redis和memcached的区别。权威比较Redis的作者Salvatore S...

2019-08-22 15:24:19 139

原创 Memcached缓存简介

https://memcached.org/Memcached简介Memcached是一款开源、高性能、分布式的内存对象缓存系统,目的是通过缓解数据库负载来提高动态web应用的响应速度。Memcached是将来自于数据库调用、API调用、页面翻页需要呈现的任意(字符串、对象)数据以键值对的形式,存放在内存中。Memcached非常小巧却也非常强大,它的简单设计促进了快速部署、易于开发,...

2019-08-19 18:02:38 231

原创 Java反射机制

Java反射机制简介JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。使用反射机制能够在运行时构造一个类的对象、判断一个类所具有的成员变量和方法、调用一个对象...

2019-08-19 14:26:39 166

原创 Java动态代理(jdk自带的与cglib的区别)

代理分为两种:静态代理、动态代理静态代理:代理类是程序员创建或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在。设计模式中的代理模式使用的就是静态代理。动态代理:有2种实现方式,一种是使用JDK的反射机制生成代理;另一种是cglib来生成代理。动态代理可以在程序运行期间根据需要动态的创建代理类及其实例,来完成具体的功能。设计模式中的代理模式首先,介绍...

2019-08-16 18:06:41 623

转载 JAVA热部署原理

1、热部署是什么?对于Java应用程序来说,热部署就是在运行时更新Java类文件。2、热部署有什么用?可以不重启应用的情况下,更新应用。举个例子,就像电脑可以在不重启的情况下,更换U盘。OSGI也正是因为它的模块化和热部署,才显得热门。3、热部署的原理是什么?想要知道热部署的原理,必须要了解java类的加载过程。一个java类文件到虚拟机里的对象,要经过如下过程。首...

2019-08-15 17:39:36 1042 1

转载 java中的ClassLoader详解

ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j...

2019-08-15 16:28:00 205

转载 Java集合:HashMap底层实现和原理(源码解析)

Note:文章的内容基于JDK1.7进行分析。1.8做的改动文章末尾进行讲解。一、先来熟悉一下我们常用的HashMap:1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。HashMap是线程不安全的。...

2019-08-15 11:11:51 153

转载 乐观锁和悲观锁及使用场景

悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...

2019-08-13 22:16:43 2251

转载 数据库分库分表思路

一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存...

2019-08-13 00:11:49 228

转载 Hibernate一级缓存和二级缓存详解

一、一级缓存二级缓存的概念解释(1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再去连数据库,取数据;(2)二级缓存就是SessionFactory级别的缓存,顾名思义,就是查询的时候会把查询结果缓存到...

2019-08-10 16:18:59 490

转载 MyBatis中#{}和${}的区别详解

先给大家介绍下MyBatis中#{}和${}的区别,具体介绍如下:1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".2. $将传入的数据直接显示生成在sql中。如:order by $u...

2019-08-10 13:39:11 611

转载 Java 设计模式 装饰者模式

装饰者模式定义: 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。在设计的时候,往往要给一个对象的功能进行一些修饰,对功能进行拓展和增强,以满足我们的需求。案例分析:举个例子,最近流行歌曲比赛,什么《中国好声音》,《中国好歌曲》什么的,对于一个参赛者而言,就是唱歌,定义类如下:public class Co...

2019-08-09 11:53:48 141

转载 MyBatis的二级缓存的设计原理

MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。本文将全面分析MyBatis的二级缓存的设计原理。1.MyBatis的缓存机制整体设计以及二级缓存的工作模式如上图所示,当开一个会话时,一个SqlSession对象会使用一个Executor对象来完成会话操作,MyBatis的二级缓存机制的关键就是对这个Executor对象做文章...

2019-08-09 11:06:07 456

转载 MyBatis的一级缓存实现详解 及使用注意事项

0.写在前面MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项。读完本...

2019-08-09 10:44:20 196

转载 Servlet的工作原理+Servlet的生命周期+Servlet线程安全

Servlet的工作原理首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。在Servlet接口和GenericServlet中是没doGet,doPost等等这些方法的,HttpServlet中定义...

2019-08-08 13:44:48 427

转载 jsp与servlet的区别关系

浏览器发送请求给Tomcat容器--读取JSP--jsp转Java--java转class--调用service方法判断客户端请求方式并进行doGet/doPost业务逻辑处理--返回HTML响应--返回结果给浏览器--浏览器显示结果1.JSP的本质是Servlet,JVM只能识别Java的类,不能识别jsp的代码,Web容器将jsp代码编译成JVM能够识别的java类。2.jsp更...

2019-08-08 10:16:34 998

转载 HTTP缓存机制

Web 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。浏览器缓存也包含很多内容: HTTP 缓存、indexDB、cookie、localstorage 等等。这里我们只讨论 HTTP 缓存相关内容。在具体了解 HTTP 缓存之前先来明确几个术语:缓存命中率:从缓存中得到数据的请求数与所有请求数的比率。理想状态是越高越好。 过期内容:超过设置...

2019-08-07 22:01:14 173

转载 HTTP协议详解

一、概念协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过...

2019-08-07 17:43:12 421

转载 SpringMVC实现原理及详解

1、Spring mvc介绍SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。2、SpringMVC使用需要在web.xml中配置DispatcherServlet。并且需要配置spring监听器Context...

2019-08-06 15:23:02 485

空空如也

空空如也

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

TA关注的人

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