自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 基于Redis实现分布式锁之前,这些坑你一定得知道

开头 基于Redis的分布式锁对大家来说并不陌生,可是你的分布式锁有失败的时候吗?在失败的时候可曾怀疑过你在用的分布式锁真的靠谱吗?以下是结合自己的踩坑经验总结的一些经验之谈。 你真的需要分布式锁吗? 用到分布式锁说明遇到了多个进程共同访问同一个资源的问题, 一般是在两个场景下会防止对同一个资源的...

2020-03-11 17:02:32

阅读数 116

评论数 0

原创 5 分钟搭建 Node.js 微服务原型

微服务已成为在 Node.js 中构建可扩展且强大的云应用的主流方法。同时也存在一些门槛,其中一些难点需要你在以下方面做出决策: 组织项目结构。 将自定义服务连接到第三方服务(数据库,消息代理等) 处理微服务之间共享的代码。 将项目容器化。 在本地运行和调试,然后将其部署到云中。 SMF 框架...

2020-03-11 16:29:36

阅读数 100

评论数 0

原创 SpirngMVC源码简析

SpirngMVC流程综述 用户发送请求至前端控制器DispatcherServlet。 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返...

2020-03-10 15:59:09

阅读数 110

评论数 0

原创 Tomcat中一种半通用回显方法

前段时间学习了一波Linux下基于文件描述符的反序列化回显方式的思路。 在自己实现的过程中发现,是通过IP和端口号的筛选,从而过滤出当前线程(也可以说是请求)的文件描述符,进而加入回显的内容。 但是同时也有一个疑问,我们使用回显的目前主要是因为一些端口的过滤,一些内外网的隔离。从而将一些无法从别的...

2020-03-10 15:58:43

阅读数 147

评论数 0

原创 备战金三银四:2020java面试题分享,请查收

本文收录的面试题包括MySQL、Redis、java、JVM等相关内容。我相信很多人都在计划着跳槽,也或者在等金三银四的到来,请对找工作保持十二分的热情,而且越早准备越好。临时狂背知识点什么的,可能大致的都了解,细问就什么都不知道了,面试京东我也是提前一个月就开始准备了,毕竟不打无准备的仗 一:J...

2020-03-09 17:00:31

阅读数 125

评论数 0

原创 看一看Spring Security 原理分析

引言 在试题系统开发过程中,认证方式越来越完善,也对Spring Security有了更加深刻的理解。 本文,我们一起来领略Spring Security的设计原理。 原理 必备基础 Servlet是Java Web领域中的软件开发规范,Tomcat是实现Servlet规范的Java Web服务器...

2020-03-09 16:58:22

阅读数 105

评论数 0

原创 java中的Volatile关键字使用

java中的Volatile关键字使用 在本文中,我们会介绍java中的一个关键字volatile。 volatile的中文意思是易挥发的,不稳定的。那么在java中使用是什么意思呢? 我们知道,在java中,每个线程都会有个自己的内存空间,我们称之为working memory。这个空间会缓存一...

2020-03-07 17:53:35

阅读数 95

评论数 0

原创 一篇文章,让你看懂 Spring Cloud

Spring Cloud Spring Boot 让我们从繁琐的配置文件中解脱了出来,而 Spring Cloud,它我们提供了一整套的微服务解决方案,大大的降低了微服务开发的门槛,同时也减少了开发成本。 Spring Cloud 的组成 Spring Cloud 并不是特指某个框架,它其实是一系...

2020-03-07 17:03:49

阅读数 108

评论数 0

原创 掌握这些学习路线图,进入BATJ年薪三四十万不是梦!!!

Web应用,最常见的研发语言是Java和PHP。 后端服务,最常见的研发语言是Java和C/C++。 大数据,最常见的研发语言是Java和Python。 可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,...

2020-03-06 17:13:15

阅读数 217

评论数 0

原创 聊一聊Redis之数据结构

基本数据结构 简单动态字符串 Redis中的字符串使用“简单动态字符串”(SDS)表示,无论是字符串值还是键底层都采用“简单动态字符串”。 free:未使用空间大小; len:字符串长度; buf:以空字符结尾的char数组。 为了减少内存重新分配次数,SDS做出了以下优化: 空间预分配:...

2020-03-06 16:21:11

阅读数 131

评论数 0

原创 2020金三银四季一名5年java程序员对面试的指导与建议

今天分享的是一位5年工作经验的Java工程师在帝都的面试经验总结,看看这些互联网公司都爱问些什么题,希望对大家的面试有指导意义。 从事Java开发也有5年经验了,4月初自己的开启面试经历之旅,前后20天左右,主面互联网公司,一二线大公司或者是融资中的创业公司都面试过,拿了一些offer,其中包括奇...

2020-03-05 21:47:44

阅读数 1395

评论数 0

原创 MySQL协议和canal实现

前言 前面的文章里,我们了解到 canal 可以从 MySQL 中感知数据的变化。这是因为它模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,从而实现了主从复制。 正是了解到这一点,笔者有两个问题便一直萦绕于心: 它是如何模拟 MySQL slave 交互协议的? ...

2020-03-05 16:12:02

阅读数 107

评论数 0

原创 Redis——分布式锁深入探究

一、分布式锁简介 锁 是一种用来解决多个执行线程 访问共享资源 错误或数据不一致问题的工具。 如果 把一台服务器比作一个房子 ,那么 线程就好比里面的住户,当他们想要共同访问一个共享资源,例如厕所的时候,如果厕所门上没有锁…更甚者厕所没装门…这是会出原则性的问题的… 装上了锁,大家用起来就安心多...

2020-03-04 16:55:04

阅读数 102

评论数 0

原创 金三银四——一名程序员的java学习心得

古人云:活到老,学到老。读书学习实乃艰苦之事,花费时间,消耗精力。然苦之外亦见其乐:得到了知识,提高了认识,完善了自己。学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进步。学习,不仅求知,也要懂法,学会方法比掌握知识更加重要。笛卡尔说过,“没有正确的方法,即使有眼睛的博学者也会像瞎子...

2020-03-04 16:52:17

阅读数 116

评论数 0

原创 如何理解javascript中的对象

以前对javascript中的对象总有不明白的地方,在本周也遇到了疑惑,于是借着机会去深入的了解了一下javascrpit中的对象。 创建对象 在javascript中,创建对象有两种方式,一种是使用 new 操作符后跟 Object 构造函数: let ob = new Object(); ob...

2020-03-03 16:01:17

阅读数 132

评论数 0

原创 2020年2月份编程语言排行榜分析

今天上班的路上,突然发现路边绿化带里的迎春花发芽了,这两天也是明显的感觉暖和些了,春天到咯,终于可以换下厚重的羽绒服啦。春天是播种的季节,一年之计在于春,勤恳的农民伯伯们已然开始准备春耕,翻地待种;而我们可爱的码农们也在蓄势待发,要在“春招”里大显身手,转战新战场,谋求新发展。从外貌(敷张面膜,理...

2020-03-03 16:00:48

阅读数 236

评论数 0

原创 从源码分析Spring是如何解决循环依赖的

循环依赖问题 什么是循环依赖 首先看一下下面的Spring配置文件 <!-- beanA依赖于beanB --> <bean id="beanA" class="top.okay3r.ClassA"> <property...

2020-03-02 16:45:06

阅读数 132

评论数 0

原创 2020java程序员必学方向之微服务架构

什么是微服务架构?看下图的这段英文,这是Martin Fowler 在2014年提出来的,微服务架构是一种架构模式,既然是架构模式,那么,它就必然需要满足一些特点。他提到,微服务架构是一系列小的微服务构成的组合,那么,什么是“小的微服务”?可能每个人的理解都不一样,大家都应该都知道SOA架构,SO...

2020-03-02 16:40:33

阅读数 507

评论数 0

原创 mybatis入门的前期准备

使用步骤如下: 首先创建一个Maven工程,在pom.xml文件中引入mybatis的jar包坐标 <dependencies> <dependency> <groupId>org.mybatis</groupI...

2020-03-01 19:26:56

阅读数 94

评论数 0

原创 provider之selector

一.Consumer和Selector的简单区别 provider早期版本中只有Consumer,当model中调用notifyListeners()的时候,对应的Consumer的视图就会整个rebuild,而在3.x版本之后出现Selector可以仅选择model中某个值来最小范围的刷新视图,...

2020-03-01 17:12:30

阅读数 202

评论数 0

原创 你不知道的HelloGitHub!

简介 分享 GitHub 上有趣、入门级的开源项目。 这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中...

2020-03-01 17:12:02

阅读数 191

评论数 0

原创 Spring Boot项目优化和JVM调优

项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在 Spring Boot 项目中,调优主要通过配置文件和配置JVM的参数的方式进行。 1. 修改配置文件 关于修改配置文件 application.properties,推荐《Spring Boot 项目详细的配置文件修改文档》 h...

2020-02-29 17:50:46

阅读数 108

评论数 0

原创 一文带你了解如何使用 Redis 实现分布式锁

锁是我们在设计和实现大多数系统时绕不过的话题。一旦有竞争条件出现,在没有保护的操作的前提下,可能会出现不可预知的问题。 而现代系统大多为分布式系统,这就引入了分布式锁,要求具有在分布各处的服务上保护资源的能力。 而实现分布式锁,目前大多有以下三种方式: 使用数据库实现。 使用 Redis 等缓存...

2020-02-29 16:27:20

阅读数 90

评论数 0

原创 Go 每日一库之 gojsonq

简介 在日常工作中,每一名开发者,不管是前端还是后端,都经常使用 JSON。JSON 是一个很简单的数据交换格式。相比于 XML,它灵活、轻巧、使用方便。JSON 也是RESTful API推荐的格式。有时,我们只想读取 JSON 中的某一些字段。如果自己手动解析、一层一层读取,这就变得异常繁琐了...

2020-02-29 16:26:42

阅读数 100

评论数 0

原创 金三银四—2020java学习路线图,看懂后学习java不再迷茫

最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。我就以过来人的经历,写在这篇博客里,不一定都对,但都是我根据自己的经历总结出来的,供你们的...

2020-02-28 17:31:09

阅读数 99

评论数 0

原创 以Java内存模型的角度看并发

Java的内存模型: 堆区: 存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)。 JVM的堆区(heap)被所有线程共享(相对于栈区,栈区的数据不共享),堆中不存放基本类型和对象引用,只存放对象本身。 栈区: 每个线程包含一个栈区,栈中只保存...

2020-02-28 16:17:41

阅读数 101

评论数 0

原创 Redis-结构篇-压缩列表

什么是压缩列表 压缩列表 ziplist 在 redis 中的应用也非常广泛,它是我们常用的 zset ,list 和 hash 结构的底层实现之一。当我们的容器对象的元素个数小于一定条件时,redis 会使用 ziplist 的方式储存,来减少内存的使用。 > hset test_ha...

2020-02-28 16:16:39

阅读数 85

评论数 0

原创 疫情结束后的BATJ,面试会越来越难吗?

疫情信息仍在不断刷屏,相信今天大家都在线上远程办公。 开工日期一再延迟,之前跳槽、转行、涨薪的计划都不得不暂时搁置起来。但Java 作为稳居开发榜首的语言,企业需求依旧旺盛,其实很多企业,比如腾讯、字节跳动,为了保证春招的顺利进行,尽可能提高招聘效率,做出了一些调整:首先是更多采用线上面试的形式,...

2020-02-27 17:54:48

阅读数 247

评论数 0

原创 如何把golang的Channel玩出async和await的feel

引言 如何优雅的同步化异步代码,一直以来都是各大编程语言致力于优化的点,记得最早是C# 5.0加入了async/await来简化TPL的多线程模型,后来Javascript的Promise也吸取这一语法糖,在ES 6中也加入了async和await. 那么,被大家一称赞并发性能好、异步模型独树一帜...

2020-02-27 16:04:15

阅读数 91

评论数 0

原创 数据库中间件分片算法之hash

前言 夜深人静的时候,打开云音乐,点上一曲攀登,带上真无线蓝牙耳机,瞬间燃到爆,键盘打字如飞倦意全无。 分片规则 这几天有人问我,dble和MyCat到底有什么不同。其实dble作为MyCAT的同门,吸收了MyCat的精华,同时也相应的做了一些减法。只支持MySQL显得更加的纯粹。所以选择对比学习...

2020-02-27 16:03:49

阅读数 87

评论数 0

原创 作为一名程序员找到一份java的工作需要学习哪些知识?

首先是Javase作为Java最基本的学习内容,不在多说。 然后是掌握JavaScript的基本原理,因为做Java编程开发必须学会JavaScript,用到JavaScript非常多,但是现在很多公司是不用去写原生的JavaScript,但是如果你想成为一个厉害的Java开发者,JavaScri...

2020-02-26 22:22:56

阅读数 133

评论数 0

原创 Spring Boot配置文件注入

yml语法 yml配置文件的语法主要有以下几点: key:[space] value 大小写敏感 空格(Tab)控制层级关系 其中value的可以是简单数据类型(数字、字符串),也可以是复杂数据类型(数组、对象、集合、Map等)。 注意:对于字符串,默认是不需要加双引号或者单引号。 配置文...

2020-02-26 17:13:42

阅读数 105

评论数 0

原创 关于SpringBoot如何处理全局异常的思考

背景 日常开发中经常会遇到各种系统异常(Exception),但是将异常堆栈直接返回给页面却是很不友好的一种做法,于是在我们日常的项目开发中,个人思考总结了一种自认为还不错的全局异常处理方案义工参考,欢迎指点意见和支持。 基本思路 这个方案主要用到了深度优先的递归循环、策略模式和基于枚举的单例模式...

2020-02-26 17:12:59

阅读数 91

评论数 0

原创 一名程序员在家办公的感想—在家远程办公2周,准备离职了...

以前,特别羡慕在家办公一族,感觉好爽。 没有烦人的闹钟,没有忙碌的早晨,没有拥挤的地铁,没有强制的打卡。 9点上班,8点55醒也不怕迟到。 床在桌边,饭在桌上,家里的一切都那么安逸。 即使做同样的事情,心情肯定是愉悦的 我可以撸上一整天的代码! 想想就兴奋,可是… 如今,因为疫情的原因,很多人已经...

2020-02-26 14:53:11

阅读数 185

评论数 0

原创 一文带你了解Java 并发之 Executor 框架

前言 在学习 JUC 的过程中我发现,JUC 这个包下面的文档写的十分的好,清楚又易于理解,这篇博客便是参考 JUC 中和 Executor 框架相关的一些类文档汇总出来的。 当然了,Executor 框架涉及到的类还是不少的,全部汇总的话时间成本太高,有点亏,所以这里主要就集中在了 Execut...

2020-02-25 16:17:10

阅读数 90

评论数 0

原创 【最完整系列】JAVA-容器篇-LinkedList源码解析

简介 LinkedList 顾名思义其本质是一个链表,具体来说是一个双向链表,同时还有2个指针分别对应链表的头和尾。 源码 源码还是跟 ArrayList 一样,从我们常用的代码出发: List<String> a = new LinkedList<>(); a.add(&...

2020-02-25 16:16:20

阅读数 84

评论数 0

原创 金三银四之必不可少的java并发面试题

金三银四马上就要到了,各位小伙伴准备的怎么样了,今天博主准备了一些开发面试题,供大家参考一下: 1.一个线程在运行时发生异常会怎样? 答:如果这个异常没有被捕获,这个线程将会停止运行。 2.什么是线程组? 答:ThreadGroup类,可以把线程归属到某一个线程组中,线程组中可以有线程对象, 也可...

2020-02-24 19:17:04

阅读数 82

评论数 0

原创 spring mvc中的Sugar ,你要来点吗?

spring mvc作为展示层的组件,从参数预处理,验证,拦截,渲染。无不考虑的细致入微,你所要的做的,只是接口实现,切面接入,简单配置。 今天我们以分页功能展开来说明,如何把我们复杂的参数处理从控制器进行剥离! 第一步 我们展示一个重量级的接口:HandlerMethodArgumentReso...

2020-02-24 19:16:39

阅读数 77

评论数 0

原创 高可用redis简单解析和Docker搭建

哨兵 1.基本概念 在这边先对几个名词进行说明: Red Sentinel是Redis的高可用实现方案。 1.1.主从复制的问题 Redis的主从复制模式可以将主节点的数据改变同步给从节点,这样从节点就可以起到两个作用:第一,作为主节点的一个备份,一旦主节点出了故障不可达的情况,从节点可以作为后...

2020-02-24 19:16:18

阅读数 92

评论数 0

原创 Redis 中的数据持久化策略(AOF)

AOF 是 redis 中的另一种数据持久化策略,它基于操作日志,也是一个很优秀的持久化策略,当然也有缺点。那么本篇就来讲讲这个 AOF 持久化策略。 一、什么是 AOF 持久化策略 AOF 即 append only file,当 redis 采用这这种数据持久化策略的时候,每当 redis 服...

2020-02-23 15:16:00

阅读数 87

评论数 0

提示
确定要删除当前文章?
取消 删除