Zer0e's Blog

Zer0e's Blog

Facing the ideal and the reality.

回顾数据库事务隔离级别
前言对于数据库隔离级别,前前后后可能复习了好多遍,但是很经常就忘记,今天就简单整理下概念和实例,方便以后回顾。 正文什么是事务首先我们先明确事务是什么?为什么要有事务?事务(Transaction),其实就是一个操作序列,我们知道,操作数据库是什么一条条SQL语句来实现的,那么事务就是包含这些SQL操作的清单。至于为什么要有事务,是...
浅谈雪花算法
写在前面最近学习也有点陷入迷茫状态,不知道学些什么,也不知道写点什么。那就想起什么就写点啥,就当是重新学习。今天要来讲的是分布式系统中常用的一种算法,雪花算法。 正文什么是雪花算法雪花算法(snowflake),它是Twitter公司使用的在分布式系统中生成唯一ID的一个算法,在2014年开源。雪花算法是在高并发环境下生成为ID的...
谈谈设计模式
前言设计模式是提高代码可读性的途径之一,面对不同的场景选择不同的设计模式,可以提高代码可读性,提高代码的可重用性还有可扩展性。接下来就讲讲什么是设计模式。 正文何为设计模式设计模式是在面向对象语言中,思想都是一致的,而在面向过程语言,函数式编程的语言中讨论设计模式是没有意义的。所谓的设计模式,就是前面提到的,在面向对象编程中的一...
设计模式之组合模式
前言这篇是23种设计模式的最后一篇了,不知不觉整理了一个月,其实应该快点整理完,每天一到两篇文章虽然量不多,但是写的时候其实挺累人。言归正传,本文来讲最后一种设计模式,组合模式。 正文概念组合模式又称部分整体模式,它属于结构型模式,通常适用于有结构的系统,用于表示部分与整体层次。顺带一提,这里的有结构一般是树形结构。那这个模式他...
设计模式之享元模式
前言本文谈谈享元模式。 正文概念享元模式属于结构型模式,它主要是缓存重复的对象,以减少内存的消耗,这些相同的对象往往需要重复的使用,如果不对其进行缓存,可能会导致内存溢出。那享元模式一般配合工厂模式一起使用。常见的应用场景有Java中的String,在创建String时判断缓存池里是否有这个字符串,有的话直接返回,没有才进行创建。 ...
设计模式之构建模式
前言构建模式又称建造模式,建造者模式等等。本篇来简单谈谈这种设计模式。 正文概念构建模式(Builder Pattern),由于存在多种叫法,为了统一名称,统一写作Builder模式。它属于创建型模式,是使用一个个对象构建复杂对象的设计模式。它的意图在于拆分复杂对象,使得可以由子对象生成,子对象相对稳定,通过组合子对象来构造复杂...
ArrayList扩容之后内存地址会发生改变吗?
前言那标题的这个内容,是我在面试时候的一道问题。那这篇文章我们来讲讲ArrayList的扩充机制以及扩容之后会发生什么样的改变。 正文基础首先使用过Java的基本上都用过ArrayList,那它是一个数组队列,其实现了List接口,那ArrayList的底层是一个动态数组。我们来看看默认的构造器 123public ArrayLis...
浅谈Java内存模型
前言想写一篇文章,由于涉及到Java内存的知识,就先来写写前置知识。那本篇就来说说JVM的基础,Java内存区域与Java内存模式(JMM)。ps. 本篇基本上想到哪里说到哪里,并无什么先后顺序。 正文Java内存区域那我相信学习过JVM的同学基本上都知道JVM将运行时内存划分为几个区域。总体上可以分为两类:线程共享区域与线程私有区...
设计模式之访问者模式
前言本篇来讲讲行为型模式的最后一篇,访问者模式。 正文概念访问者模式,我们使用一个访问者类来访问数据对象,通常是为了不污染数据对象类,而实现的关键是在数据对象类中提供一个接待访问者的接口。那这种设计模式了除了不污染原类,很大一部分原因是为了将数据结构与操作相分离。 实现由于这种设计模式在开发中很少用,一般是在框架或者源码中才会使用到...
设计模式之模板方法模式
前言本篇聊聊模板方法模式。 正文概念模板方法模式属于行为型模式,它定义一个模板结构,然后让其子类去实现。其主要作用是提高代码的复用性,并且在不改变模板的情况下子类能重写方法。那这种设计模式就十分常见了,在父类中定义执行顺序,子类再去具体的去实现,这就是模板方法模式。 实现举个例子,比如我们平常去超市买东西,基本上分为几个步骤,拿...
avatar
Zer0e
耿直的现实主义者 / 喜爱安全的web狗 / 无情的bug制造机器