- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 Java程序员必备的一些流程图
前言:整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要; 首先容器启动后,对bean进行初始化 按照bean的定义,注入属性 检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如Be...
2019-08-31 14:03:20 125 1
原创 面试必备:Java线程池解析
前言掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解...
2019-08-30 18:03:27 1198
原创 优化代码的几个小技巧
前言最近看了《重构-改善既有代码的设计》这本书,总结了优化代码的几个小技巧,给大家分享一下。提炼函数(适当抽取小函数)定义提炼函数就是将一段代码放进一个独立函数中,并让函...
2019-08-29 07:36:15 636
原创 Mysql死锁如何排查:insert on duplicate死锁一次排查分析过程
前言遇到Mysql死锁问题,我们应该怎么排查分析呢?之前线上出现一个insert on duplicate死锁问题,本文将基于这个死锁问题,分享排查分析过程,希望对大家有帮助。死锁案发还原表结构:CREATE TABLE `song_rank` ( `id` int(11) NOT NULL AUTO_INCREMENT, `songId` int(11) NOT...
2019-08-24 16:56:47 501
原创 Synchronized解析——如果你愿意一层一层剥开我的心
前言synchronized,是解决并发情况下数据同步访问问题的一把利刃。那么synchronized的底层原理是什么呢?下面我们来一层一层剥开它的心,就像剥洋葱一样,看个究竟。Synchronized的使用场景synchronized关键字可以作用于方法或者代码块,最主要有以下几种使用方式,如图:接下来,我们先剥开synchronized的第一层,反编译其作用的代码块以及方法。...
2019-08-18 23:22:26 133
原创 并发环境下,先操作数据库还是先操作缓存?
前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示:1)线程A发起一个写操作,第一步del cache2)线程A第二步写入新数据到DB3)线程B发起一个读操作,cache ...
2019-08-07 10:42:27 124
原创 后端程序员必备:Mysql数据库相关流程图/原理图
前言整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。1.mysql主从复制原理图mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复...
2019-08-04 00:19:23 1218
原创 AQS解析与实战
前言前段时间在面试,发现面试官都有问到同步器AQS的相关问题。AQS为Java中几乎所有的锁和同步器提供一个基础框架,派生出如ReentrantLock、Semaphor...
2019-08-03 00:17:19 743
原创 日常开发中并发与一致性的一些坑
前言列举日常工作开发中最容易犯的并发错误,并基于这些错误,跟大家聊聊并发与一致性。并发与一致性概念并发与并行有什么区别?并发: 是指同一个时间段内多个任务同时都在执行,并...
2019-08-02 23:52:40 5564
原创 CAS乐观锁解决并发问题的一次实践
前言最近做新项目,货币充值消耗,送礼竞争勋章等都使用了CAS解决并发问题,所以做一下笔记,谈谈CAS,大家一起互相学习。乐观锁,悲观锁:讨论CAS的话,先来说有一下乐观锁...
2019-08-01 11:51:27 909 1
spring boot (Java)调用微软小冰实现给图片颜值评分
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人