YOU'VE MADE A BRAVE DECISION, WELCOME.

每一个不曾起舞的日子都是对生命的辜负。

简述前段时间发现博客中的图片外链全都失效了,原因是使用的七牛云的测试域名被收回,然而打开控制平台发现图片无法直接下载,参考网上的博客成功找回,于是便记录下来。 具体找回步骤下载小工具首先需要下载七牛云提供的一个小工具 qrsctl,我下载的是 windows版本,链接中包含教程和具体的用法。 下载完成后的文件名为:qrsctl-v3.2.20170501,最好放在一个新建的文件夹中操作。 登录下载完成后,需要登录。打开cmd,进入到指定

Read More...


适配器模式定义将一个类的接口转换为另一个接口,以满足特定场景的需要。举个栗子,比如三孔插头通过一个转换头转换为两孔插头;比如通过转接线将普通耳机接口转换为苹果方孔耳机接口等。 适配器模式允许通常因为接口不兼容而不能在一起工作的类相互配合完成工作。 适配器模式类图 可以看到适配器模式包含以下角色: Target:目标接口,即用户所需的接口。 Adaptee:适配者类,即被适配的角色,是一个已经存在的接口,其中有用户需要的方法。 Ad

Read More...


上一篇文章多线程经典实例(一) 讲到了几个多线程相关的例子,接下来我们来看一个经典的案例:生产者消费者问题。 介绍生产者消费者问题是多线程中的一个经典问题,问题大概就是有一块缓冲区作为仓库,当仓库未满时生产者可以将产品放入仓库,当仓库未空时消费者可以从仓库取走产品。解决这个问题的核心就是处理好多线程之间的同步与协作。 生产者消费者的实现方式通常有以下几种方式来实现生产者与消费者模型: BlockingQueue 阻塞队列 wait()

Read More...


在多线程的学习当中,有许多经典的例子值得学习,比如售票窗口、线程交替执行、生产者消费者等。下面就来看两个有关线程交替执行的案例。 两个线程轮流打印数字这里采用 wait/notify 等待通知和 Lock/Condition 两种方式实现。 wait()/notify()实现简单介绍一下wait/notify机制的几个方法。以下4个方法都必须在获取了锁的情况下才能调用: wait(): 使当前线程进入阻塞等待状态,直到被唤醒或中断;

Read More...


ThreadLocal的简介ThreadLocal称为线程局部变量。在每个线程中都有自己独立的ThreadLocal变量。每个线程中可有多个threadLocal变量。 ThreadLocal的用法12345678910111213141516171819202122232425262728public class ThreadLocalDemo { private static ThreadLocal<Integ

Read More...


介绍我们知道JDK动态代理只能代理实现了接口的类,没有实现接口的类是无法通过JDK来代理的。 Cglib是针对类来实现代理的,它的原理是对指定的目标类生成一个子类,这个子类覆盖目标类的方法并在其中实现方法的增强。因为采用了继承和重写,因此不能对final的类、final方法进行代理。 Cglib底层其实是借助了ASM这个非常强大的Java字节码生成框架,它可以在运行时对字节码进行修改或动态生成。 实现目标对象12345public

Read More...


JDK动态代理简介什么是JDK动态代理?先看看代理的概念——代理:为其他对象提供一种代理以控制对这个对象的访问。 代理在生活中很常见,比如买火车票可以不去火车站,而是通过代售点;想要逃课了,就让同学代签到等等。说白了,就是可以通过代理来完成目标事件。(自我理解) 不同于静态代理直接采用编码的方式实现,JDK动态代理是利用反射机制在运行时创建代理类,进而调用相应的方法。 JDK动态代理的使用通过一个小例子来看看如何使用JDK动态代理。

Read More...


基数排序基数排序是一种基于分配的排序(空间换时间),不同于常见的基于比较的排序(冒泡、快排、归并…等)。 基于比较的排序时间复杂度通常是O(n^2)或者O(nlogn),下限是O(nlogn); 基于分配的排序算法的时间复杂度可以达到O(n),但需要消耗额外空间; 在某些时候,基数排序的效率高于其它基于比较的排序算法(快排、归并等)。 原理原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。进行了c次(c是整数的位数)比

Read More...


单例模式定义单例模式是设计模式的一种,为了保证一个类仅有一个实例,并提供一个访问它的全局访问点。 特点 单例类保证只有一个实例(构造函数私有化) 单例类自己创建自己 单例类必须为其他对象提供访问唯一实例的方法 应用 配置类信息 Java中的Runtime类 线程池的设计一般也是采用单例模式 单例模式的实现有饿汉模式、懒汉模式(多种)、静态内部类、枚举类等多种实现方式。 饿汉模式12345678910public class Sing

Read More...


IO相关概念同步和异步同步:发出一个调用后,在没有得到结果之前,该调用就不会返回。当调用返回时,就能得到返回结果。(调用者主动等待结果) 异步:发出一个调用后,这个调用就返回了,没有返回结果。(调用者被动等待结果,会得到通知) 阻塞与非阻塞阻塞:某个请求发出后,如果不满足请求需要的条件,那么就会一只等待,直到满足条件。 非阻塞:某个请求发出后,如果不满足请求需要的条件,则立即返回一个标志信息告知条件不满足,而不会一直等待。一般需要通过循

Read More...


人生如逆旅,我亦是行人。