源码阅读-GlobalTimer
最近看到一篇文章推了一个开源项目,GlobalTimer。主要是可以用一个定时器来统一管理多个定时任务,可以针对特定任务进行管理。一、原理1.一个公共的timer2.封装任务到自定义个Event中,保留任务的执行代码与数据,时间信息等3.计算所有任务间隔的最大公约数x,用这个x作为timer的触发间隔4.timer触发时,遍历所有任务,看是否到了执行间隔来决定是否执行二、记录点1.最大公约数与最小
iOS Out-Of-Memory 原理阐述及方案调研
什么是OOM?OOM的全称是Out-Of-Memory,是由于iOS的Jetsam机制造成的一种“另类”Crash,它不同于常规的Crash,通过Signal捕获等Crash监控方案无法捕获到OOM事件。为什么会发生oom?目前猜测两种情况会造成OOM,系统整体内存使用较高,系统基于优先级杀死优先级较低的App当前使用的App达到了“highwatermark”,也就是达到了系统对单个App的内存
分布式开放消息系统(RocketMQ)的原理与实践
这篇文章写成距今(201808)已经两年半了,其中的内容我已经不能保证是否已经过时,由于当前的业务中也没有在使用RocketMQ,因此很少有时间再去刨代码,很多实践方面的问题也不能很好的为大家解决。因此,建议大家权当入门文章看看,实践中遇到问题的话,在本机跑一跑代码且调试一下,或者去社区逛逛,有可能对你解决问题的帮助会大一些。当然简单的问题,我会尽力和大家交流,谢谢大家。分布式消息系统作为实现分布
手写Java LinkedList核心源码
上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素。在查找需求比较重要的情况下可以用ArrayList,如果是删除操作比较多的情况下,用ArrayList就不太合适了。Java为我们提供了LinkedList,是用链接来实现的,我们今天就来手写一个QLinkedList,
窥探mysql存储过程细节
存储过程,可以这样认为,将我们需要特殊处理的sql语句封装成函数,当需要的时候我们只需调用这个函数就可以实现我们想要的操作,这个过程我们可以称之为存储过程。当然了,真正存储过程的定义不是这样的。但是我们可以这样简单的去理解存储过程。下面我们看一个简单的使用存储过程的例子。首先我们新建一张表proced:?12345createtableproced( idint(5)primarykeya
初识React
专注于UI在MVC分层设计模式中,react常被拿来实现视图层(V)。React不依赖于技术栈的其他部分,因此可以方便的在现有项目中尝试用它来实现一个小特性。虚拟DOMReact从DOM中抽象出来,给出一种更简洁的编程模型,且性能表现更好。能够通过NodeJS实现服务端渲染,通过ReactNative开发原生app。数据流React实现单向、响应式数据流,减少boilerplate且比传统数据绑定
EXTJS4.0的core包和Ext类
所有Element(通过Ext.get,Ext.fly)都是Ext.dom.Element封装的对象1.Ext.dom.Element(Ext.core.Element,Ext.Element) API解释 它是组件和控件的基础 它对一个DOM对象的封装(DocumentObjectModel) 1.1如何得到Element Ext.fly(String/HTMLElement
web监听器开发过程
开发过程:** a)写一个普通类实现对应的接口,即事件监听器b)在web.xml文件中注册事件监听器**## 生命周期:** 空参构造(1次)->初始化(1次)->销毁化(1次),是一个单例的模式 在部署web应用是产生,即用户第一次访问之前已经产生,在重新部署web应用时,后销毁原监听器,再产生新的监听器 **##web.xml```cn.xijie.listener.MyServletCont
小程序开发中遇到问题(持续更新)
第一个小程序:计算器UX计算器.jpg版本更新:1.0.1增加算法输入错误提示功能。增加计算记录拷贝功能。增加小括号优先级计算功能。问题:1、保留小数(解决保留小数不精确问题)function round(num, scale) {var pos = num.toString().indexOf('.');var num1 = num;if(pos != -1) { var decimal =
JavaScript实现LeetCode第172题:阶乘后的零
首文发表在172.阶乘后的零题目描述给定一个整数n,返回n!结果尾数中零的数量。示例1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.思路这个问题可以用数学的方法简单分析;10=2*5(质因数分解)从最末尾开始连续地每出现一个0,即表示有一个(2*5)组出现。而对于正整数N,在[0,N]范围内,质因子中含有2的
自定义加密令牌Token实现单点登录与注销
前言在日常的业务中,登录功能是非常常见的,除了最简单的cookie校验登录与session会话实现登录之外,针对较复杂的场景还可以使用更高安全的自定义加密令牌token来实现登录功能,此文将会详细介绍这种登录系统的实现方式。什么是单点登录?单点登录(SingleSignOn),简称为SSO,指的是应用于多个业务系统中的一种登录机制,在某个应用系统登录一次,就可以访问授权的其他同类应用系统。比如说,
Android零基础入门第19节:Button使用详解
Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮会触发一个onClick点击事件。 一、Button简介Button使用起来比较容易,可以通过指定android:background属性为按钮增加背景颜色或背景图片,如果将背景图片设为不规则的背景图片,则可以开发出各
??
关于邻接矩阵存储的问题已知图G=(V,R),其中V={1,2,3,4,5,6,7},R={(1,2),(1,3),(2,4),(3,4),(4,5),(4,6),(5,7),(6,7)},如果采用邻接矩阵存储,则矩阵中有(C)个非零个数。(2分)A.8B.7C.16D.14本题选C,路过的大佬们,帮忙看看,求解释。菜鸟一枚待解救
深度学习应用系列(三)| 使用 TFLite Android构建自己的
深度学习要想落地实践,一个少不了的路径即是朝着智能终端、嵌入式设备等方向发展。但终端设备没有GPU服务器那样的强大性能,那如何使得终端设备应用上深度学习呢?所幸谷歌已经推出了TFMobile,去年又更进一步,推出了TFLite,其应用思路为在GPU服务器上利用迁移学习训练自己的模型,然后将定制化模型移植到TFLite上,终端设备仅利用模型做前向推理,预测结果。本文基于以下三篇文章而成:理论篇:h
JSON
一JSON的简介 1.JSON是一种轻量级的数据交换格式 2.JSON通常用于服务器端向网页传递数据 3 JSON是存储和交换文本信息的语法。类似XML; 4JSON是在AJAX中代替XML交换数据的更佳方案。二JSON语法规则 数据使用键值对的方式; 数据由逗号分割; 大括号保存对象; 方括号保存数组 JSON值可以是: 数字(整数或浮点数)字符串(在双引号中)逻辑值(true或fa
scala的多种集合的使用(1)之集合层级结构与分类
一、在使用scala集合时有几个概念必须知道:1.谓词是什么?谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值。例如:下面方法返回true或者false,所以它是一个谓词。scala> def isEven(i: Int) = if(i % 2 ==0) true else falseisEven: (i: Int)Boolean2.匿名函数是什么?匿名函数
RxPermissions-简单明了的权限申请库
简单明了的权限申请库,再结合rxjava的话,用起来,一个字:爽简单明了的权限申请库,再结合rxjava的话,用起来,一个字:爽RxView.clicks(findViewById(R.id.enableCamera)) .compose(rxPermissions.ensure(Manifest.permission.CAMERA)) .subscribe(granted -> {
简单实现Http代理工具
本来意图是想写个工具放到服务器里代理一下上秋秋的。没想到N台(电信/联通/移动)的服务器都把端口全封了。所以以下代码是在本地测试代理网页访问通过。 说下思路再上代码及下载:其实一句话就是:产生两个Soket,一个负责接收请求和回发请求,另一个负责中转的去请求和接收。重点一句话就是:每个请求产生一个线程处理,处理时关键是的延时处理(不然数据接收不全)。 现在上代码,Proxy自定义类: Proxyu
从@property (nonatomic, copy) NSStri
引言一般我们都会看到这样一条代码规范:NSString类型的属性一般用copy修饰,而不是用strong来修饰。这是为什么呢?举个例子@interface Person : NSObject@property (nonatomic, strong) NSString *name;@end...NSMutableString *tempName = [[NSMutableString alloc]
MariaDB 新版本实力逆袭不仅仅是 MySQL 替代品
MySQL分支——MariaDBMariaDB是MySQL源代码的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB,Xt