6 杨同学_

尚未进行身份认证

我要认证

一名90后码农,座右铭:学而不思则罔 思而不学则殆。

等级
TA的排名 41w+

面试官:HashMap了解吗?回答balabala。那你讲讲红黑树吧!

目录1. 二叉树基本概念1.1 什么是树(Tree)?1.2 什么是二叉树(Binary Tree)?1.3 二叉树的存储1.4 二叉树的遍历2. 二叉查找树2.1 二叉查找树的查找操作2.2 二叉查找树的插入操作2.3 二叉查找树的删除操作3. 红黑树(Red-Black Tree)3.1 如何定义一棵"红黑树"?参考资料1. 二叉树基本概念二叉树有哪几种存储方式?什么样的二叉树适合用数组来存储?1.1 什么是树(Tree)?树的相关概念:节点(Node)、高度(Height)、深度(Depth)

2020-07-02 20:54:17

面试官,请不要再问我 Redis 的淘汰策略了!

面试官,请不要再问我 Redis 的淘汰策略了!第一种策略 noeviction第二种策略 volatile-lru第三种策略 volatile-lfu第四种策略 volatile-ttl第五种策略 volatile-random第六种策略 allkey-lru第七种策略 allkeys-lfu第八种策略 allkeys-randomRedis 引入基于样本的 eviction pool,来提升剔除的准确性。当 Redis 内存占用超过阀值后,按策略从主 dict 或者带过期时间的 expire dict

2020-07-01 23:01:27

网络IO模型:如何解决高并发下IO瓶颈?(一)

在我们日常工作当中,经常会接触到程序读写磁盘、网络通信,这就是宏观上的网络IO。IO分为磁盘IO和网络IO,比如我们使用Java提供的流读取磁盘时,会涉及到一些流操作,回顾一下,Java流可总结为下图:也就是2大类,字节流和字符流。我们知道,字节是信息存储的最小单元,这里你可能会有疑问,既然Java提供了字节流,为什么还要使用字符流呢?很多情况下,字节流已经可以满足大多数场景下的数据传输,但是字节数据还需要经过一次转换,也就是转成字符,才能被我们看懂,这个转换过程会涉及到编码转码,如果由

2020-05-30 11:50:22

SpringCloud之Zuul:微服务系统架构网关

目录1. 什么是Zuul?2. Zuul深入剖析2.1 过滤器2.2 源码理解3. Zuul应用场景3.1 Zuul如何实现路由转发?3.2 Zuul如何实现限流熔断?3.3 Zuul如何进行压力测试4. Zuul2.0概述1. 什么是Zuul?Zuul是从设备、网站到应用程序后端的所有请求的前门。作为边缘服务应用程序,Zuul旨在实现动态路由,监控,弹性和安全性。Zuul使用了各种不同类型的过滤器,这使我们能够快速灵活地将功能应用于边缘服务。这些过.

2020-05-23 11:25:01

关于写博客的几点思考

很早就有这么一个想法了,只是迫于肚子里没货一直没实现。但是现在,我觉得应该开始进行这么一项记录了。博客初衷做为一个 IT 人,知识从输入到出才是一个完整的过程,这2年我一直是这么想的。最近1年,由于学习了几个专栏课程后,很多次都有一个思想顿悟的时刻,我知道,那时刻我是很满足的。现在,我决定输出我的想法,我对知识的理解,不是因为觉得自己有多么厉害,而是认为这是一条通往厉害的必经之路。左耳朵耗子说过,当现在自己看以前写的观点被啪啪打脸时,这是一种提高,而且也很享受这样一种被打脸的感觉。我觉得,我也应

2020-05-21 22:35:03

你知道HTTP协议的ETag是干什么的吗?

前言在HTTP1.1规范中,新增了一个HTTP头信息:ETag。对于普通开发者来说,可能平时真的不会接触到该HTTP头。平时接触不到或者说用得少,不代表这个请求头不重要。ETag使用得当,是可以减少服务器带宽压力的。什么是ETag?Etag是 Entity tag的缩写,可以理解为“被请求变量的实体值”,Etag是服务端的一个资源的标识,在 HTTP 响应头中将其传送到客户端。所谓的服务端资源可以是一个Web页面,也可以是JSON或XML等。服务器单独负责判断记号是什么及其含义,并在HTTP响应

2020-05-12 16:10:20

搭建Ubuntu虚拟机

背景日常工作中,在测试feature环境时,本机无法进行其他开发工作,影响工作效率。因此搭建一套虚拟机环境,解决该类问题,同时也考虑到后面进行技术分享,需要用到linux环境,所以搭建了ubuntu桌面版操作系统。本文档所提到的安装包,均已打包提供。1. 安装虚拟机本次安装的是VMware Workstation 14版本,安装步骤简单2. 安装Ubuntu 64位OS ...

2019-06-10 15:59:13

Gitlab ssh问题

问题描述:Please make sure you have the correct access rights and the repository exists.找到现有的SSH密钥对在生成新的SSH密钥对之前,通过打开shell或Windows上的命令提示符并运行以下命令,检查您的系统是否已在默认位置具有一个密钥对:Windows命令提示符:type %userpr...

2019-04-09 18:50:38

排序算法之堆排序

在介绍堆排序算法之前,首先要有以下几点预备知识:1. 堆是具有以下性质的完全二叉树:每个节点的值都大于其左右子节点的值,称为大顶堆;每个节点的值都小于其左右子节点的值,称为小顶堆。如下图所示:2. 大顶堆的性质可以表示为:array[i] > array[2*i+1] && array[i] > array[2*i+2];小顶堆的性质可以表示为:arra...

2018-08-08 22:12:09

运满满面试

自我介绍:基本信息; 擅长;面试官 : 说说你最擅长的方面。我 : 擅长soa方面的东西。面试官 : hashmap的底层原理是什么?它跟treemap有什么区别?面试官 : 知道nio吗?面试官 : 怎么写一个多线程?为什么要用线程池?面试官: springMVC是怎么样实现的?人事面hr : 你为什么想换工作?...

2018-08-03 22:47:26

排序算法之快速排序

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3....

2018-08-02 23:18:25

Cypher语句样例

增插入节点。插入一个Person类别的节点,且这个节点有一个属性name,属性值为AndresCREATE(n:Person { name : 'Andres'}); 插入边。插入一条a到b的有向边,且边的类别为FollowMATCH(a:Person),(b:Person)WHEREa.name = 'Node A' AND b.name = 'Node B'CREATE(a)-[r:Follo...

2018-07-09 19:50:34

Java之HashMap

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义      HashMap实现了Map接口,继承Abstrac...

2018-06-19 21:04:40

虚拟机安装ubuntu总结

一、首先设置root登录1. 设置root的密码,sudo passwd -u root二、安装ifconfig1. 下载ifconfig: sudo apt-get install net-tools三、关闭防火墙1. 安装sudo apt-get install ufw2. 查看防火墙状态:sudo ufw status3. 关闭防火墙:sudo ufw disable4. 开启/禁用相应端口...

2018-04-13 00:33:06
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。