Sunfy Blog

Life is diligent, no pains, no gains.
Viewed Times
Visitors In Total

更优雅的发HTTP请求(RestTemplate)

Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 我之前的HTTP开发是......

如何从容应对复杂性

软件的复杂性,是一个很泛的概念。但是一直都是开发过程中的一个难题,本文旨在探讨如何去从容应对复杂性。

一 软件的熵增、构造定律1 熵增定律熵的概念最早起源于物理学,热力学第二定律(又称“熵增定律”),表明了在自然过程中,一个孤立的系统总是从最初的集中、有序的排列状态,趋向于分散、混乱和无序;当熵......

高并发Redis缓存那些事儿

Redis缓存常见问题及相应问题的解决方案 缓存穿透查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。 基本原因 自身业务代码或者数据出现问题。 一些恶意攻击、 爬虫等造成大量空命中。 解决方案1、缓存空对象 12345678910111......

LRU缓存算法的实现

一种常见的页面置换算法

LRULRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因......
LRU

CAS操作分析

Compare And Swap,比较并交换

CASCAS(Compare And Swap,比较并交换),通常值的是一种原子操作,针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同就给它赋值另一个值。正所谓比较并交换。 if......

深入理解 Java SPI机制

一种服务发现机制,自动加载文件里所定义的类。

SPI ,全称为 Service Provider Interface,是一种服务发现机制。在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类......
SPI

docker-compose 启动容器

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 docker-compose 是什么docker-compose 是一个用来把 docker 自动化的东西。有了 docker-compose 你可以把所有繁复的 docker 操作全都一条命令,自动化的完成。 为什么要用 docker-compose,他解决了什么用通俗的语言......

Spring推断构造方法

一个构造方法|多个构造方法

Spring推断构造方法 Spring中的一个bean,需要实例化得到一个对象,而实例化就需要用到构造方法。 一个构造方法一般情况下,一个类只有一个构造方法: 要么是无参的构造方法 要么是有......

算法常用的解题思路---滑动窗口

学过计算机网络的同学,都知道滑动窗口协议(Sliding Window Protocol),该协议是 TCP协议 的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认。因此该协议可以加速数据的传输,提高网络吞吐量。 滑动窗口算法其实和这个是一样的,只是用的地方场景不一样,可以根据需要调整窗......

Java面试题001-ArrayList和LinkedList区别

底层数据结构--》适用场景--》相同点和不同点

思路 底层数据结构—》适用场景—》相同点和不同点 底层数据结构他们的底层数据结构不同,ArrayList底层是基于数组实现的,连续内存存储,LinkedList底层是基于链表实现的,可以存储在分......

算法常用的解题思路

什么是数据结构?什么是算法?就是一个能组在一起的集合对象。比如数组 链表 队列等。算法:就是解决问题的 五个特征有穷性、确定性、可行性、有输入、有输出 设计原则正确性、可读性、健壮性 bug:写出代码很少有bug,而且系统比较稳定高效率与低存储: 内存+CPU 堆栈内存OOM内存占用最小,CPU占用最小,运算速度最快。 评价算法的两个重要指标占据整个学习的半壁江山,接下来我们会重点学习时间复......

npm基础知识点总结记录

vue基础知识点 vue 使用 npm run dev命令后 自动打开浏览器1、使用vue-cli 老版本构建项目时, 可修改config文件夹下index.js文件 autoOpenBrowser 属性给为 true 即可 使用vue-cli 3.x 版本后,所有的配置项均在vue.config.js中,修改 devServer 增加 open 属性为 true 即可 官方:https......
npm

js替换功能

字符替换的几种方式

js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换。 12345<script language......
js

Docker 修改MySQL配置

Docker 修改MySQL配置 Docker 修改MySQL配置 前言:大部分程序员在刚使用docker时,按照教程迅速的就装完了mysql,在使用的过程中出现各种问题:比如中文乱码、com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1053 > 1024).等等,最简单的方式通过sql去设置,......

正排索引与倒排索引

正排索引与倒排索引 正排索引:一个未经处理的数据库中,一般是以文档ID作为索引,以文档内容作为记录。倒排索引:Inverted index,指的是将单词或记录作为索引,将文档ID作为记录,这样便可以方便地通过单词或记录查找到其所在的文档。 1234倒排索引为什么叫倒排索引? - 水無刹那的回答 - 知乎https://www.zhihu.com/questio......

idea利用docker插件打包上传

idea 利用 docker插件打包上传镜像 1:idea环境准备1点击 file>settings>plugins>搜索docker下载 如下图 2:docker服务环境准备 正常安装docker环境 第一步:配置Docker,开启远程访问(注:仅供学习参考,实际生产环境万万不可,会产生很大的安全风险),默认端口是2375,也可以修改为其他端口 1、修改/lib/......