关闭
当前搜索:

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

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

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

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

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

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

Spring学习笔记(三)- Spring IoC容器启动源码分析

在上节Spring学习笔记(三)- Spring IoC容器分析 分析过,IoC过程主要分为两个阶段:IoC容器启动和依赖注入。本节内容我们重点就从源码的角度来分析这两个过程。一、IoC容器启动过程IoC容器启动是由refresh()方法来启动的,这个过程主要分为3个部分: 1. BeanDefinition的Resource定位 2. IoC容器载入和解析BeanDefinition 3....
阅读(44) 评论(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...
阅读(36) 评论(0)

AMQP简介与RabbitMQ代码实战

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

JMS简介与ActiveMQ实战

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 代理模式概述在我们的生活中,有很多普通而又可敬的建筑工人,他们自己有技术,却没有机会随便参与一个项目中去;这时候他们往往会去找也是搞建筑的包工头,包工头手上有很多活可以分派给工人去做。这个过程中包工头就相当于是代理类,主要就是接活; 建筑工人就相当于是被代理类,他们负责实际工作的完成。被代理类和代理类都要实现一个同样的接口;就像上述例子中包工头和建筑工人都要是搞建筑这一行的,这样就能保证包工头...
阅读(111) 评论(0)

Java技术常用的设计模式(一)--- 策略模式

Spring常用的设计模式(一)1 策略模式1 策略模式策略模式是用来封装变化的。同一个功能可由多个算法进行实现(或代码,不同的业务使用不同的处理方式)。 当不同的行为都放在一个类中的时候,就需要使用条件语句if-else-switch来进行选择。但是策略模式是可以将这些不同的行为封装在独立的Strategy类中,再编写一个Context类来选择对Strategy对象的引用。这样就可以根据客户端的...
阅读(200) 评论(0)

JVM(二)—堆内存分析及对象的创建过程

JVM(二)—堆内存分析及对象的创建过程 1 堆内存 堆内存(Java Heap)是Java虚拟机管理的内存中最大的一块,被所有线程所共享。虚拟机启动时创建,存放对象实例和数组。  Java堆中可以细分为:新生代和老年代。  新生代:-Xmn 由Eden区和Survivor区组成,比例是8:1,可通过-XX:SurvivorRatio = 8设置。新生对象一般在Ede...
阅读(136) 评论(0)

JVM(一)—Java内存模型

JVM(一)—Java内存模型 Java虚拟机内存包括如下几个运行时数据区域: (图片来源:http://www.importnew.com/23792.html) 程序计数器虚拟机栈本地方法栈堆方法区 1 程序计数器—线程私有 程序计数器是当前线程执行的字节码的行号指示器。  程序计数器占用一块较小的内存,线程私有。 为什么需要 程序计数...
阅读(124) 评论(0)

二叉树遍历

二叉树遍历二叉树定义:class TreeNode{ int val;//结点的值 TreeNode left;//左结点 TreeNode right;//右结点 public TreeNode(int val){ this.val = val; } }前序遍历前序遍历是先打印根结点值,再...
阅读(147) 评论(0)

Spring Session解决分布式Session问题的实现原理

转载:http://blog.csdn.net/xlgen157387/article/details/60321984 上一篇: 使用Spring Session和Redis解决分布式Session跨域共享问题 :  http://blog.csdn.net/xlgen157387/article/details/57406162 上一篇介绍了如何使用spring...
阅读(340) 评论(0)

反射机制

什么是反射机制 反射就是在运行时,动态获取类的接口,成员,方法和构造器等信息。根据这些动态获取到的信息来创建对象、访问/修改成员、调用方法等。 获取Class对象 当我们编写的类生成的字节码文件中的二进制字节流被类加载器加载到内存当中时,会在方法区产生一个Class对象,作为访问这些类信息的入口。  假如我们编写一个Person类,获取Class对象一般有3种方...
阅读(133) 评论(0)

如何掌握所有的程序语言---By王垠

神才王垠关于编程语言学习方法的介绍,不知道王垠的可以自行百度。对他的评价也是褒贬不一,在此只是献上我的膝盖再次膜拜下。 下面是其所述: 如何掌握所有的程序语言 对的,我这里要讲的不是如何掌握一种程序语言,而是所有的…… 很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言...
阅读(204) 评论(0)

Spring AOP-1 Spring AOP入门

什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程)。 在我们的代码中,像日志,事务,安全等模块会散步在很多的业务代码中,这些模块称为“横切关注点”。 横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。 这些横切关注点与业务代码的核心功能无关,但是却大量存在,导致了大量代码的重复。 AOP的作用在于分离...
阅读(112) 评论(0)
195条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:166350次
    • 积分:3032
    • 等级:
    • 排名:第13018名
    • 原创:185篇
    • 转载:10篇
    • 译文:0篇
    • 评论:159条
    联系方式
    最新评论