peihuanhuan / blog-gitalk Goto Github PK
View Code? Open in Web Editor NEWblog gitalk
blog gitalk
http://www2.peihuan.net/2019/08/08/hello-world/
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick
https://www.peihuan.net/2019/03/05/Treap%E6%A0%91/
Treap = Tree + Heap Treap树是一种较为简单的二叉查找树,同时也是一种平衡树,她是在BST(二叉搜索树)的基础上添加了一个修正值,在满足BST的性质上,Treap树节点的修正值还满足最小堆性质,最小堆也就是小根堆,根节点的值最小,左右孩子的节点的值都比父节点大。 修正值是在插入一个节点时随机生成的一个值,和插入的值无关。 一棵Treap树具有以下性质 如果她的左子树不为空,
https://www.peihuan.net/2018/12/18/Jdk%E6%BA%90%E7%A0%81%EF%BC%88%E4%B8%80%EF%BC%89Integer/
摘要:略 类关系图 一些重要点 自动拆箱与装箱 -128~127的缓存 一些字段 static final int MAX_VALUE static final int MAX_VALUE static final Class< Integer > TYPE static char[] digits 一些方法 static int highestOneBit(int i)
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个元素)。队列中允许的操作是先进先出,在队尾插入元素,在队头取出元素。而堆也是一样,在堆尾插入元素,在堆顶取出元素,但是,堆中元素的排列顺序不是像队列一样按照到来的先后顺序,而是按照一定的优先顺序。这个优先顺序,可以按照元素的大小或者其它规则。下面这棵树就是按照元素大小排列的。不难发现这棵二叉树有一个
日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。 具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。 设置开机自动启动ssr服务,以及自动切换代理。
文章参考虚拟机规范Chapter 4. The class File Format,这篇文章只说常量池相关部分。常量池中主要存放两大类常量:字面量(Literal)和 符号引用(Symbolic References)。字面量比较接近于 Java 语言层面的常量概念,如文本字符串、声明为 final 的常量值等。而符号引用则属于编译原理方面的概念,包括了下面三类常量: 类
invokeBeanFactoryPostProcessors 在 Spring 启动流程中,是非常重要的一个步骤,此阶段会实例化并调用所有注册的 BeanFactoryPostProcessor beans。 方法有两个入参,分别是 工厂 beanFactory 和 初始的List<BeanFactoryPostProcessor>。 123456789101112131415161
作为十几年学生生涯的华丽谢幕,一场毕业旅行是必不可少的。 一直想去广袤无垠的大草原,去骑马,去吃烤全羊,去喝马奶酒,所以计划原本是呼伦贝尔大草原。招呼了顾同学想一起,只不过来回机票太贵,而且距离他的起点南京非常远,再加上烤全羊什么的,超出了预算,于是作罢。 后来,又想起了皖南线。这是一条美丽的骑行线路,别称小川藏线,这条线路我和我
https://www.peihuan.net/2020/02/24/test/
帝都小小程序;本站是我平时写的一些博客文章,主要关注 Java 领域相关技术,但愿来到这里的读者能找到些有点用的。 最新文章:为什么short、byte会被提升为int?及基本类型的真实大小(创建于 2020-07-14,更新于 2020-12-03)最新文章:垃圾收集器与内存分配策略(创建于 2020-07-06,更新于 2020-12-03)最新文章:探究Java对象的大小(创建于 2020
对象的内存布局在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 本文不讨论对象头中里面有什么,在32位系统中,对象头占8字节;在64位系统中(未开启指针压缩),对象头占16字节。 第二部分实例数据就是对象真正存储的有效数据,也就是咱们在类中定义的变量。之前在这篇 为什么short、byte
http://www2.peihuan.net/2018/06/25/Scrapy%E7%88%AC%E8%99%AB%E5%85%A5%E9%97%A8/#more
最近两天又闲得慌了,学习了一下爬虫。爬虫,久闻大名,如雷贯耳,总觉得是个很牛逼的东西,难度不小。学了两天下来,发现是很牛逼,但是难度真的不大。 在学习之前,一片空白。大约一年前看过廖雪峰的Python教程,现在
日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。 具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。 设置开机自动启动ssr服务,以及自动切换代理。
http://www2.peihuan.net/2019/08/08/hello-world2/
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick
https://www.peihuan.net/2020/09/02/Java%E7%BA%BF%E7%A8%8B/
线程的实现 实现线程主要有 3 种方式:使用内核线程实现、使用用户线程实现、使用用户线程加轻量级进程混合实现。 1.使用内核线程实现 内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。每个内核线程可以视为内核的一
http://www2.peihuan.net/2019/04/18/SpringJpa%20%E4%B8%8E%20QueryDsl%E7%9A%84%E4%BD%BF%E7%94%A8/
最近看了下jpa与querydsl的用法,使用起来狠舒服,几乎不用写sql。 起因 过去一直都使用mybatis,想要尝试一下新花样 都是spring全家桶的东西,据说很爽 Start1.Jpa 添加jpa的依赖 build.gradle 1234567891011121314151617181920212223plugins { id 'org.springframewo
https://www.peihuan.net/2019/04/18/SpringJpa%20%E4%B8%8E%20QueryDsl%E7%9A%84%E4%BD%BF%E7%94%A82/
最近看了下jpa与querydsl的用法,使用起来狠舒服,几乎不用写sql。 起因 过去一直都使用mybatis,想要尝试一下新花样 都是spring全家桶的东西,据说很爽
在搭建这个博客的时候,前台一开始都使用的jsp,使用了很多<% %>,比较难看,可读性也较差,后来逐渐全部换成了ajax获取数据,这时候觉得已经没必要使用jsp了。使用jsp后缀也导致URL链接也非常丑(个人感觉),遂把所有jsp后缀改成html。刷新页面发现报错,<%request.getParameter("xxx")%>因为不是jsp,所以这种方法也行不通了。但js里
日常需要,fq是必需的。因为arch官方以及aur提供的都是shadowsocks,不是ssr。所以我们需要去github上使用一些开源的ssr项目。具体配置过程不说明了。和windows下有所不同的是,谷歌浏览器还需要安装switchyomega插件来进行设置代理。设置开机自动启动ssr服务,以及自动切换代理。就像上图那样,访问google时切换代理,否则直接连接。正常情况都可以访问google
作为一棵二叉搜索树,那么最重要的就是如何保持自己的平衡,为了保持平衡,二叉搜索树们八仙过海各显神通,如AVL树、红黑树、Treap树、伸展树等等,但万变不离其宗,他们的方法都是基于旋转,然后更改节点间的关系。 尤其是一些二叉搜索树实现起来非常非常繁琐,像红黑树,增加和删除节点总共大约需要处理十来种情况,写完debug完估计天都已经黑了几次了。
概述 因特网的协议栈分为五层:物理层、链路层、网络层、传输层和应用层。 由于链路层交换机只实现了第一层和第二层;路由器实现了第一层到第三层。这意味着路由器能实现ip协议,而链路交换机不能。并且运输层协议是在端系统中而不是路由器中实现的。 运输层协议为运行在不同主机上的应用进程提供逻辑通信,网络层协议提供了主机之间的逻辑通信 &e
上一篇我们使用了Dijkstra算法来解决最短路径问题,但这个算法有一个局限性,图不能存在负值边,因为Dijkstra算法的策略是贪心算法。 贪心算法对问题只需考虑当前局部信息就要做出决策,也就是说使用贪心算法的前提是“局部最优策略能导致产生全局最优解”。该算法的适用范围较小, 若应用不当, 不能保证求得问题的最佳解(正确解)。例如,下面的图存在负边,那么贪心算法将可能得不到正确的解。
概念 伸展树也是一种平衡二叉搜索树,她不要求自己时刻保持平衡,但她却有这样一条有趣的性质:在一个节点被访问之后,需要将这个节点推至根节点,这样下次能迅速地访问到该节点。其余特性和一般的二叉搜索树一致。 应用场景 在刚开始看到这棵树时,十分好奇,为什么每次访问之后,要将这个节点推送至根节点呢?什么样的场景需要用到伸展树呢? 我们的生活
运行时栈帧结构 栈帧是虚拟机用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息。每一个方法从调入开始到执行完成的过程,都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。 在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定
https://www.peihuan.net/2019/10/09/%E9%9D%92%E5%B2%9B%E4%B9%8B%E8%A1%8C/
今年国庆,很早就计划到哪里玩了,考虑了很多,有大草原,坝上、呼伦贝尔,有沙漠,还有成都、重庆……但都被一一否决了,要么太远,车票太贵,要么比较适合自驾游,最后选来选去,最后来到了不在选择中的青岛~
在讨论TCP协议之前,要先谈一谈可靠数据传输的原理。因为可靠数据传输的实现问题不仅在运输层出现,也会在链路层、应用层出现。TCP所采用的,正是即将描述的内容。
复习一下平衡二叉树,经常混以为就是最优二叉树,其实是最优二叉树是哈夫曼树,这个以后有机会再说。 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,它须保证树的深度是O(log N)。平衡二叉树的常用实现方法有红黑树、
http://www2.peihuan.net/about/
技术、生活随笔
peco 交互式过滤将任何命令的输出通过管道传给 peco,便能交互式地过滤输出,查找所需信息。你可以把它想成交互式 grep,随着输入实时更新结果,让搜索过程更直观。 安装: brew install peco bat 无缝替换 catcat指令的增强,带高亮,带滚动 安装 brew install bat fzf 快速模糊搜寻器安装 fzf 后,在命令行的任何地方按下 Ctrl
Java中,short 、byte、char 类型的数据在做运算的时候,都会默认提升为 int,如下面的代码,需要将等于号右边的强制转为 short 才可以通过编译。 1234567public static void main(String[] args) { short a = 1; short b = 2; a =
https://www.peihuan.net/2019/04/03/%E7%8E%89%E6%B8%8A%E6%BD%AD/
3月中旬去玉渊潭看樱花,樱花还没有完全盛开,只开了一小部分。不过,山桃花全都绽放了,赶上了好时候,天气很暖和,天很蓝。
Dijkstra算法使用了广度优先搜索解决了赋权有向图或无向图的单源最短路径问题。算法采用了贪心策略,分阶段的求解这个问题,这篇文章,我们进行详细的介绍。这篇文章中,我们以图1.1中的赋权图作为示例。箭头上的数字为权值,圆圈中的字母为顶点中的数据,这里用一个字母表示。我们依旧使用邻接表来表示图,那么上图中的有向图可以表示为图1.2的样子,如果不理解,可以看上篇拓扑排序中的内容。实现步骤首先,我们需
在讨论TCP协议之前,要先谈一谈可靠数据传输的原理。因为可靠数据传输的实现问题不仅在运输层出现,也会在链路层、应用层出现。TCP所采用的,正是即将描述的内容。
垃圾回收算法需要考虑三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 先奉上 Java平台标准版HotSpot虚拟机垃圾收集调优指南 对象已死? 哪些对象需要回收,就是那些死了的对象,即不可能再被任何途径所使用的对象。有两种主流的方法可以判断对象是否需要回收,引用计数法和可达性分析法。
http://www2.peihuan.net/2019/08/07/hello-world/#more
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick
https://www.peihuan.net/2019/10/28/%E6%8E%92%E5%BA%8F%E7%AC%94%E8%AE%B0/
排序分为两种,一种是基于比较的排序,如插入排序、快速排序、归并排序等等,这类算法比较常见,但他们的时间复杂度都无法突破下界 O(nlgn)。 另外一种是非基于比较的算法,如计数排序、基数排序、桶排序,他们的时间复杂度可以达到 O(n),是因为算法假设了数据拥有某种分布特性,如范围,如均匀分布等等。
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 的后面。如果图含有圈,那么拓扑排序是不可能的。此外,排序的结果不是唯一的,任何合理的排序都是可以的。 拓扑排序对应施工的流程图具有特别重要的作用,它可以决定哪些子工程要先执行,哪些子工程要在某些工程执行后才可以执行。选课课程同样如此,有些必须课必须要先修,有些要某些课程结束之后才能选修。 图的
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.