Top K算法在不管是在日常的业务开发中,还是在大数据面试中都是非常非常非常常见的一个知识点,其实通俗一点来理解Top K算法也就是在一组数据中找出排名前K个的信息,比较常见的是推荐排名、积分排名、以及微博根据信息热度来排名,这些可以理解为是业务类型的场景,另外还有一些是面试中会问到的关于数据结构方面的知识点,那么在这里本文主要想通过实战的方式不同的维度来实现Top K算法!
常规Top K算法实现可以通过排...
阅读全文
随机算法
先将服务器放进数组或者列表当中,通过JDK的随机算法,获取一个在数组有效范围内的下标,根据这个随机下标访问对应服务器。由概率统计理论可以得知,随着客户端调用服务器的次数增多,其实际效果越来越接近于平均分配请求到服务器列表中的每一台服务器。
代码:
public String random(){
String[] servers = {"server1", "server2", "server3"};
// 将系统的当前时间作为种子获取一个随机器
...
阅读全文
Maven是什么?
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
为什么要使用Maven?
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比...
阅读全文
锁的级别从低到高:
无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁
锁分级别原因:
没有优化以前,sychronized是重量级锁(悲观锁),使用 wait 和 notify、notifyAll 来切换线程状态非常消耗系统资源;线程的挂起和唤醒间隔很短暂,这样很浪费资源,影响性能。所以 JVM 对 sychronized 关键字进行了优化,把锁分为 无锁、偏向锁、轻量级锁、重量级锁 状态。
无锁:没有对资源进行锁定,所有的线程都能访问并修改同...
阅读全文
什么是限流?对服务器接收到的请求作出限制,只有一部分请求能真正到达服务器,其他的请求可以延迟,也可以拒绝。从而避免所有请求到数据库,打垮 DB。
限流算法用哪个比较合适
关于限流算法,网上的解释一大堆,漏桶算法,令牌桶算法等等,百度一下,你就知道,在这里车辙用最简单的计数器算法作为实现。
计数器算法
将一秒钟分为 10 个阶段,每个阶段 100ms。
每隔 100ms 记录下接口调用的次数。
...
阅读全文
从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。
1、递归是什么意思
递归就是函数自己调用自己。
2、构成递归需具备的条件:
子问题须与原始问题为同样的事,且更为简单;
不能无限制地调用本身,须有个出口,化简为非递归状况处理。
递归的基本原理
第一:每一级的函数调用都有自己的变量。
第...
阅读全文
本文将着重对 Laravel、Symfony 和 Zend 这三个框架做性能对比,并且还要说明为什么这三个框架总是被错误的进行比较。
所有这些框架都足够快,都可以满足你构建任何应用。写这篇文章之前我也犹豫过,我认为做这种层次的对比其实真的挺傻的。我唯一的目的是展示如何在三个框架之间进行公平的比较。
当你在一台全新的 DigitalOcean 服务器上配置 Symfony 或 Zend 项目时,你会发现返回的 http 响应是没有 session 信...
阅读全文
Composer 是新一代的PHP依赖管理工具。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。
1.仅更新单个库
只想更新某个特定的库,不想更新它的所有依赖,很简单
composer update foo/bar
此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这样的警告信息:
Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated d...
阅读全文
在PHP中定义常量时,可用const与define这两种方式,那他们到底有什么区别呢?
const与define的区别
1. const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。
2. define不能定义在类中,而const必须定义在类中,并且const定义的变量必须通过类名::变量名来进行访问。
3. const不能在条件语句中定义常量。
4. const采用一个普通的常量名称(静态的标量),define...
阅读全文
每门语言都会有一些内置函 数,这些函数对开发者人员来说是至关重要的。本文将分享7个极少被大家提起,但用处却极大的PHP内置函数。
PHP有许多的内置函 数,其中的大多数都被程.序员广泛使用。但也有一些函.数隐藏在角落,本文将向大家介绍7个鲜为人知,但用处非常大的函.数。
PHP内置函数:
1.highlight_string()
当一个网站需要展示PHP代.码时,highlight_string()函.数就变的非常有用了。该函.数通过使用...
阅读全文