Spring Boot Redis 序列化方案的选择!

Redis的使用越来越广泛,当遇见性能瓶颈时,我们应该如何去解决呢? 01 Spring Boot Redis Spring Boot Data Redis给我们提供了即插即用的体验,大部分默认配置已经满足了我们的需求,而其中序列化方案选择的是原生的JdkSerializationRedis...

2019-08-23 11:32:54

阅读数 2

评论数 0

什么是JAVA 泛型?通配符 T,E,K,V,?了解多少?

01 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 02 泛型带来的好处 在没有泛型的情况的下,通过对类型 Ob...

2019-08-23 11:32:39

阅读数 1

评论数 0

既然synchronized是"万能"的,为什么还需要volatile呢?

01 synchronized的问题 我们都知道synchronized其实是一种加锁机制,那么既然是锁,天然就具备以下几个缺点: 1.1 有性能损耗 虽然在JDK 1.6中对synchronized做了很多优化,如适应性自旋、锁消除、锁粗化、轻量级锁和偏向锁等,但是他毕竟还是一种锁。 以...

2019-08-21 11:24:05

阅读数 8

评论数 0

线程池了解多少?一文带你图解Java线程池原理!

01 什么是线程池? 为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从池子里面拿去一个线程来进行使用,当完成工作后,并没有销毁线程,而是将将线程放回到池子中去。 线程...

2019-08-21 11:23:53

阅读数 9

评论数 0

Docker 部署 Spring Boot,会不会?

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。 首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。 01 一个简单 Spring Boo...

2019-08-20 17:10:04

阅读数 4

评论数 0

看不懂top?10分钟教你迅速看明白!

后端们最怕的事情之一就是服务器的负载突然飙升,这可能又意味着一个个夺目Call马上要打过来了。碰到这种情况怎么办,大家第一反应一定是登陆到服务器上,先敲一个top命令看看Load Average吧。今天这篇文章和大家说说怎么看这个“Load Average”。 01 Load Average ...

2019-08-20 11:43:33

阅读数 7

评论数 0

压缩20M文件:从30秒到1秒?

01 前言 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件...

2019-08-20 11:43:19

阅读数 5

评论数 0

补码、反码、原码、位运算傻傻分不清?

在平时看各种框架的源码的过程中,经常会看到一些位移运算,所以作为一个Java开发者是一定掌握位移运算的。 01 正数位移运算 Java中有三个位移运算: ① <<:左移 ② >>:右移 ③ >>&...

2019-08-16 15:34:36

阅读数 12

评论数 0

给Dubbo添砖加瓦:自定义Filter扩展点实现!

最近一个小伙伴在开发一款小而美的应用程序性能监控框架(Pepper-Metrics)。 其中一个需求,需要收集Dubbo在Provider端和Consumer端的接口响应性能数据,以便存储到DataSource中或提供给Printer使用。 在此背景下,我们需要对Provider端和Consu...

2019-08-16 15:30:47

阅读数 12

评论数 0

我说精通字符串,面试官竟然问我Java中的String有没有长度限制?

String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。 就如本文我们要讨论的问题:Java中的String有没有长度限制? 这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样...

2019-08-15 11:31:50

阅读数 10

评论数 0

撸一个Java脚手架,一统团队项目结构风格!

虽然maven已经提供了maven-archetype-webapp、maven-archetype-quickstart等项目骨架帮助我们快速构建项目架构,但是默认提供的archetype初始化的项目架构并不能满足开发需求,这时候就有必要自己写一个满足项目需求的archetype了 01 使...

2019-08-15 11:31:43

阅读数 8

评论数 0

Spring Boot 支持 Https 有那么难吗?

https 现在已经越来越普及了,特别是做一些小程序或者公众号开发的时候,https 基本上都是刚需了。 不过一个 https 证书还是挺费钱的,个人开发者可以在各个云服务提供商那里申请一个免费的证书。我印象中有效期一年,可以申请 20 个。 今天要和大家聊的是在 Spring Boot 项目...

2019-08-14 15:21:22

阅读数 8

评论数 0

每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?

有童鞋说,我们项目都做了这种处理,就是在每个 API 都单独工具类将返回值进行封装,但这种不够优雅;我想写最少的代码完成这件事,也许有童鞋说,加几个注解就解决问题了,说的没错,但这篇文章主要是为了说明为什么加了几个注解就解决问题了,目的是希望大家知其所以然。 为了更好的说明问题,本文先说...

2019-08-14 14:30:51

阅读数 10

评论数 0

面试高频,屡试不爽的mysql索引特性总结!

01 Sql执行顺序 (1) FROM 子句 组装来自不同数据源的数据 (2)WHERE 子句 基于指定的条件对记录进行筛选 (3) GROUP BY 子句 将数据划分为多个分组 (4)使用聚合函数进行计算 (5)使用HAVING子句筛选分组 (6)计算所有的表达式 (7)使用ORD...

2019-08-13 12:09:16

阅读数 8

评论数 0

一道字节跳动的算法面试题,你能做出来吗?

前几天有个小伙伴去面试字节跳动,面试官问了他一道链表相关的算法题,不过他一时之间没做出来,就来问了我一下,感觉这道题还不错,拿来讲一讲。 01 题目 这其实是一道变形的链表反转题,大致描述如下: 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并...

2019-08-13 11:39:37

阅读数 28

评论数 0

关于MySQL,你必须要了解的锁知识!

01 前言 MySQL 的锁按照范围可以分为全局锁、表锁、行锁,其中行锁是由数据库引擎实现的,并不是所有的引擎都提供行锁,MyISAM 就不支持行锁,所以文章介绍行锁会以InnoDB引擎为例来介绍。 02 全局锁 MySQL 提供全局锁来对整个数据库实例加锁。 2.1 语法 ...

2019-08-12 11:28:02

阅读数 9

评论数 0

Redis大揭秘: 事件机制详解!

Redis 采用事件驱动机制来处理大量的网络IO。它并没有使用 libevent 或者 libev 这样的成熟开源方案,而是自己实现一个非常简洁的事件驱动库 ae_event。 Redis中的事件驱动库只关注网络IO,以及定时器。该事件库处理下面两类事件: ① 文件事件(file event)...

2019-08-10 11:12:33

阅读数 9

评论数 0

消息中间件——RabbitMQ整合Spring AMQP实战!

1. AMQP 核心组件 ① RabbitAdmin ② SpringAMQP声明 ③ RabbitTemplate ④ SimpleMessageListenerContainer ⑤ MessageListenerAdapter ⑥ MessageConverter 2. Rab...

2019-08-09 15:49:40

阅读数 28

评论数 0

MySQL中":="和"="的区别,你知道吗?

= 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=。 := 不只在set和update时时赋值的作用,在select也是赋值的作用。 下面是:=和=的在select时作用对比 (1)sql set @num=0; SE...

2019-08-09 11:36:51

阅读数 15

评论数 0

redis解析:缓存及常见问题!

01 没缓存的日子 对于web来说,是用户量和访问量支持项目技术的更迭和前进。随着服务用户提升。可能会出现一下的一些状况: 页面并发量和访问量并不多,mysql足以支撑自己逻辑业务的发展。那么其实可以不加缓存。最多对静态页面进行缓存即可。 页面的并发量显著增多,数据库有些压力,并且有些数...

2019-08-08 15:36:59

阅读数 14

评论数 0

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