关闭
当前搜索:

[置顶] JVM(三)—垃圾回收算法及垃圾收集器

JVM(三)—垃圾回收算法及垃圾收集器 一、哪些内存需要回收 垃圾收集器主要回收堆内存和方法区的对象。 程序计数器、虚拟机栈、本地方法栈3个区域是线程私有的,随线程而生,随线程而灭。所以方法结束或者线程结束时,内存自然就被回收了。Java堆和方法区中只有在运行时才知道创建哪些对象,所以内存的分配和回收都是动态的。堆区回收的主要是死亡的对象;  方法区回收的主要是废弃的常...
阅读(268) 评论(0)

[置顶] Redis应用3-基于Redis消息队列实现的异步操作

Redis实现消息队列的模式常用的消息队列有RabbitMQ, ActiveMQ, Kafka等,这都是开源的功能强大的消息队列,适合于在企业项目应用。Redis实现的消息队列代码原理 Redis提供了两种方式来作消息队列。 一个是使用生产者消费模式模式, 另一个就是发布订阅者模式。 前者会让一个或者多个客户端监听消息队列,一旦消息到达,消费者马上消费,谁先抢到算谁的,如果队列...
阅读(3302) 评论(0)

[置顶] Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且...
阅读(107762) 评论(133)

Spring原理与源码分析系列(五)- Spring IoC源码分析(下)

0 前言 IoC容器主要分为两个阶段:IoC容器启动和依赖注入。 在上节 Spring原理与源码分析系列(四)- Spring IoC源码分析(上) 我们已经从源码的角度分析了IoC容器的启动过程,本篇将要讲述依赖注入过程的源码分析。 二、IoC容器的依赖注入 在IoC容器的初始化完成后,就已经在容器内建立了BeanDefinition数据映射。 接下来就需要开始依赖注入了...
阅读(74) 评论(0)

Spring原理与源码分析系列(四)- Spring IoC源码分析(上)

0 前言 在上节 Spring原理与源码分析系列(三)- Spring IoC容器启动过程分析(下) 我们已经介绍过,IoC容器主要分为两个阶段:IoC容器启动和依赖注入。 本节内容我们重点将从源码的角度来分析这两个过程,本篇(上)主要分析IoC容器启动过程,而依赖注入部分将放在(下)去分析。 一、IoC容器启动过程 IoC容器启动是由refresh()方法来启动的,这个过程主要分为3个部...
阅读(78) 评论(0)

Spring原理与源码分析系列(三)- Spring IoC容器启动过程分析(下)

0 前言 关于Spring容器启动过程的分析,本章节文章分为两篇文章进行叙述,第一篇主要介绍Spring中Bean的相关概念以及IoC容器类型;第二篇开始详细介绍IoC容器的启动过程。 上篇Spring原理与源码分析系列(二)- Spring IoC容器启动过程分析(上)已经介绍了介绍Spring中Bean的相关概念以及IoC容器类型。本篇主要详述IoC容器的启动过程。 四、Spring...
阅读(43) 评论(0)

Spring原理与源码分析系列(二)- Spring IoC容器启动过程分析(上)

0 前言 Spring的IoC容器是一个提供IoC支持的轻量级容器。 Spring提供了两种容器:BeanFactory和ApplicationContext。 两者的继承关系图如下: BeanFactory:基本的IoC容器,默认采用延迟初始化策略(lazy-load),即只有当客户端对象需要访问容器中某个bean对象的时候,才会对该bean对象进行初始化以及依赖注入操作。 所...
阅读(56) 评论(0)

Spring原理与源码分析系列(一)- Spring IoC入门

一、Spring简介 什么是Spring 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程AOP:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring包含并管理应用中对象的生命周期和配置 MVC框架: Spring-MVC 事务管理:S...
阅读(90) 评论(0)

Spring Data JPA简介与实战

1 Spring Data : Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据库的访问变得方便快捷。 SpringData 项目所支持 NoSQL 存储: -MongoDB (文档数据库) -Neo4j(图形数据库) -Redis(键/值存储) -Hbase(列族数据库) SpringData 项目所支持的关系数据存储技术: -JDBC -JPA...
阅读(151) 评论(0)

JPA简介与实战

JPA:Java Persistence API,Java持久层API。是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 类似于JDBC,JPA是一组规范(接口),使应用程序以统一方式访问持久层。 JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范....
阅读(86) 评论(0)

Spring Boot学习笔记:(三)Web开发(Thymeleaf)

Web开发是项目开发中至关重要的一部分,Web开发的核心内容主要包括内嵌Servlet容器和Spring MVC。一、 Spring Boot的Web开发支持在上节中提到的Starter Poms中提到了spring-boot-starter-web,对于Web开发,这个starter pom提供了嵌入的Tomcat以及SpringMVC依赖。关于Web相关的自动配置存储在spring-boot-...
阅读(187) 评论(0)

Spring Boot学习笔记:(二)常规属性配置

一、依赖注入Spring Boot中,可使用@PropertySource指明属性文件所在的位置(默认为application.properties,不需要声明),通过@Value注入值。 (1)application.properties:person.name=wgs person.age=25(2)入口类:package com.wgs;import org.springframework....
阅读(158) 评论(0)

Spring Boot学习笔记:(一)简介与HelloWorld搭建

Spring Boot学习笔记:(一)简介与HelloWorld搭建一、什么是Spring Boot在使用Spring开发的时候,有很多缺点: 配置繁多 开发效率低下 部署流程复杂 第三方技术集成难度大 而Spring Boot使用“习惯优于配置”的理念,可以快速搭建项目,简化Spring配置。本质上来说,Spring Boot就是Spring,使用Spring Boot可以很快创建一个独立运行(运...
阅读(155) 评论(0)

Intellij IDEA + Gradle 搭建Spring源代码环境

目的如何在Intellij IDEA中利用Gradle 搭建Spring源代码环境。步骤1 下载Spring源码首先需要在电脑上安装git客户端,然后任意一个地方新建文件夹,使用git下载Spring源码。git clone git://github.com/SpringSource/Spring-framework.git下载完成后,就可以看到有如下代码结构: 2 下载Gradle到Gradle...
阅读(290) 评论(0)

AMQP简介与RabbitMQ代码实战

AMQP简介AMQP(Advanced Message Queuing Protocol),高级消息队列协议。一个提供统一消息服务的应用层标准高级消息队列协议,面向消息的中间件设计。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。相比较于JMS规范,AMQP有以下优势: 1. JMS定义的是API规范,而AMQP定义了线路层的协议。即JMS实现所发送的消息...
阅读(227) 评论(0)

JMS简介与ActiveMQ实战

JMS简介与ActiveMQ实战一、异步通信之前接触到的RMI,Hessian等技术都是同步通信机制。当客户端调用远程方法时,客户端必须等到远程方法完成后,才能继续执行。这段时间客户端一直会被阻塞(这样造成的用户体验很不好)。 (同步通信)同步通信有并不是程序之间交互的唯一方式,异步通信机制中,客户端不需要等待服务处理消息,可以继续执行,并且最终能够收到并处理消息。 (异步通信)异步通信...
阅读(259) 评论(0)

Java技术常用设计模式(八)--- 适配器模式

1 适配器模式概述适配器模式 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 什么时候用到? 系统开发中因不同的开发人员、不同的产品、不同的厂家的开发造成功能类似而接口不同的情况,需要用适配器模式适配。即当我们需要使用一个类,但是这个类可能不符合我们的需求时就需要使用适配器模式。 好处 1) 将目标类和适配者类解耦...
阅读(233) 评论(0)

Java技术常用设计模式(七)--- 装饰模式

1 装饰模式概述装饰模式 装饰模式动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生产子类更加灵活。 什么时候用到? 当系统需要新的功能时,需要向旧的类中添加新的代码(装饰代码)。但是这样增加了主类的复杂度,而且这些新加的代码可能仅仅是为了在某些特定的情况下才会执行的代码。如果子类不适合扩展,或扩展功能需要的子类太多,可以使用装饰模式来组合对象。 而这时候就需要装饰...
阅读(176) 评论(0)

Java技术常用设计模式(六)--- 职责链模式

1 职责链模式概述 职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为之。 好处 降低耦合度。 接受者和发送者都没有对方的明确信息。链中的对象只要保持一个指向后继者的引用,而不需要保持对链中所有接受者的引用,可以大大解耦。 同时,发送者只需要把请求传递给链即可,而不需要关心具体...
阅读(130) 评论(0)

Java技术常用设计模式(五)--- 观察者模式

1 观察者模式概述观察者模式又叫做发布-订阅模式。 观察者模式定义了一对多的依赖关系,让多个观察者对象监听同一个主题。当主题状态发生变化的时候,就会通知所有观察者对象,使对象能够自动更新自己。 什么时候用到? 当一个对象的改变需要 同时改变其他对象的时候,且不知道有多少对象需要被改变的时候。 好处 将一个系统分割成一系列相互协作的类需要维护对象之间的一致性,且这些对象之间可能是紧密耦合的...
阅读(283) 评论(0)

Java技术常用设计模式(四)--- 工厂模式

一、简单工厂模式1 简单工厂模式概述简单工厂模式即指定一个模子,模子中定义一些方法,方法由具体的类去实现。而工厂类负责创建具体的类的对象实例。2 简单工厂模式结构图组成: Product:抽象产品类,定义了产品的通用属性,相当于模子,它定义了一些功能由子类去实现; ConcreteProduct:具体产品角色,实现了抽象产品类中的功能; SimpleFactory:工厂模式类,负责创建具体 的...
阅读(227) 评论(0)

Java技术常用设计模式(三)--- 模板方法模式

1 模板方法模式概述模板方法核心就是定义整体的逻辑,具体实现可由子类去实现;将一些不变的行为放到抽象类中,这样就能去除子类中不断重复代码的现象,提供了很好的代码复用的实现方式。 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2 模板方法模式结构图组成: 抽象模板(AbstractClass):定义了完整的框...
阅读(238) 评论(0)

Java技术常用设计模式(二)--- 代理模式

1 代理模式概述在我们的生活中,有很多普通而又可敬的建筑工人,他们自己有技术,却没有机会随便参与一个项目中去;这时候他们往往会去找也是搞建筑的包工头,包工头手上有很多活可以分派给工人去做。这个过程中包工头就相当于是代理类,主要就是接活; 建筑工人就相当于是被代理类,他们负责实际工作的完成。被代理类和代理类都要实现一个同样的接口;就像上述例子中包工头和建筑工人都要是搞建筑这一行的,这样就能保证包工头...
阅读(160) 评论(0)
204条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:234267次
    • 积分:3433
    • 等级:
    • 排名:第11588名
    • 原创:194篇
    • 转载:10篇
    • 译文:0篇
    • 评论:174条
    联系方式
    博客专栏
    最新评论
    微博分享