自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辉的范你学不来的博客

人生的起起落落,生活的悲喜无常;在这个波涛汹涌的社会中,没有谁能把日子过得风平浪静。

  • 博客(15)
  • 收藏
  • 关注

原创 手撸一个SpringBoot缓存系统

缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。一、通用缓存接口1、缓存基础算法FIFO(First In First Out),先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。LFU(Least Frequently Used),最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来

2020-08-17 08:57:18 435

原创 手把手教你实现一个SpringBoot的starter

Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and related technologies that you need without having to hunt through sample code and copy-paste loads of depen...

2020-08-12 09:14:18 1732

原创 hashCode() 和 equals() 之间的关系

先祭一张图,可以思考一下为什么?介绍equals() 的作用是用来判断两个对象是否相等。hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。关系我们以“类的用途”来将“hashCode() 和 equals()的关系”分2种情况来说明。1、不会创建“类对应的散列表”这里所说的“不会创建类对应的散列表”是说:我们不会在HashSet, Hashtable, HashMap等等这些本质是散列表的数据结构中,用到该

2020-08-12 08:46:33 533

原创 池化技术之线程和线程池的对比

尼采曾经说过:人们无法理解他没有经历过的事情。因此我会试着把技术文章写的尽量具象化一些,力求让所有人都能看懂,所以在正式开始之前,我们先从两个生活事例说起。尼采帅照:生活案例 1早些年间,某宝双“11”突然爆火,然后无数个男男女女疯狂“剁手”,然而最痛苦的并不是“剁手”之后吃“灰”的日子,而是漫长而又揪心的等待快递小哥的日子。为了缓解彼此的“痛苦”(快递公司的电话被打爆,用户等得不耐烦),快递公司后面就变“聪明”了,每当购物节将要来临之前,快递公司会预先准备好充足的人和车,以迎接扑面而来的订单。

2020-08-12 08:39:09 249

原创 通俗易懂的贝叶斯定理

概率论与数理统计,在生活中实在是太有用了,但由于大学课堂理解不够深入,不能很好地将这些理论具象化并应用到实际生活中,感到实在是太遗憾了,所以重新学习并用小白式的通俗易懂的语言来解释记录,以此来加深理解应用。先思考一下,数学是怎么产生的?当祖先遇到一个问题,最终采用了某种方法,把这个问题解决了,非常开心。动物都是有惰性的,为了在下次遇到此类问题时不费吹灰之力,于是就把这种解决问题的思想和方法提取出来,然后就有了数学。为了给更多的人恩惠,就需要把这种方法整理成抽象的,严谨的数学理论,传递给他人,别人看完,学

2020-08-10 09:10:36 3879

原创 Redis 面试常见问答

>1. 什么是缓存雪崩?怎么解决?通常,我们会使用缓存用于缓冲对 DB 的冲击,如果缓存宕机,所有请求将直接打在 DB,造成 DB 宕机——从而导致整个系统宕机。如何解决呢?2 种策略(同时使用):对缓存做高可用,防止缓存宕机使用断路器,如果缓存宕机,为了防止系统全部宕机,限制部分流量进入 DB,保证部分可用,其余的请求返回断路器的默认值。2. 什么是缓存穿透?怎么解决?解释 1:缓存查询一个没有的 key,同时数据库也没有,如果黑客大量的使用

2020-08-10 08:34:25 143

原创 9种 分布式ID生成方式

为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生...

2020-08-08 21:59:08 1191

原创 Oracle修改日期

update 表名 set 字段=to_date(‘2020-7-6’,‘yyyy-mm-dd’) where 条件

2020-08-07 11:02:20 624

原创 深度学习中7种最优化算法的可视化与理解

本文旨在优化一维函数,实际上模型参数有数百万维以上,差距很大,因此本文最好作为辅助法的理解,而非对算法优劣的判断依据。在深度学习中,有很多种优化算法,这些算法需要在极高维度(通常参数有数百万个以上)也即数百万维的空间进行梯度下降,从最开始的初始点开始,寻找最优化的参数,通常这一过程可能会遇到多种的情况,诸如:1、提前遇到局部最小值从而卡住,再也找不到全局最小值了。2、遇到极为平坦的地方:“平原”,在这里梯度极小,经过多次迭代也无法离开。同理,鞍点也是一样的,在鞍点处,各方向的梯度极小,尽管沿着某一个.

2020-08-07 09:26:01 419

原创 面试经验分享

说下 https 吧,和 http 有什么区别https相对于http来说主要多了一个SSL层,通过SSL加密数据包,通过证书验证身份,使得数据更安全。那说下https是如何加密的简单的说就是客户端在请求服务器的时候得到服务器的证书和公钥,然后自己生成一个密钥,通过公钥加密,传输给服务端。然后服务端通过私钥解密,这样就得到对称加密所需的密钥,之后就通过对称加密通信。为什么需要这么麻烦,直接公钥私钥通信不行吗非对称加密比较耗时,对称加密比较快那你再说说dns 如何工作的简单的说就是通过udp去查

2020-08-07 09:00:09 163

原创 深入理解 Spring Cloud 核心组件与底层原理

一、Spring Cloud核心组件:Eureka (1)Netflix Eureka1)、Eureka服务端:也称服务注册中心,同其他服务注册中心一样,支持高可用配置。如果Eureka以集群模式部署,当集群中有分片出现故障时,那么Eureka就转入自我保护模式。它允许在分片故障期间继续提供服务的发现和注册,当故障分片恢复运行时,集群中其他分片会把它们的状态再次同步回来2)、Eureka客户端:主要处理服务的注册与发现。客户端服务通过注解和参数配置的方式,嵌入在客户端应用程序的代码中,在应用程..

2020-08-07 08:55:20 139

原创 进程间通信

每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。Linux 内核提供了不少进程间通信的机制,我们来一起瞧瞧有哪些?管道如果你学过 Linux 命令,那你肯定很熟悉「|」这个竖线。$ ps auxf | grep mysql上面命令行里的「|」竖线就是一个管道,它的功能是将前一个命令(ps auxf)的输出,作为后一个命令(grep mysql)的输入,从这功能描述,可以看出管道传输数据是单向的,如果想相互通信,我..

2020-08-06 17:28:34 115

原创 浅谈树形结构的特性和应用(上):多叉树,红黑树,堆,Trie树,B树,B+树...

无所不在的非线性数据结构之一:树形结构的特点和应用。树形结构,是指:数据元素之间的关系像一颗树的数据结构。我们看图说话:它具有以下特点:每个节点都只有有限个子节点或无子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;树里面没有环路(cycle)维基百科中列举了计算机科学中树形结构的种类我们只挑一些熟悉的面孔:多叉树,二叉树,二叉查找树,红黑树,堆,Trie树,B树,B+树,LSM Tree,了

2020-08-05 09:11:24 456 1

原创 如何将java程序中sql查询出的字段取出来使用

比如:sql=“select a,b from student”;想要获取a和b字段,可以用如下方法解决:BindSQL bl=new BindSQL();SSRS ssrs=new SSRS();ssrs=bl.execSQL(sql);String startDate=ssrs.GetText(1, 1);//第一个字段String endDate=ssrs.GetText(1, 2);//第二个字段...

2020-08-04 16:57:16 1376 1

原创 后端开发都应该掌握的Redis基础

Redis的数据结构Redis支持多种不同的数据结构,包括5种基础数据结构和几种比较复杂的数据,这些数据结构可以满足不同的应用场景。五种基础数据结构String:字符串,是构建其他数据结构的基础Hash:哈希列表List:列表Set:集合,在哈希列表的基础上实现Sort Set:有序集合复杂的数据结构Bitmaps:位图,在string的基础上进行位操作,可以实现节省空间的数据结构。Hyperloglog:用于估计一个 set 中元素数量的概率性的数据结构。Geo:geospat

2020-08-03 09:01:02 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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