2022 08-14

MapReduce入门实战

MapReduce思想 MapReduce是Google提出的一个软件架构,用于大规模数据集的并行运算。概率“Map(映射)”和“Reduce(归约)”以及它们的思想都是从函数式编程语言借鉴的,还有从矢量编程语言借来的特性。 当前的软件实现是指定一个“Map”函数,用来把一组键值对映射成一组新的键值对,指定并发的“Reduce”函数,用来保证所有映射的键值对中的每一个都共享相同的键组。 HadoopMapReduce的任务过程分为两个阶段: Map阶段:把大任务分解为若干个小任务来并行处理。这

2022 08-13

八个解决你80%需求的CSS动画库

八个解决你80%需求的CSS动画库 点击打开视频讲解 在学习和工作的过程中,我们总免不了要写各种各样的css动画,给某个部分添加动画效果,如果觉得自己写的动画效果单一乏味,不妨试试这8个CSS动画库,值得收藏使用。 一、hover.css 开箱即用的鼠标悬停动画,支持的动画类型有: 2DTransitions(2D过度) BackgroundTransitions(背景过度) IconsTransitions(图标过度) BorderTransitions(边框过度) ShadowandGl

2022 08-13

师爷,你给翻译翻译什么叫工厂模式?

写在前面:  初为职场新手,难免会把代码写的一把梭。遇到业务的时候直接if-else干。但是本着不想被开除的原则,还是学习一下设计模式,今天来看看设计模式之工厂模式。 用需求引出代码:  最近正在开发抽奖系统,系统当中有个业务是发奖业务,奖品有优惠券,实物商品,第三方优惠券。当用户抽中对应的奖品之后,我们需要有对应的方法来发奖。针对这样的业务我们先来看一下代码一把梭的情况。 工程结构:       ⼯程结构上⼀个⼊参对象AwardReq、⼀

2022 08-13

线程的常用方法

线程的常用方法 方法名 static 功能描述 注意 start() 启动一个新线程,在新的线程运行run方法中的代码 start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateException run() 新线程启动后会调用的方法 如果在构造Thread对象时传递了Runnable参数,则线程启动后会调用Runnable中的run方法,否则默认不

2022 08-13

联邦学习:联邦多视角学习在跨领域推荐中的应用

1导引 1.多视角推荐模型 推荐系统中常常面临冷启动和用户交互数据稀疏的问题。解决这个问题的一个手段就是对用户在多个领域(domain)的日志数据联合起来进行建模,这里的多个领域的数据可以指用户在诸如新闻App、音乐App、视频App等多个软件的日志数据(比如点击的浏览新闻标题和描述等)。这种联合建模基于一个假设:用户在不同领域也倾向于拥有相似的偏好,比如喜欢爱情电影的用户也很可能喜欢言情小说。 而多视角(multiview)推荐模型[1]就是一种常见的跨领域数据联合建模方式,它会将多个视角对应

2022 08-13

identity4 系列————开篇概念

前言 identity4其实是openidconnection,那么我们还听说过openid还有oauth2.0 那么下面就介绍一下Oath2.0和openid还有openidconnection 正文 网上说openid是身份认证,然后oauth2.0是授权。 真的是这样吗? 直接看官网。 https://openid.net/what-is-openid/ OpenIDallowsyoutouseanexistingaccounttosignintomultiplewebsites,with

2022 08-13

搞定面试官 - MySQL 中你知道如何计算一个索引的长度嘛?

大家好,我是程序员啊粥。 今天给大家分享一个我遇到过的比较少见的面试题,那就是MySQL中如何计算一个索引的长度。 说实话,我第一次遇到这个问题的时候想当然的以为索引长度就是我们建表时定义的字段长度,如果是联合索引,那就是多个字段长度相加。 事实证明,在我说出上述回答之后,面试官就让我带着简历跑路了。 于是乎,我仔细查阅了相关资料,发现索引长度这个计算方式还是有点意思的,索性给大家分享一下。 首先,我们要知道MySQLInnodb引擎对于索引的长度是有限制的,最大为767字节。 你采用不同的字符

2022 08-13

使用 Java 操作 Redis

Jedis 1.概述 Jedis是一款使用Java操作Redis的工具,有点类似于JDBC 2.引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 3.操作 //创建jedis客户端对象 Jedisjedis=

2022 08-13

django自带的序列化组件

1.什么是序列化组件 在django中,自带一个序列化组件,它是用来将数据进行整理、转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作。 2.为什么要用序列化组件 当我们从数据库取出一些数据时,我们需要将数据转成特定的格式,比如列表套字典的形式,然后将这些数据序列化成json的格式传输给前端,这就需要我们在后端把数据库里的数据每一个都遍历取值出来,这样比较麻烦,而且当数据字段很多的时候,我们很多遍历出来!代码如下: 后端代码: fromdjango.

2022 08-13

从零开始自己动手写阻塞队列

从零开始自己动手写阻塞队列 前言 在我们平时编程的时候一个很重要的工具就是容器,在本篇文章当中主要给大家介绍阻塞队列的原理,并且在了解原理之后自己动手实现一个低配版的阻塞队列。 需求分析 在前面的两篇文章ArrayDeque(JDK双端队列)源码深度剖析和深入剖析(JDK)ArrayQueue源码当中我们仔细介绍了队列的原理,如果大家感兴趣可以查看一下! 而在本篇文章所谈到的阻塞队列当中,是在并发的情况下使用的,上面所谈到的是队列是并发不安全的,但是阻塞队列在并发下情况是安全的。阻塞队列的主要的