日常笔记
文章平均质量分 74
mvvgo
这个作者很懒,什么都没留下…
展开
-
多线程环境下HashMap之死循环
HashMap是非线程安全的,多线程下一般使用ConcurrentHashMap代替,那为什么HashMap在多线程下不安全呢?ConcurrentHashMap又是如何改进的?JDK1.8中又如何改进的?原创 2016-04-29 16:35:54 · 572 阅读 · 0 评论 -
redis系列笔记之数据结构SDS
redis的功能就不多做介绍了,本系列文章重点是从源码角度揣度其设计思想,另外所有的源码都是基于redis3.0.7版的开源包今天就说一说其底层用于存储字符串的数据结构SDS,话不多少先把关键源码粘出来typedef char *sds;struct sdshdr { unsigned int len; unsigned int free; char原创 2016-06-27 18:17:41 · 1014 阅读 · 0 评论 -
MySql避免重复插入sql语句
恶补下Mysql中的几个特殊sql语法,避免面试过程中被人问到,答不上来1、ignore(primary key)用例:insert ignore into user_table(id,name,age) values(1,'wpf',20);若记录已经存在,则忽略本次操作,返回影响行为0,否则执行插入操作,返回影响行为12、replace(primary key)原创 2017-02-21 16:02:28 · 822 阅读 · 0 评论 -
NDK+OpenSSl,通过JNI技术开发so加密库
以下是个人在做加密算法库时一些经验总结,今天把它写下来分享给大家,希望对大家以后再做类似的开发工作时能有所帮助,少走些弯路。主要从以下5个方面进行阐述:1. Openssl安装,1.0.1与1.0.2使用时的区别2. Linux下gcc的使用方法,及可能遇到的问题3. JNI开发,开发流程4. NDK使用方法,以及打包so库时如何编写Application.mk文件原创 2017-02-21 16:33:43 · 2566 阅读 · 0 评论 -
从protobuffer,窥探整数编码
Base 128 varint 变长编码该算法主要目的是降低整数的存储空间,可以作为序列化编码的一种方案。目前google的protoBuff在处理整数时就采用了改方案。算法内容比较简单,先附上算法说明,之后会提供java代码实现。 算法内容:对于正数M编码:① 将M转成二进制B,擦除多余的零,保留最短的二进制格式,例如B=000101,则应处理为B=101;② 对B从低位原创 2016-12-19 12:13:18 · 534 阅读 · 0 评论 -
Sign in with Apple(苹果授权登陆)
苹果授权登陆方式1. PC/M端授权登陆,采用协议类似于oauth2协议2. App端授权登陆,提供两种后端验证方式开发者后台配置详细配置参考该文档,手把手教学https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple1、 PC/M接入方式https://appleid.app...原创 2019-08-16 14:31:02 · 59348 阅读 · 16 评论