摘要: Markdown图片存储解决方法-利用阿里云OSS 19.5 更新 由于极简图床的网站停止运营了,所以本文的图床工具需要换个中转媒介,推荐github上的PicGo开源软件作为上传工具,背后上传的云不变(你原先用阿里云做存储,还是用阿里云OSS)。 我们在用markdown写一些博客或者文章的时候, 阅读全文
posted @ 2018-08-17 21:52 上帝爱吃苹果-Soochow 阅读(4955) 评论(3) 推荐(1) 编辑
摘要: 多态与类初始化的底层原理 首先我们先看一个段非常有代表性的代码,里面一口气牵扯到了多态和类初始化顺序知识。 它的输出是: 父类构造器 子类的process 0 1 子类构造器 子类的process 13 14 我想现在你一定很困惑,不要慌上车!带你了解底层的原理 为什么会调用子类的process() 阅读全文
posted @ 2018-07-27 23:03 上帝爱吃苹果-Soochow 阅读(661) 评论(1) 推荐(0) 编辑
摘要: 线程池源码解析 线程池的概念 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。使用线程池可以很好的提高性能,尤其是程序中需要创建大量生存期很短暂的线程。 使用线程池的优势 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁的开销。 提高响应速度。当任务到达时,任务可以不需要等到 阅读全文
posted @ 2018-07-24 17:22 上帝爱吃苹果-Soochow 阅读(3062) 评论(0) 推荐(4) 编辑
摘要: 分布式全局ID生成器设计 项目是分布式的架构,需要设计一款分布式全局ID,参照了多种方案,最后基于snowflake的算法设计了一款自用ID生成器。具有以下优势: 1. 保证分布式场景下生成的ID是全局唯一的 2. 生成的全局ID整体上是呈自增趋势的,也就是说整体是粗略有序的 3. 高性能,能快速产 阅读全文
posted @ 2018-07-21 18:52 上帝爱吃苹果-Soochow 阅读(8209) 评论(4) 推荐(3) 编辑
摘要: 在看项目的Spring配置文件时,发现消息队列的配置采用了继承方式配置Bean,在这梳理总结一下。 其实在基于spring框架开发的项目中,如果有多个bean都是一个类的实例,如配置多个数据源时,大部分配置的属性都一样,只有少部分不一样。这样的话在配置文件中可以配置和对象一样进行继承。 例如 其中 阅读全文
posted @ 2018-07-18 18:53 上帝爱吃苹果-Soochow 阅读(1120) 评论(0) 推荐(1) 编辑
摘要: 单例模式中的volatile关键字 在之前学习了单例模式在多线程下的设计,疑惑为何要加volatile关键字。加与不加有什么区别呢?这里我们就来研究一下。单例模式的设计可以参考个人总结的这篇 "文章"   背景:在早期的JVM中,synchronized存在巨大的性能开销。因此, 阅读全文
posted @ 2018-07-03 20:53 上帝爱吃苹果-Soochow 阅读(11871) 评论(3) 推荐(4) 编辑
摘要: 在阅读多线程书籍的时候,对volatile的原子性产生了疑问,问题类似于这篇 "文章" 所阐述的那样。经过一番思考给出自己的理解。 我们知道对于可见性,Java提供了volatile关键字来保证 可见性 、 有序性 。 但不保证原子性 。 普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什 阅读全文
posted @ 2018-07-02 18:13 上帝爱吃苹果-Soochow 阅读(7709) 评论(8) 推荐(3) 编辑
摘要: 学习数据结构的时候遇到一个经典的回文链表问题 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 如果有链表反转的基础,实现链表回文判断就简单的多,如果对反转链表不熟悉,可以参考这篇 "博客" 。 思路很简单,先找到链表的中间Node,采用的快慢指针 阅读全文
posted @ 2018-06-28 19:00 上帝爱吃苹果-Soochow 阅读(1604) 评论(0) 推荐(1) 编辑
摘要: 1.Spring它到底是什么? Spring是一个开源的Java应用程序开发框架,为了解决企业应用开发的复杂性而创建的。   在spring中,它会认为一切Java类都是资源,而资源就是Bean,容纳这些Bean是Spring所提供的IoC(Inversion of Contro 阅读全文
posted @ 2018-06-26 10:02 上帝爱吃苹果-Soochow 阅读(1031) 评论(0) 推荐(1) 编辑
摘要: 理解单链表的反转(java实现) 要求很简单,输入一个链表,反转链表后,输出新链表的表头。   反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。 递归法 阅读全文
posted @ 2018-06-23 18:34 上帝爱吃苹果-Soochow 阅读(47547) 评论(19) 推荐(12) 编辑