• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

2020年05月的内容

算法

常用数据结构(二)

常用数据结构(二)
紧接着上一篇文章常用数据结构(一),我们继续来探讨以下数据结构:HashTable、并查集、树状数组、后缀数组。 1、HashTable 1.1、什么是HashTable HashTable,哈希表,是一种数据结构,可以通过使用称为hash的技术提供从键到值的映射。 key:其中key必须是唯一的,key必须是可以hash; value:value可以重复,……继续阅读 »

winrains 5个月前 (05-19) 56浏览 1个赞

算法

常用数据结构(一)

常用数据结构(一)
本文我们来介绍一下编程中常见的一些数据结构。 为什么要学习数据结构? 随着业务场景越来越复杂,系统并发量越来也高,要处理的数据越来越多,特别是大型互联网的高并发、高性能、高可用系统,对技术要求越来越高,我们引入各种中间件,这些中间件底层涉及到的各种数据结构和算法,是其核心技术之一。如: ElasticSearch中用于压缩倒排索引内存存储空间的FST,用于……继续阅读 »

winrains 5个月前 (05-19) 49浏览 1个赞

微服务

架构演变之路:为何要搞微服务架构

架构演变之路:为何要搞微服务架构
有不少朋友或同事都问过我这个问题:为什么我们要搞微服务架构,一个项目把代码从头撸到尾不是很方便吗,开发更快速,部署也容易。而且一提起微服务,涉及的技术就一大堆,好像几辈子也学不完。 怎么解答这个问题呢?我想还是通过架构的发展变迁史来说起,为什么会出现现在的各种架构。只有从整体上了解了架构的脉络,我们才好更加全方位的评估一个架构。为此,我们有理由来梳理一下他……继续阅读 »

winrains 5个月前 (05-19) 55浏览 1个赞

MySQL

MySQL 如何对LRU算法进行优化

MySQL 如何对LRU算法进行优化
1. 开篇 MySQL 在查询数据时,对于 InnoDB 存储引擎而言,会先将磁盘上的数据以页为单位,先将数据页加载进内存,然后以缓存页的形式存放在「Buffer Pool」中。Buffer Pool 是 InnoDB 的一块内存缓冲区,在 MySQL 启动时,会按照配置的缓存页的大小,将 Buffer Pool 缓存区初始化为许多个缓存页,默认情况下,……继续阅读 »

winrains 5个月前 (05-19) 101浏览 1个赞

MySQL

MySQL中order by语句的实现原理以及优化手段

MySQL中order by语句的实现原理以及优化手段
相信很多人在面试过程中,总被问到有没有 SQL 调优经验,对于工作经验年限较少的求职者,通常都是在面试之前从网上百度一些答案,提前背熟,然后面试的时候直接将提前背好的答案说出来。笔者作为一名菜鸟,在刚满一年工作经验的时候,出去面试,就是这么干的。记得去某家公司面试的时候,被面试官问到 order by 在排序的时候执行较慢,这个时候该如何优化?我当初想都……继续阅读 »

winrains 5个月前 (05-19) 79浏览 1个赞

Netty

Netty 中的粘包和拆包

Netty 中的粘包和拆包
Netty 底层是基于 TCP 协议来处理网络数据传输。我们知道 TCP 协议是面向字节流的协议,数据像流水一样在网络中传输那何来 “包” 的概念呢? TCP是四层协议不负责数据逻辑的处理,但是数据在TCP层 “流” 的时候为了保证安全和节约效率会把 “流” 做一些分包处理,比如: 发送方约定了每次数据传输的最大包大小,超过该值的内容将会被拆分成两个包发……继续阅读 »

winrains 5个月前 (05-19) 45浏览 1个赞

网络协议

图解 TCP 重传、滑动窗口、流量控制、拥塞控制

图解 TCP 重传、滑动窗口、流量控制、拥塞控制
来了,今天又来图解 TCP 了,小林可能会迟到,但不会缺席。 迟到的原因,主要是 TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了。。。 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 正文 相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现……继续阅读 »

winrains 5个月前 (05-19) 52浏览 3个赞

Linux技术

一篇文章让你彻底掌握 shell 语言

一篇文章让你彻底掌握 shell 语言
1. 简介 1.1. 什么是 shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Wind……继续阅读 »

winrains 5个月前 (05-19) 65浏览 1个赞

Java技术

深入理解 Java 异常

深入理解 Java 异常
1. 异常框架 1.1. Throwable Throwable 是 Java 语言中所有错误(Error)和异常(Exception)的超类。 Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息。 主要方法: fillInStackTrace – 用当前的调……继续阅读 »

winrains 5个月前 (05-19) 71浏览 1个赞