Giter Club home page Giter Club logo

blog-gitalk's People

Watchers

tangtang avatar

blog-gitalk's Issues

Treap树 | 烫烫烫个喵啊

https://www.peihuan.net/2019/03/05/Treap%E6%A0%91/

Treap = Tree + Heap Treap树是一种较为简单的二叉查找树,同时也是一种平衡树,她是在BST(二叉搜索树)的基础上添加了一个修正值,在满足BST的性质上,Treap树节点的修正值还满足最小堆性质,最小堆也就是小根堆,根节点的值最小,左右孩子的节点的值都比父节点大。 修正值是在插入一个节点时随机生成的一个值,和插入的值无关。 一棵Treap树具有以下性质 如果她的左子树不为空,

堆(heap)与堆排序 | 烫烫烫个喵啊

https://www.peihuan.net/2018/07/27/%E5%A0%86(heap)%E4%B8%8E%E5%A0%86%E6%8E%92%E5%BA%8F/

堆,也被称为优先队列,是一种特殊的完全二叉树。常见应用是堆排序和Topk问题(找出最大的或最小的k个元素)。队列中允许的操作是先进先出,在队尾插入元素,在队头取出元素。而堆也是一样,在堆尾插入元素,在堆顶取出元素,但是,堆中元素的排列顺序不是像队列一样按照到来的先后顺序,而是按照一定的优先顺序。这个优先顺序,可以按照元素的大小或者其它规则。下面这棵树就是按照元素大小排列的。不难发现这棵二叉树有一个

无法登录谷歌帐号的问题 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/06/%E6%97%A0%E6%B3%95%E7%99%BB%E5%BD%95%E8%B0%B7%E6%AD%8C%E5%B8%90%E5%8F%B7%E7%9A%84%E9%97%AE%E9%A2%98/

日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。 具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。 设置开机自动启动ssr服务,以及自动切换代理。

Class文件结构——常量池 | 烫烫烫个喵啊

https://www.peihuan.net/2020/07/25/Class%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84%E2%80%94%E2%80%94%E5%B8%B8%E9%87%8F%E6%B1%A0/

  文章参考虚拟机规范Chapter 4. The class File Format,这篇文章只说常量池相关部分。常量池中主要存放两大类常量:字面量(Literal)和 符号引用(Symbolic References)。字面量比较接近于 Java 语言层面的常量概念,如文本字符串、声明为 final 的常量值等。而符号引用则属于编译原理方面的概念,包括了下面三类常量: 类

refresh过程——invokeBeanFactoryPostProcessors(beanFactory) | 烫烫烫个喵啊

https://www.peihuan.net/2020/09/23/refresh%E8%BF%87%E7%A8%8B%E2%80%94%E2%80%94invokeBeanFactoryPostProcessors%28beanFactory%29/

invokeBeanFactoryPostProcessors 在 Spring 启动流程中,是非常重要的一个步骤,此阶段会实例化并调用所有注册的 BeanFactoryPostProcessor beans。 方法有两个入参,分别是 工厂 beanFactory 和 初始的List<BeanFactoryPostProcessor>。 123456789101112131415161

毕业旅行——皖南线骑行 | 烫烫烫个喵啊

https://www.peihuan.net/2019/06/16/%E6%AF%95%E4%B8%9A%E6%97%85%E8%A1%8C%E2%80%94%E2%80%94%E7%9A%96%E5%8D%97%E7%BA%BF%E9%AA%91%E8%A1%8C/

  作为十几年学生生涯的华丽谢幕,一场毕业旅行是必不可少的。  一直想去广袤无垠的大草原,去骑马,去吃烤全羊,去喝马奶酒,所以计划原本是呼伦贝尔大草原。招呼了顾同学想一起,只不过来回机票太贵,而且距离他的起点南京非常远,再加上烤全羊什么的,超出了预算,于是作罢。  后来,又想起了皖南线。这是一条美丽的骑行线路,别称小川藏线,这条线路我和我

Welcome. | 烫烫烫个喵啊

https://www.peihuan.net/

帝都小小程序;本站是我平时写的一些博客文章,主要关注 Java 领域相关技术,但愿来到这里的读者能找到些有点用的。 最新文章:为什么short、byte会被提升为int?及基本类型的真实大小(创建于 2020-07-14,更新于 2020-12-03)最新文章:垃圾收集器与内存分配策略(创建于 2020-07-06,更新于 2020-12-03)最新文章:探究Java对象的大小(创建于 2020

探究Java对象的大小 | 烫烫烫个喵啊

https://www.peihuan.net/2020/11/27/%E6%8E%A2%E7%A9%B6Java%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%A4%A7%E5%B0%8F/

对象的内存布局在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 本文不讨论对象头中里面有什么,在32位系统中,对象头占8字节;在64位系统中(未开启指针压缩),对象头占16字节。 第二部分实例数据就是对象真正存储的有效数据,也就是咱们在类中定义的变量。之前在这篇 为什么short、byte

无法登录谷歌帐号的问题3 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/06/%E6%97%A0%E6%B3%95%E7%99%BB%E5%BD%95%E8%B0%B7%E6%AD%8C%E5%B8%90%E5%8F%B7%E7%9A%84%E9%97%AE%E9%A2%983/

日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。 具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。 设置开机自动启动ssr服务,以及自动切换代理。

Java线程 | 烫烫烫个喵啊

https://www.peihuan.net/2020/09/02/Java%E7%BA%BF%E7%A8%8B/

线程的实现  实现线程主要有 3 种方式:使用内核线程实现、使用用户线程实现、使用用户线程加轻量级进程混合实现。 1.使用内核线程实现  内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。每个内核线程可以视为内核的一

html使用正则获取url传的参数 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/05/11/html%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%8E%B7%E5%8F%96url%E4%BC%A0%E7%9A%84%E5%8F%82%E6%95%B0/#more

在搭建这个博客的时候,前台一开始都使用的jsp,使用了很多<% %>,比较难看,可读性也较差,后来逐渐全部换成了ajax获取数据,这时候觉得已经没必要使用jsp了。使用jsp后缀也导致URL链接也非常丑(个人感觉),遂把所有jsp后缀改成html。刷新页面发现报错,<%request.getParameter("xxx")%>因为不是jsp,所以这种方法也行不通了。但js里

谷歌浏览器无法登录谷歌帐号的问题 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/06/%E8%B0%B7%E6%AD%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E6%97%A0%E6%B3%95%E7%99%BB%E5%BD%95%E8%B0%B7%E6%AD%8C%E5%B8%90%E5%8F%B7%E7%9A%84%E9%97%AE%E9%A2%98/

日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。设置开机自动启动ssr服务,以及自动切换代理。就像上图那样,访问google时切换代理,否则直接连接。正常情况都可以访问google

替罪羊树 —— 暴力也是种优雅 | 烫烫烫个喵啊

https://www.peihuan.net/2019/09/15/%E6%9B%BF%E7%BD%AA%E7%BE%8A%E6%A0%91%20%E2%80%94%E2%80%94%20%E6%9A%B4%E5%8A%9B%E4%B9%9F%E6%98%AF%E7%A7%8D%E4%BC%98%E9%9B%85/

​  作为一棵二叉搜索树,那么最重要的就是如何保持自己的平衡,为了保持平衡,二叉搜索树们八仙过海各显神通,如AVL树、红黑树、Treap树、伸展树等等,但万变不离其宗,他们的方法都是基于旋转,然后更改节点间的关系。 ​​  尤其是一些二叉搜索树实现起来非常非常繁琐,像红黑树,增加和删除节点总共大约需要处理十来种情况,写完debug完估计天都已经黑了几次了。

计算机网络运输层详解(1)——概述 | 烫烫烫个喵啊

https://www.peihuan.net/2020/02/09/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E8%BF%90%E8%BE%93%E5%B1%82%E8%AF%A6%E8%A7%A3%EF%BC%881%EF%BC%89%E2%80%94%E2%80%94%E6%A6%82%E8%BF%B0/

概述  因特网的协议栈分为五层:物理层、链路层、网络层、传输层和应用层。   由于链路层交换机只实现了第一层和第二层;路由器实现了第一层到第三层。这意味着路由器能实现ip协议,而链路交换机不能。并且运输层协议是在端系统中而不是路由器中实现的。   运输层协议为运行在不同主机上的应用进程提供逻辑通信,网络层协议提供了主机之间的逻辑通信 &e

最短路径问题(有负边值) | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/14/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98%EF%BC%88%E6%9C%89%E8%B4%9F%E8%BE%B9%E5%80%BC%EF%BC%89/#more

上一篇我们使用了Dijkstra算法来解决最短路径问题,但这个算法有一个局限性,图不能存在负值边,因为Dijkstra算法的策略是贪心算法。 贪心算法对问题只需考虑当前局部信息就要做出决策,也就是说使用贪心算法的前提是“局部最优策略能导致产生全局最优解”。该算法的适用范围较小, 若应用不当, 不能保证求得问题的最佳解(正确解)。例如,下面的图存在负边,那么贪心算法将可能得不到正确的解。

伸展树(SplayTree)的意义与实现 | 烫烫烫个喵啊

http://www2.peihuan.net/2019/06/17/%E4%BC%B8%E5%B1%95%E6%A0%91%EF%BC%88SplayTree%EF%BC%89%E7%9A%84%E6%84%8F%E4%B9%89%E4%B8%8E%E5%AE%9E%E7%8E%B0/

概念  伸展树也是一种平衡二叉搜索树,她不要求自己时刻保持平衡,但她却有这样一条有趣的性质:在一个节点被访问之后,需要将这个节点推至根节点,这样下次能迅速地访问到该节点。其余特性和一般的二叉搜索树一致。 应用场景  在刚开始看到这棵树时,十分好奇,为什么每次访问之后,要将这个节点推送至根节点呢?什么样的场景需要用到伸展树呢?  我们的生活

运行时帧栈结构与方法调用 | 烫烫烫个喵啊

https://www.peihuan.net/2020/08/06/%E8%BF%90%E8%A1%8C%E6%97%B6%E5%B8%A7%E6%A0%88%E7%BB%93%E6%9E%84%E4%B8%8E%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8/

运行时栈帧结构  栈帧是虚拟机用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息。每一个方法从调入开始到执行完成的过程,都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。   在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定

计算机网络运输层详解(3)——可靠数据传输原理 | 烫烫烫个喵啊

https://www.peihuan.net/2020/02/15/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E8%BF%90%E8%BE%93%E5%B1%82%E8%AF%A6%E8%A7%A3%EF%BC%883%EF%BC%89%E2%80%94%E2%80%94%E5%8F%AF%E9%9D%A0%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E5%8E%9F%E7%90%86/

  在讨论TCP协议之前,要先谈一谈可靠数据传输的原理。因为可靠数据传输的实现问题不仅在运输层出现,也会在链路层、应用层出现。TCP所采用的,正是即将描述的内容。

平衡二叉树(AVL树)的实现 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/05/09/%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91%EF%BC%88AVL%E6%A0%91%EF%BC%89%E7%9A%84%E5%AE%9E%E7%8E%B0/

复习一下平衡二叉树,经常混以为就是最优二叉树,其实是最优二叉树是哈夫曼树,这个以后有机会再说。 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,它须保证树的深度是O(log N)。平衡二叉树的常用实现方法有红黑树、

Mac必装高效率工具【持续更新】 | 烫烫烫个喵啊

https://www.peihuan.net/2019/10/10/Mac%E5%BF%85%E8%A3%85%E9%AB%98%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7%E3%80%90%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%E3%80%91/

peco 交互式过滤将任何命令的输出通过管道传给 peco,便能交互式地过滤输出,查找所需信息。你可以把它想成交互式 grep,随着输入实时更新结果,让搜索过程更直观。 安装: brew install peco bat 无缝替换 catcat指令的增强,带高亮,带滚动 安装 brew install bat fzf 快速模糊搜寻器安装 fzf 后,在命令行的任何地方按下 Ctrl

为什么short、byte会被提升为int?及基本类型的真实大小 | 烫烫烫个喵啊

https://www.peihuan.net/2020/07/14/%E4%B8%BA%E4%BB%80%E4%B9%88short%E3%80%81byte%E4%BC%9A%E8%A2%AB%E6%8F%90%E5%8D%87%E4%B8%BAint%EF%BC%9F%E5%8F%8A%E5%9F%BA%E6%9C%AC%E7%B1%BB%E5%9E%8B%E7%9A%84%E7%9C%9F%E5%AE%9E%E5%A4%A7%E5%B0%8F/

  Java中,short 、byte、char 类型的数据在做运算的时候,都会默认提升为 int,如下面的代码,需要将等于号右边的强制转为 short 才可以通过编译。 1234567public static void main(String[] args) { short a = 1; short b = 2; a =

最短路径问题(无负边值)——Dijkstra算法 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/09/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98%EF%BC%88%E6%97%A0%E8%B4%9F%E8%BE%B9%E5%80%BC%EF%BC%89%E2%80%94%E2%80%94Dijkstra%E7%AE%97%E6%B3%95/

Dijkstra算法使用了广度优先搜索解决了赋权有向图或无向图的单源最短路径问题。算法采用了贪心策略,分阶段的求解这个问题,这篇文章,我们进行详细的介绍。这篇文章中,我们以图1.1中的赋权图作为示例。箭头上的数字为权值,圆圈中的字母为顶点中的数据,这里用一个字母表示。我们依旧使用邻接表来表示图,那么上图中的有向图可以表示为图1.2的样子,如果不理解,可以看上篇拓扑排序中的内容。实现步骤首先,我们需

计算机网络运输层详解(3)——可靠数据传输的三种方式 | 烫烫烫个喵啊

https://www.peihuan.net/2020/02/15/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E8%BF%90%E8%BE%93%E5%B1%82%E8%AF%A6%E8%A7%A3%EF%BC%883%EF%BC%89%E2%80%94%E2%80%94%E5%8F%AF%E9%9D%A0%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E7%9A%84%E4%B8%89%E7%A7%8D%E6%96%B9%E5%BC%8F/

  在讨论TCP协议之前,要先谈一谈可靠数据传输的原理。因为可靠数据传输的实现问题不仅在运输层出现,也会在链路层、应用层出现。TCP所采用的,正是即将描述的内容。

垃圾收集器与内存分配策略 | 烫烫烫个喵啊

https://www.peihuan.net/2020/07/06/%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8%E4%B8%8E%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E7%AD%96%E7%95%A5/

垃圾回收算法需要考虑三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 先奉上 Java平台标准版HotSpot虚拟机垃圾收集调优指南 对象已死?  哪些对象需要回收,就是那些死了的对象,即不可能再被任何途径所使用的对象。有两种主流的方法可以判断对象是否需要回收,引用计数法和可达性分析法。

排序笔记 | 烫烫烫个喵啊

https://www.peihuan.net/2019/10/28/%E6%8E%92%E5%BA%8F%E7%AC%94%E8%AE%B0/

排序分为两种,一种是基于比较的排序,如插入排序、快速排序、归并排序等等,这类算法比较常见,但他们的时间复杂度都无法突破下界 O(nlgn)。 另外一种是非基于比较的算法,如计数排序、基数排序、桶排序,他们的时间复杂度可以达到 O(n),是因为算法假设了数据拥有某种分布特性,如范围,如均匀分布等等。

计算机网络运输层详解(2)--UDP | 烫烫烫个喵啊

https://www.peihuan.net/2020/02/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E8%BF%90%E8%BE%93%E5%B1%82%E8%AF%A6%E8%A7%A3%EF%BC%882%EF%BC%89--UDP/#more

UDP协议  运输层的两种协议代表了两个极端,UDP非常简单,它只做了运输层能做的最少工作。除了多路复用/分解功能及少量的差错检测外(对差错无恢复能力),它几乎没有对IP增加别的东西。如果应用层协议开发人员选择UDP而不是TCP,那么该应用应用程序差不多就是直接与IP打交道。   使用UDP时,再发送报文之前,发送方和接收方之间没有握手,所以是无连接的。且U

拓扑排序 | 烫烫烫个喵啊

http://www2.peihuan.net/2018/08/07/%E6%8B%93%E6%89%91%E6%8E%92%E5%BA%8F/

拓扑排序是对有向无圈图的顶点的一种排序,它使得如果存在一条从vi 到vj 的路径,那么排序中vj 在vi 的后面。如果图含有圈,那么拓扑排序是不可能的。此外,排序的结果不是唯一的,任何合理的排序都是可以的。 拓扑排序对应施工的流程图具有特别重要的作用,它可以决定哪些子工程要先执行,哪些子工程要在某些工程执行后才可以执行。选课课程同样如此,有些必须课必须要先修,有些要某些课程结束之后才能选修。 图的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.