摘要:
概述 MQ也即是Message Queue,翻译就是消息队列,那何为消息队列就是存放消息的队列,为什么需要一个队列来存放这些消息,为什么不直接发送呢?举个例子,如果一个服务正常可以支持tps是1000,现在突然请求量达到5000,怎么办,有可能直接把服务器访问崩溃了,这时如果使用消息队列,就可以先把 阅读全文
摘要:
概述 听到这个名字是不是很熟悉,没错这个名字就是文学家卡夫卡的英文,传说中国的王小波也被誉为东方的乔伊斯+卡夫卡,哈哈哈,当然这篇文章不是谈论文学家卡夫卡的,那为什么一个消息中间件叫kafka呢?很简单就是这个中间件的作者喜欢卡夫卡,所以就这么命名了,如果有一天你也写出来一个牛逼的软件,而且你也很喜 阅读全文
摘要:
概述 zookeeper,拆开来就是zoo keeper,翻译就是动物管理员,为什么这么命名呢?因为当时yahoo开发zookeeper的时候,已经开发很多其他的产品,都是以动物命名的,而zookeeper的作用就是要协调这些产品,所以最后就命名为了动物管理员。相信每个人都不陌生,无论是阿里的dub 阅读全文
摘要:
概述 克隆模式是一种比较简单的设计模式,基本从字面意思就可以明白这种设计模式是干什么的,简单来说就是造一个和原来一模一样的对象,就叫克隆模式。克隆模式分为两种,一种是浅度克隆,一种是深度克隆,至于这两者之前的区别,看下面的代码。 浅度克隆 实体类,没有特别的作用,作为原型对象(其实就是克隆对象,原型 阅读全文
摘要:
概述 提到单例模式,我们并不陌生,而且面试中也常常会问单例模式相关的问题,接下来就谈谈单例模式,这篇文章会回答如下几个问题: 什么是单例模式? 单例模式有几种实现方式,以及各种实现方式的优劣? 单例模式有什么用? 什么是单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。这是《设计模式》 阅读全文
摘要:
概述 平时工作中我们写程序不会刻意去思考这里是不是需要使用一下设计模式,而且很少关心这个东西,但是在一些工具框架中却大量使用设计模式,比如spring框架中就大量使用工厂模式,那问题来了,到底什么是设计模式?为什么要使用设计模式?,因为本文是设计模式系列的第一篇,所以需要回答上面两个问题,才可以向下 阅读全文
摘要:
概述 为了给企业提供一个完善的解决方案,spring已经做成了一个全家桶,去spring官网看一下,发现有springboot、springcloud、springsecurity、springframework...,spring包含的东西太多,但是我们常说的spring是什么呢?就是spring 阅读全文
摘要:
概述 反射在日常工作中用的并不多,最近在看spring源码,里面很多的bean的初始化和依赖注入中用到了很多的反射,下面介绍一下反射的基本知识。 获取类中的字段和修改字段的值 package com.demo.spring; import java.lang.reflect.Field; publi 阅读全文
摘要:
概述 java中的集合类应用非常广泛,而且性能也很好,所以,往往我们都不太注意他们的底层实现原理,但是面试中面试官很喜欢问这些集合类的底层实现原理,那问题来了,掌握这些原理有没有用?(当然这个有用是除了装*之外的^_^),举个例子来说,比如我知道ArrayList是线程不安全的,当多线程时会有问题, 阅读全文
摘要:
概述 在开发过程中,会有很多地方用到锁,比如多线程修改一个对象时,为了防止多个线程同时修改,会采用加锁的机制,还有数据库在多个线程修改同一条记录时,也会有读锁,写锁等,所有这些都为了解决一个问题,在并发情况修改同一个值的时候,如何可以保证这个值不出问题。举个简单的例子说明:比如淘宝上某款商品库存只剩 阅读全文