徐小夕 徐小夕
4年前
JavaScript 中的二叉树以及二叉搜索树的实现及应用
接下来让我们一起来探讨js数据结构中的树。这里的树类比现实生活中的树,有树干,树枝,在程序中树是一种数据结构,对于存储需要快速查找的数据非有用,它是一种分层数据的抽象模型。一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点以及零个或多个子节点。如下所以为一个树结构:)(https://imghelloworld.osscnbe
Kubrnete Kubrnete
4年前
完全背包问题
问题描述有n种物品和一个容量为c的背包,每种物品都就可以选择任意多个,第i种物品的价值为v\i\,体积为w\i\,求解:在不超过背包容量的情况下,选择放入哪些物品能够使得背包中的价值最大?跟01背包一样,完全背包也是一个很经典的动态规划问题,不同的地方在于01背包问题中,每件物品最多选择一件;而在完全背包问题中,只要背包装得下,每件物品可
某站App签名算法解析(一)
一、目标我们来分析某站App的sign签名算法,先搜索一下游戏,抓包结果:二、步骤这个sign依然是32位的字符串都9020年了,这种规模用户的App应该是不会裸奔在java层了,我们就直接一点,在so里面搜索sign可惜没有结果……藏起来的东西一定是重要的东西so层导出函数给java层调用,有两种方法,一种是静态注册,直接会体现在so的导出表
Wesley13 Wesley13
3年前
RSA 经验之谈
  写代码这么多年了,在涉及RSA跨语言的功能时,总会让人经历一番折磨。所以有必要把现在我掌握的这些零碎的知识总结一下公布出来,免得组内同事再走弯路。由于RSA实在太复杂,还有很多内容没弄懂,也没精力全了解,暂且把问题留下,未来也许能回答。所以这篇文章的标题为“经验之谈”  本质上是数字运算  RSA算法的本质是找到几个非常大的数,然后做运算
Stella981 Stella981
3年前
REDIS 客户端封装 SPARROW 框架源码
redis本身有客户端,先抛出来一个问题?为什么要对redis客户端进行二次封装?大概在11年时侯,第一次接触redis,那时侯研究过redis的各种数据结构,直接拿redis的客户端jedis直接用。公司安排人要对jedis进行封装,当时就很不理解,为什么非要封装一次才可以?后来自己写框架,意识到一些东西是需要封装的,比如连接的打开和释放,比如一
Stella981 Stella981
3年前
Netty面试题
1.BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处
Wesley13 Wesley13
3年前
PHP观察者模式
其实不用刻意去学习模式,我们平常看代码,写代码的过程中已经接触或使用过不少设计模式,只是我们不知道罢了。但是我们仍然需要了解一下书上的说法,对比印证一下,加深理解。本文说的是设计模式:观察者模式根据字面意思理解,我们知道关键字是“观察”两个字,这是一个动词,那么就需要有"被观察者"和"观察者"。举个栗子:公司有一台很重要的线上服务器,以及一个
可莉 可莉
3年前
2019年春阅读笔记1——JAVA发展史
  Java编程语言从诞生到现在已经二十年多年,现已发展成为计算机史上影响深远的编程语言之一,开源/跨平台是其最大的特征,也正是因为此,Java不断地吸引世界上众多优秀程序员来进行学习。  Java从第一个版本的诞生,到现在已经有20多年的时间了。经过这20多年的发展,以及数次的迭代,Java现在发展到了第九个版本JDK1.9。相比于最早的JDK1
十月飞翔 十月飞翔
3年前
Linux如何记录所有用户的history命令
当很多人共用一台服务器时,难免会造成一些难以想象的事故,尤其是大家除了共用一台服务器外还共用了一个权限很大的账号,比如root,那么此时为了避免出现事故后不知道是谁操作的,所以还是有必要记录所有使用此账号登录并操作的命令的。1.新建日志文件touch/var/local/mon.log2.修改权限chmod002/var/local/mon.log3.
3A网络 3A网络
2年前
MySQL 覆盖索引详解
1.什么是索引?索引(在MySQL中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类似书本的目录,这个比方虽然被用的最多但是也是最恰如其当的,在查询书本中的某个知识点不借助目录的情况下,往往都找的够呛,那么索引相较于数据库的重要性也可见一斑。2.索引的有哪些种类?索引的种类这里只罗列出InnoDB支持的索引:主键索引(PRIMAR