在Mac上使用Homebrew安装的MySQL 5.6和MySQL 5.7之间切换 背景 当按项目切换MySQL版本时,我用Homebrew安装的。我通常使用RubyMine...
Vimium是效率与装逼兼具,极客上网的不二选择, 当你能熟练的使用时,你就会对他爱不释手,我也是用熟练之后才发现是vimium如此的好用和舒服.接下来我就介绍一下Vimiu...
大家都知道OAuth 2.0 有四种不同的grant type,分不同的业务场景来使用,我在前面的一篇文章也有粗略讲过 微服务架构学习笔记之一认证和授权 - 大概怎么去按照不...
@天天向上卡索 认证和授权都是在授权服务器那里。网关只是校验token
微服务架构学习笔记之一认证和授权我们在搭建微服务的时候,常常需要考虑的一个问题是,微服务之间以及你的应用和微服务之间是怎么信任对方的。 这个时候我们会谈到两个概念,认证(authentication)和授权...
我们在搭建微服务的时候,常常需要考虑的一个问题是,微服务之间以及你的应用和微服务之间是怎么信任对方的。 这个时候我们会谈到两个概念,认证(authentication)和授权...
Guava在很多项目都已经使用过了,最近有点时间,于是重读了下github上的user guidance,然后结合自己的使用经验将常用的一些知识点做一个整理。 怎么使用nul...
Java的内存分布 在JVM中,内存是按照分代进行组织的。 其中,堆内存分为年轻代和年老代,非堆内存主要是Permanent区域,主要用于存储一些类的元数据,常量池等信息。而...
从上一篇文章中我们已经知道了NameNode和Secondary NameNode的职责,这篇文章我们主要讲讲我们怎么往DataNode上写数据和读数据。 DataNode的...
前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系。很多人都认为,Secondary NameNode是Name...
使用泛型的目的 当我们第一次接触泛型时,第一个问题肯定会是,为什么要使用泛型?最直接的答案是为了避免转型,使得编译器能够在编译期就发现转型错误而不用等到运行时。 比如说,当我...
在Java中,我们都知道关键字synchronized可以用于实现线程间的互斥,但我们却常常忘记了它还有另外一个作用,那就是确保变量在内存的可见性 - 即当读写两个线程同时访...
前言 相比于前面三种垃圾收集算法,引用计数算法算是实现最简单的了,它只需要一个简单的递归即可实现。现代编程语言比如Lisp,Python,Ruby等的垃圾收集算法采用的就是引...
前言 半区复制算法的目的也是为了更好的缓解内存碎片问题。对比于标记-压缩算法, 它不需要遍历堆内存那么多次,节约了时间,但是它也带来了一个主要的缺点,那就是相比于标记-清除和...
我不了解智能指针,但是关于内存的分配比如说通过new操作,它们一般会在内存不足的时候触发垃圾回收。这个应该是两码事。
标记-清除算法前言 垃圾自动回收机制的出现使编程更加的简单,使得我们不需要再去考虑内存分配和释放的问题,而是更加的专注在我们产品功能的实现上。但是我们还是需要花时间去了解下垃圾收集机制是怎...
前言 内存碎片一直是非移动垃圾回收器(指在垃圾回收时不进行对象的移动)的一个问题,比如说在前面的标记-清除垃圾回收器就有这样的问题。而标记-压缩垃圾回收算法能够有效的缓解这一...
前言 垃圾自动回收机制的出现使编程更加的简单,使得我们不需要再去考虑内存分配和释放的问题,而是更加的专注在我们产品功能的实现上。但是我们还是需要花时间去了解下垃圾收集机制是怎...