10余年开发架构经验,同时乐于技术分享!
通过前面的介绍我们了解了对象创建和销毁的过程。那么JVM中垃圾收集器具体对对象回收采用的是什么算法呢?本文主要记录下JVM中垃圾收集的几种算法。
pringMVC教程6[Restful和拦截器]
SpringMVC教程4[服务器端校验]
Java桥接模式(bridge)
文章目录 适配器模式 什么是适配器模式 模式中的角色 适配器的实现方式 1.类适配器方式 2.对象适配器方式 工作中的场景
在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通过负载均衡服务器去调度,但是我们并不能很快速的获知哪台服务器挂掉了,这时我们就可以使用zookeeper来解决这个问题。
Zookeeper04之javaAPI的使用
Zookeeper03之客户端命令操作
Zookeeper02之集群环境搭建
zookeeper是我们在开发中经常使用的一个分布式协调组件。功能很强大。所以打算将zookeeper的相关内容写下来分享给大家。内容会比较多,所以会分几篇介绍~
在现实生活中如果我们需要制造一个比较复杂的东西,比如手机,台式电脑,或者汽车等。如果我们要制造一台电脑的话我们会先将电脑所需的各个部件买回来然后在组装起来成为一台电脑。这里电脑所需的各个组件比如显示器,CPU,硬盘等等都是由不同的厂商生产的,然后被我们不同的组合而成了不同的产品。这是现实生活中和建造者模式类似的场景,而在程序中也一样有些情况下我们需要创建比较复杂的对象,在这种场景下我们可以通过建造者模式来实现,
事务的隔离级别 事务隔离级别指的是一个事务对数据的修改与另一个并行的事务的隔离程度,当多个事务同时访问相同数据时,如果没有采取必要的隔离机制,就可能发生以下问题:
Spring中的7个事务传播行为: 事务行为 说明 PROPAGATION_REQUIRED 支持当前事务,假设当前没有事务。就新建一个事务 PROPAGATION_SUPPORTS 支持当前事务,假设当前没有事务,就以非事务方式运行 PROPAGATION_MANDATORY 支持当前事务,假设当前没有事务,就抛出异常 PROPAGATION_REQUIRES_NEW 新建事务,假设当前存在事务。把当前事务挂起 PROPAGATION_NOT_SUPPORTED 以非事务方式运行操作。假设当前存在事务,就把当前事务挂起
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式,工厂模式在Java程序中可以说是随处可见。本文来给大家详细介绍下工厂模式
1 setConfigLocations主要工作有两个:创建环境对象ConfigurableEnvironment 、处理ClassPathXmlApplicationContext传入的字符串中的占位符; 2 环境对象ConfigurableEnvironment中包含了当前JVM的profile配置信息、环境变量、 Java进程变量; 3 处理占位符的关键是ConfigurableEnvironment、PropertyResolver、PropertyPlaceholderHelper之间的配合
前面给大家介绍了Spring中的IOC和AOP。本文开始带大家解读下Spring容器加载的过程。我们使用的Spring的版本是4.3.3.RELEASE Spring加载流程源码分析03【refresh】 Spring加载流程源码分析02【setConfigLocations】
在前面的文章介绍了对象在虚拟机中的创建过程。本文主要是记录下对象在虚拟机中的内存布局分配情况。
单例模式应该是我们接触的众多设计模式中的第一个,但是对于单例模式的一些细节地方对于初学者来说并不是很清楚,所以本文就来整理下单例模式。
作为java程序员对应Object应该是非常熟悉的,但是对于对象在JVM中的一些情况并不是很清楚,所以本文就来记录下对象在JVM中的一些内容
prototype模式也就是原型模式,是javaGOF23种设计模式中的一种,我们在学习spring的时候在bean标签的学习中碰到过,所以本文来给大家介绍下原型模式
Java观察者模式(Observer)
前面文章介绍了ActiveMQ的相关内容,本文介绍ActiveMQ和Spring的整合开发
上篇文章中详细介绍了ActiveMQ。本文继续介绍ActiveMQ的具体操作
ActiveMQ介绍及安装
在前面的文章给大家详细的介绍了Redis各种知识点,本文主要给大家介绍下java程序怎么操作Redis数据。
本文记录下微服务设计的四个原则
最近打算将java虚拟机的相关知识点整理出来。本文先介绍下java虚拟机运行时分配的各个区域的作用
前面文章介绍了Redis的主从复制,虽然该模式能够在一定程度上提高系统的稳定性,但是在数据访问量比较大的情况下,单个master应付起来还是比较吃力的,这时我们可以考虑将redis集群部署,本文就来重点给大家介绍下Redis的集群部署操作。
Redis集群环境Ruby必须版本2.2以上解决
上篇文章给大家介绍了Redis的主从复制,但是并没有介绍完整,本文继续主从复制的介绍
前面的两篇文章给大家介绍了Redis的两种持久化方式RDB和AOF,两种方式各有各的优缺点,本文给大家介绍Redis的主从复制,算是Redis的第三种持久化方式。
在上篇文章中介绍了快照持久化,对于它的优缺点大家也有所有了解了。本文主要介绍redis持久化中的另一种方式AOP(Append only file)持久化
通过前面文章的介绍,大家对于redis的基本操作应该比较了解了。本文主要介绍下redis持久化方式中的快照持久化
redis是NOSQL数据库,所以也存在事务,只是此事务和关系型数据库的事务是有区别的。
之前几篇文章给大家介绍了redis的五种数据类型及相关的命令,本文介绍redis中比较简单的发布订阅
上文中介绍了Redis中的Set集合,Set集合是无序的不可重复的。而我们本文要介绍的ZSet其实是在Set的基础上绑定了一个score来实现集合数据按照score排序的集合。 Redis教程07(Set集合介绍) 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。
上文介绍的list列表是有序集合,可以保存重复记录,在Redis中的Set集合是无序的,不可以存储重复记录的。本文主要介绍Set集合中的常用命令
在上文中介绍了Hash类型的数据相关的命令,本文介绍下List列表相关的命令 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
前面几篇文章给大家介绍了String的常用命令,本篇主要介绍下Hash的常用命令 在实际开发过程中我们肯定会碰到很多需要存储对象的需求,此时hash就比较合适了。hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
在上篇文章中介绍了String类型中常用的命令,但没有涉及到bit相关的命令,本文主要介绍下bit相关的操作命令。开发中有时这些命令的使用会更优效率。
本文给大家介绍下Redis中的五大数据类型 Redis中的数据都是key/value对,这里的数据类型指的是value的值的类型
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,是我们在开发中使用频率比较高的一个组件。本文主要讲解Redis的安装,后续文章会介绍其相关的知识点。
linux系统中对于开发人员来说,jdk是非常基本的环境,本文记录下jdk的安装。便于小伙伴查阅
我们在学习及开发中的环境基本都是多个节点,所以我们肯定是需要每个几点的ip是固定的,而且学习的时候我们也希望当我们从学校回到宿舍或者去到小伙伴那的时候节点的ip也不会改变,所以本文我们就来介绍下NAT静态ip的配置方式(基于centOS6.5)。
在程序猿的世界里肯定是离开开Linux环境的,而centOS这个发行版则是我们比较常接触的版本,所以本文就给大家来介绍下centOS6.5的安装。
在window系统中通过VMWare安装Linux系统我们需要在window系统中开启虚拟化技术,如果不开启,我们在启动的时候会报错。如图。
Git常用命令整理
在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。 比如我在开发中接到一个404 bug时候,我们可以创建一个404分支来修复它,但是,当前的dev分支上的工作还没有提交。比如如下:
所谓的分支管理其实就是就是同时可以有多条时间线在执行,最终合并为一个点,有点类似于多线程操作,这也正是git有别于其他版本控制软件的地方。
git是一个分布式版本控制系统,虽然远程仓库不是必须的,但是我们在开发过程中为了便于团队协同开发,所以我们还是会搭建一个远程仓库,本文我们将使用github作为我们的远程仓库来操作。GitHub是一个为git提供托管服务的服务器,我们只需要注册一个GitHub账号即可使用