自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何生成一个APP_ID

1. 什么是APP_ID开放平台使用APP_ID, 来区分openapi的调用者, 相当于用户的一个身份证用过开放平台的开发者 懂得都懂,不懂的说了也不懂,你也别问,利益牵扯太大,说了对你们没好处,我只能说水很深,网上的资料都删了,所以我只能说懂得都懂,不懂也没办法2. 各家的APP_ID长什么样● 微信的APP_ID统一wx开头, "wx"+16位的 16进制数字微信的APP_ID● 支付宝的APP_ID16位的纯数字, 可以看出开头的4位是年份, 其他数字生成规则不明支付宝的APP

2022-07-11 22:49:46 2600 1

原创 程序员的马斯洛需求层次

最近看了篇老外的文章, 仿照马斯洛需求理论, 发明了个代码的需求层次理论, 非常有意思, 这里给大家介绍一下https://charlax.tumblr.com/post/111338685456/maslows-pyramid-of-code-review 马斯洛需求层次理论 这个理论用一张图就可以很直观的理解马斯洛需求分层马斯洛把需求分成了5种:生理需求安全需求社交需求尊重需求自我实现马斯洛认为,人类具有一些先天需求,人的需求越是低级的需求就越基本,越与动物相似;越是高级的需求

2022-07-11 22:42:04 1574

原创 爹味十足的杠精

今天工作间隙, 刷一会儿短视频看熊猫吃苹果可可爱爱当我看得正爽在那傻笑的时候, 有几个不和谐的弹幕飘了过去熊猫视频杠精1熊猫视频杠精2本来熊猫给我充能的正能量, 一下子被杠精弹幕扣完了我只是工作间隙看看熊猫吃苹果恢复一下能量都有弹幕在那杠这帮人是没爸妈吗? 没人教他们公共场合别大声喧哗么?!!!我都懒得反驳这种傻X言论, 我也没见那个野生动物吃苹果吃死的啊我的祖安之魂正要发作之时突然想起了从前的我, 也是一个纯纯的杠精我告诉自己放过傻X才能放过自己但这种烧杯还不是个别, 很普遍

2022-07-11 22:41:28 171

原创 给密码加盐是什么东西?

1. 用户的密码如何保存在数据库中 假设小明的账号是 ikun 密码是 jinitaimei那么我们可以设计一张表, 来保存账号密码CREATE TABLE account ( username varchar(30), password varchar(100));那么我们存入数据库之后, 就是这样的小明账号存在数据库表里可惜系统太拉了, 数据库被入侵了,小黑子把鸡脚偷走了, 这一下好了, 小黑子能拿小明的账号登录系统了.

2022-07-11 22:23:55 335

原创 RAFT算法

参考资料: http://thesecretlivesofdata.com/raft/RAFT算法1. 选举算法:1.1. 粗糙的选举过程描述1.2. 处理冲突2. 日志同步3. 成员变更1. 选举算法:我们来模拟一下 RAFT算法的 选举过程1.1. 粗糙的选举过程描述角色:领导者 leader候选人 candidate跟随者 follower背景:假设: 此时每个节点记录的任期编号为1, 节点A是leader领导者节点开始选举:集群中, A节点leader下线, A.

2020-06-30 20:52:57 217 1

原创 Safepoint和OopMap

参考资料:https://www.iteye.com/blog/rednaxelafx-1044951《深入理解Java虚拟机(周志明)》1. 预备知识:1.1 虚拟机栈的内存模型略1.2 GCRootsGC Root是可达性分析的根节点对象GC Root 有如下几种:虚拟机栈(栈帧中的本地变量表)中引用的对象, 例如局部变量指向的对象等方法区中类静态属性指向的对象方法区中常量引用的对象JNI引用的对象虚拟机内部引用的对象被锁持有的对象反映Java虚拟机内部情况的JM.

2020-06-25 23:38:03 398

原创 记一次@Component无效的问题

1. 问题描述具体的业务就不说了抽象出来的问题是, 有一个类 标记了 @Aspect 和 @Component ,但是切面却没有起作用applicationContext.getBean(XXX.class);//找不到这个bean,很奇怪2. 查原因打断点,查看BeanFactory里面的所有BeanDefinition,发现没有XXX这个类BeanFactory使用了一个Map来存储所有的BeanDefinition, 考虑是否是key重复的原因找到生成Bean名称的类 org.sp

2020-06-16 17:56:25 9170

原创 JVM指令学习

预备知识:class文件结构(todo)操作数栈(todo)局部变量表(todo)本文粗略给JVM指令进行分类关于指令集的官方文档(JAVA8)关于指令集的详细使用方式请参阅:oracle官方指令集详细文档(JAVA8)特别注意: 局部变表可以看做是一个数组, 每一个元素是 32bitJAVA虚拟机的指令由1个字节长度的、代表着某种特定含义的数字(操作码)以及跟随其后的零至多个代表此操作所需的参数(操作数)构成!!!~!!操作数有两种:隐式的操作数,在操作数栈中的,

2020-06-09 14:29:59 354

原创 JVM PC(程序计数器 program counter)

The pc Register 官方原文:The Java Virtual Machine can support many threads of execution at once (JLS §17).Each Java Virtual Machine thread has its own pc (program counter) register.At any point, each Java Virtual Machine thread is executing the code of a .

2020-05-25 19:28:13 321

原创 如何用ZK实现分布式锁

如何用ZK实现分布式锁我们这里用最基础的ZK的API来模拟一个分布式锁竞争的场景:假设现在有两个角色: Node1, Node2时刻1:#Node1 获取锁create -e /lock时刻2:#Node2 尝试获取锁create -e /lock #加锁失败,返回 Node already exists:/lock时刻3:# 1. Node2 查看 /lock 节点的状态# 2. 并注册监听 /lock 节点的变化stat -w /lock# 会输出一堆

2020-05-25 11:10:20 344

原创 java中的volatile详解

参考资料: 《深入理解java虚拟机》(周志明)java中的volatile详解1. JAVA为什么要有一个volatile修饰符?2. 代码不符合预期的问题2.1 工作内存带来的`可见性`问题2.1.1 jvm内存模型2.1.2 主内存和工作内存的区分带来了什么问题?2.2 各种优化策略带来的`指令重排`问题2.2.1 什么是指令重排序2.2.2 指令重排序带来了什么问题?3. 怎么解决上面的问题?3.1 解决可见性的问题3.2 解决指令重排序带来的问题4. 为什么`volatile`能解决 可见性和.

2020-05-18 00:13:12 391

原创 JVM学习1: Happens-Before 先行发生原则

Happens-Before 先行发生原则参考资料: 《深入理解Java虚拟机》(周志明)1. Happens-Before先行发生原则的是啥?官方定义[https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4.5]具象的描述一下什么叫先行发生原则Happens-Before如果有两个操作A,BA 在时间点 T1 执行B 在时间点 T2 执行, 且 T2 在 T1 之后若 A 的操作,能被 B 操作观测到

2020-05-16 23:04:06 297

原创 SpringSecurity学习1 SpringSecurity实现的基础Filter

参考: Servlet Security: The Big Picture从源码和文档理解SpringSecurity从宏观上来看SpringSecurity是用了一系列Filter,来处理权限的问题在请求,达到Servlet和Controller之前,就进行权限的校验让权限和业务逻辑彻底解耦以下是讲解,SpringSecurity是怎么用Filter的1. 容器是如何使用Fi...

2020-04-27 19:54:06 410

原创 终端操作进程的作业控制

怎么启动程序在后台运行?如何将后台运行的程序调到前台?进程的作业控制:&符号,启动程序的命令后面跟上&符号可以不阻塞终端,将任务跑在后台jobs 可以查看后台的程序,并展示后台程序的序号,只能查看当前sessionfg [序号] 跟上后台程序的序号可以将后台程序切回到前台,阻塞终端,只能操作当前sessionctrl + z 可以将前台程序挂起暂停,切到后台,释放终端...

2020-04-09 17:43:47 157

原创 top命令

第一行06:00:11表示当前时间1:50表示机器已启动的时间2 users当前系统有两个用户在登录load average: 0.00, 0.01, 0.05 三个数字,第一个数字表示1分钟内的负载, 第二个数字表示5分钟内的负载,第三个数字表示15分钟内的负载, 满负载是1第二行Tasks: 108 total, 2 running, 106 sleeping, 0 sto...

2020-04-09 17:06:26 144 1

原创 linux软件安装

1. 软件包管理器包管理器是方便软件安装/卸载,解决软件依赖关系的重要工具CentOS,RedHat,Fedora使用yum包管理器,软件安装包格式为rpmDebian,Ubuntu使用apt包管理器,软件安装包格式为deb2. rpm包和rpm命令rpm -q [软件包名] 查询已安装的软件包rpm -i [rpm软件包路径]安装软件包rpm -e [软件包名] 卸载软件包...

2020-04-08 21:41:23 141

原创 linux文件件权限

权限限制是针对非root用户的root用户是不受权限限制的1. 查看文件权限的方法ls -l [文件路径]1.类型: -普通文件,d表示目录文件,b块特殊文件(设备),c字符特殊文件(终端),l符号链接(快捷方式),f命名管道(进程通信相关), s套接字文件(进程通信相关); 文件创建之后类型就固定了不可以更改;权限字符: r:可读; w:可写; x:可执行;2,3,4 权限...

2020-04-06 16:59:28 115

原创 linux用户权限管理

用户相关命令用户管理命令useradd [用户名]新建用户userdel [用户名]删除用户,如果加-r则会把home目录删除,如果不加home目录保留passwd [用户名]修改用户密码,不加用户名则是修改root用户usermod [选项] [用户名]修改用户属性chage [选项] [用户名]修改用户属性,修改用户生命周期相关信息用户组管理命令groupadd [用户组...

2020-04-06 15:08:28 225

原创 BoyerMoore字符串算法(坏字符实现)

public class BoyerMooreDemo { public static void main(String[] args) { // String str = "1234567890"; // String regex = "456"; String str = "aacdccde"; ...

2020-04-06 11:26:59 230

原创 字符串匹配RK(RabinKarp)算法

public class RabinKarpDemo { public static void main(String[] args) { System.out.println(indexOf("1234567890", "6789")); } public static int indexOf(String str, String regex) { ...

2020-04-06 11:18:08 338

原创 VIM常用命令

vim软件有四种模式:正常模式 (Normal-mode) 一进软件就是,其他模式按esc即可进入插入模式 (Insert-mode) 可以将键盘输入文件模式命令模式 (Command-mode) 可以执行命令的模式可视模式 (Visual-mode) 可以利用光标进行范围选择的模式普通模式i,insert键进入插入模式yy复制当前行y$复制当前光标到行最后一个字符10yy...

2020-04-06 10:13:22 92

原创 MySQL45学习幻读

1.什么是幻读幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行在可重复读隔离级别下,普通的查询是快照读,是不会看到别的事务插入的数据的。因此,幻读在“当前读”下才会出现。幻读仅专指“新插入的行”举一个幻读的情况:表 T(id,a) 里面只有一行数据 row(id=1,a=1)时间顺序事务1事务2time1select * ...

2020-04-03 14:21:31 82

原创 字符串匹配算法BF(BruteForce)算法

思想此字符串匹配算法实际上就是暴力匹配代码实现/** * 暴利搜索的算法 * 找到第一个匹配的位置 * 时间复杂度为O(n*m) * * @param str 主串 * @param regex 模式串 * @return -1表示没找到,如果为正整数,则为模式串在主串中出现的位置 */static int indexOfByBF(char[] str, char[] ...

2020-04-03 09:24:18 262

原创 MySQL的InnoDB中的各种锁是怎么工作的

参考 https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.htmlMySQL各种锁1. [行级共享锁和排他锁](https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-shared-exclusive-locks)1.1. 共享锁`Shared Locks`...

2020-04-03 00:54:55 149

原创 Spring中事务传播特性

//Spring来设置事务传播特性的代码@Transactional(propagation = Propagation.REQUIRED)public void doSomething() { .....}Propagation是个枚举类,不同值有不同的含义REQUIRED(0),当前有事务就用当前的,没有就用新的SUPPORTS(1),事务可有可无,不是必须的MANDA...

2020-03-31 23:15:36 71

原创 学习MySQL的redo log

MySQL实战45讲学习笔记redo log什么是redo log为什么要用WAL的方式存储数据?redo log 是怎么保存数据的?什么是redo logMySQL使用先写日志再写磁盘的方式来保存数据这种技术被成为WAL(Write-Ahead Logging)MySQL是这么做的:当有一条记录需要更新的时候InnoDB 引擎就会先把记录写到 redo log(粉板)里面,...

2020-03-26 23:35:49 202

原创 redis缓存击穿问题解决

网上看了很多解决缓存击穿的方案,我觉得不够好,自己总结了一番本文尽量使用大白话,尽量不写代码,请认真读希望能让你们满意彻底解决redis缓存击穿问题1. redis的缓存击穿是什么?2. 如何解决缓存击穿2.1 普通的redis缓存使用方式2.1.1 使用redis缓存查询逻辑优点缺点适用情况2.2 解决redis缓存击穿问题2.2.1 主动刷新缓存设计查询逻辑优点缺点适用情况2.2....

2020-03-22 23:06:54 1535 5

原创 为什么MySQL要用B+Tree来做索引

为什么MySQL要用B+Tree1. 存储介质1.1 机械硬盘名词解释1.1.1 盘面1.1.2 磁道1.1.3 扇面1.1.4 扇区1.1.5 簇(linux叫块)1.2 为什么操作系统操作磁盘的最小单位是簇1.3 寻道时间1.4 读取一个簇的时间 `Ta`1.5 磁盘读取时间总结:2. 数据库存储 数据结构选择2.1 无序数据结构2.1.1 哈希表2.2 有序数据结构2.2.1 红黑树优点:...

2020-03-20 19:25:08 861 3

原创 android矢量动画

android矢量动画

2016-12-09 04:04:09 794

原创 android中的SVG图像的各个属性意义

android矢量图SVG

2016-12-09 03:08:59 2668

原创 ButterKnife官方教程的翻译(本人手工翻译,就当自己理解一遍)

ButterKnife官方教程翻译

2016-11-22 13:56:48 451

原创 java正则表达式的捕获组

正则表达式的 捕获组 概念

2016-11-18 22:30:40 736

MAC版YY,实测可用YY180.dmg

MAC版YY,实测可用YY180.dmg;

2020-04-13

可以正常编译安装的swftools,根据大神的博客,做了点小修改

可以正常编译安装的swftools,根据大神的博客,做了点小修改. 我自己在网上找了好久,终于找到了swftools不能正常make的原因,修改了些里面的代码,可以正常make,make install, 在mac上试过了没有问题 不过你还是要在安装前装各种依赖啊

2018-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除