-
Android获取RecyclerView滑动距离方法详细讲解
先说能用的究极解决方案,大家着急的直接复制走,以后想了解再过来看 没有header,且所有Item的高度一致 private fun getScrollYDistance(recyclerView: RecyclerView): Int? { kotlin.runCatching { val layoutManager = recyclerView.layoutManager as LinearLayoutManager val position = layoutManager.findFirs
-
Python中的 enum 模块源码详析
起步 上一篇 <Python 的枚举类型> 文末说有机会的话可以看看它的源码.那就来读一读,看看枚举的几个重要的特性是如何实现的. 要想阅读这部分,需要对元类编程有所了解. 成员名不允许重复 这部分我的第一个想法是去控制 __dict__ 中的 key .但这样的方式并不好,__dict__ 范围大,它包含该类的所有属性和方法.而不单单是枚举的命名空间.我在源码中发现 enum 使用另一个方法.通过 __prepare__ 魔术方法可以返回一个类字典实例,在该实例 使用 __prepare__
-
一条慢SQL语句引发的改造之路
目录 前言 背景 分库分表 搜索引擎 OLAP(AnalyticDBMySQL) 双写 DTS 监听binlog 慢SQL 执行计划 实时同步延时 总结 前言 闲鱼服务端在做数据库查询时,对每一条SQL都需要仔细优化,尽可能使延时更低,带给用户更好的体验.但是在生产中偶尔会有一些情况怎么优化都无法满足业务场景.本文通过对一条慢SQL的真实改造,介绍解决复杂查询的一种思路,以及如何使得一条平均RT接近2s的SQL,最终耗时下降30倍. 背景 先来看一条SQL select id,userid,it
-
Feign 集成 Hystrix实现不同的调用接口不同的设置方式
问题描述 小编在写项目时遇到一个需求: 假设现在有三个项目A.B.C,其中A.B作为服务提供方,C作为调用方,需要实现C在调用A.B时实现不同的超时时间,比如C调用A时超时是2s,调用B时超时是3s.... 本来以为是很简单的事,但是面向百度编程时发现没有搜索到,官网也没有,这就难受了,小编属于那种不会主动研究源码的,都是项目有需要或者说看到别人改造了啥玩意特别有意思,否则都不去喵一眼,现在没办法只能研究一波源码,手动改造. 正文 正文分为三个部分描述 源码研究 提出方案 方案实现 源码研究 先
-
微信小程序开发之map地图组件定位并手动修改位置偏差
环境搭建 注册,获取APPID(没有这个不能真鸡调试) 下载微信web开发者工具(挺多bug,将就用) 打开微信web开发者工具,扫码登录,新建小程序,输入APPID,勾选创建quick start项目. 工程结构 可以看到工程根目录中有个app.js,这里可以定义全局变量,通过getApp()获取. 项目中有了一些示例,已经有了获取用户信息的方法等. 开发地图定位,选择位置功能 我们直接修改index页面来做这个功能. 准备 新建imgs目录,加入2个图标(ic_location和ic_pos
-
原生JS实现的跳一跳小游戏完整实例
本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成动作并进行判断: 首先po一下代码: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="vie
-
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
//屏蔽鼠标右键.Ctrl+n.shift+F10.F5刷新.退格键 function KeyDown(){ if ((window.event.altKey)&& ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ← (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 → alert("不准你使用ALT+方向键前进或后退网页!"); event.returnValue=false;
-
Android Studio通过Artifactory搭建本地仓库优化编译速度的方法
Android Studio 编译速度慢,一般来说,原因有下面几个. Gradle下载慢 依赖库下载慢 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式) 这里,大部分的库,我们可以通过阿里云代理仓库. 但是,如果有我们自己的私有库或者插件的话.肯定不希望放到阿里云上了. 这个时候,我们就需要建立,我们自己的本地仓库,让私有仓库,依赖阿里云的私有仓库. 依赖关系,如下图 这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利. 通过Ar
-
用Java实现简单画板功能
现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形.圆形.多边形...).可以选择颜色. 首先,打开windows下的画图软件,我们知道我们需要一个窗体(JFrame):我们要画画,需要画板:我们要选择图形.颜色,所以还应用到按钮组件,说到这里,我们所需要的原料基本完成了.接下来,我们要考虑布局:我们采用最简单的布局,窗体的最上面放选择图形的按钮,中间是画板,最下面是选择颜色的按钮.就是这样的: 我们把图形按钮.颜色按钮安排在两个面板上,画板为一个单独的面板,对于布局
-
Android编程实现的短信编辑器功能示例
本文实例讲述了Android编程实现的短信编辑器功能.分享给大家供大家参考,具体如下: 修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ex
-
关于IIS 对temp目录访问权限问题的解决方法
拒绝访问 temp 目录.用来运行 XmlSerializer 的标识"NT AUTHORITY\NETWORK SERVICE"没有访问 temp 目录的足够权限.CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如果用户没有访问系统 temp 目录的权限,将无法进行编译.使用 Path.GetTempPath() API 找到 temp 目录的位置. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信
-
SpringBoot+RabbitMQ+Redis实现商品秒杀的示例代码
目录 业务分析 创建表 功能实现 1.用户校验 2.下单 3.减少库存 4.支付 总结 业务分析 一般而言,商品秒杀大概可以拆分成以下几步: 用户校验 校验是否多次抢单,保证每个商品每个用户只能秒杀一次 下单 订单信息进入消息队列,等待消费 减少库存 消费订单消息,减少商品库存,增加订单记录 付款 十五分钟内完成支付,修改支付状态 创建表 goods_info 商品库存表 列 说明 id 主键(uuid) goods_name 商品名称 goods_stock 商品库存 package com.
-
线上MySQL的自增id用尽怎么办
目录 表定义自增值id InnoDB系统自增row_id Xid Innodb trx_id InnoDB数据可见性的核心思想 thread_id 总结 MySQL的自增id都定义了初始值,然后不断加步长.虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限.比如,无符号整型(unsigned int)是4个字节,上限就是2^32 - 1.那自增id用完,会怎么样? 表定义自增值id 表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变. mysql> crea
-
JavaScript 学习笔记(十三)Dom创建表格
Dom基础-创建表格 利用js来动态创建表格有两种格式,appendChild()和insertRow.insertCell().但第一种有可能在IE上有问题,所以推荐使用第二种. 1.insertRow(index):index从0开始 这个函数将新行添加到index的那一行前,比如insertRow(0),是将新行添加到第一行之前.默认的insertRow()函数相当于 insertRow(-1),将新行添加到表的最后.一般我们在使用的时候都是: objTable.insertRow (ob
-
PHP句法规则详解 入门学习
1.简单句法规则(用花括号界定变量名,适用于PHP所有版本): 复制代码 代码如下: $a ='flower'; echo "She received some $as";// 无效:字母s会被当成有效的变量名组成元素,但是这里的变量是$a echo "She received some ${a}s";// 有效 echo "She received some {$a}s";// 有效:推荐的使用方法 我们希望表达的是"她收到一些花&q
-
JSP的内部对象
最後一个与JSP语法有关的元件叫做内部物件.在JSP小型指令档内,你可以存取这些内部物件来与执行JSP网页的servlet环境相互作用.许多对内部物件的存取应该要简化.然而,这些是范例,它们的存取都是可接受的,要完整的利用内部物件设定则要对最新的Java Servlet API有所了解.下表列出你可以使用的内部物件. 内部物件说明 request 用户端请求,此请求会包含来自GET/POST请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里
-
使用Redis如何设置永久有效
目录 如何设置永久有效 Redis设置密码 1. 命令行设置密码 2. 配置文件设置密码 如何设置永久有效 PERSIST key 持久化 key 和 value Redis 在默认情况下会采用 noeviction 回收策略,即不淘汰任何键值对,当内存己满时只能提供读操作,不能提供写操作 Redis设置密码 设置密码有两种方式. 1. 命令行设置密码 运行cmd切换到redis根目录,先启动服务端 >redis-server.exe 另开一个cmd切换到redis根目录,启动客户端 >red
-
Python Map 函数详解
目录 首先我们从 for 循环开始 for 循环背后发生了什么 Python map 函数(附示例代码) Python map 函数背后发生了什么 如果要转换项目,使用 Python map 函数比 for 循环更好 总结 如果你正在学习编程,那么掌握 Python map 函数是你升级的机会. 想象一下:你想成为一个更高效的程序员,你希望代码编译得更快,你想用你强大的编程知识给同行留下深刻印象.如果你对其中任一点有共鸣,那么你来对地方了. 在我们继续之前,你需要了解什么是函数和可迭代对象: 函
-
Android studio 运行main 函数的方法
标题Gradle构建问题 切换到Project工程下.idea/gradle.xml添加属性 <option name="delegatedBuild" value="false" /> 图例 PS:下面通过示例代码看下JAVA中的main函数 package com.han; public class HanTest { public static void main(String[] args){ if(args==null){ throw new
-
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
安装oracle11g [INS-30131] 执行安装程序验证所需的初始设置失败. 解决方法 第一步: 控制面板>所有控制面板项>管理工具>服务>SERVER 启动 TCP/IP 启动 第二步: 1.点击 开始->运行 ,输入regedit ,然后回车键进入注册编辑器 2.找到并点击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters 3.如果AutoShareServer和
