编程知识
文章平均质量分 80
K'illCode
记录自己的学习历程,大部分来自转载,如有侵权联系删除.......
展开
-
Google Guava规范
每个类或成员的Javadoc以一个简短的摘要片段开始。这个片段是非常重要的,在某些情况下,它是唯一出现的文本,比如在类和方法索引中。这只是一个小片段,可以是一个名词短语或动词短语,但不是一个完整的句子。它不会以或开头, 它也不会是一个完整的祈使句,如。然而,由于开头大写及被加了标点,它看起来就像是个完整的句子。Tip:一个常见的错误是把简单的Javadoc写成,这是不正确的。它应该写成。原创 2022-10-10 14:30:43 · 637 阅读 · 0 评论 -
从零快速编写一个油猴脚本
Tampermonkey,又称 Greasemonkey 油猴脚本,是一款免费的浏览器扩展,可用于管理用户脚本,它本质上是对浏览器接口的二次封装油猴脚本可用于更改页面布局样式、完成页面自动化、去广告、下载影视等功能,适用于主流的浏览器官网:https://www.tampermonkey.net/index.php1. 介绍Tampermonkey 特点包含: 内置的编辑器,可以非常方便地管理、编辑用户脚本 支持自动更新检查功能 标签中脚本运行状态速览原创 2022-05-03 13:36:04 · 3667 阅读 · 3 评论 -
常见的那些编码和加密
文章目录一、Image模块1.1准备工作1.2打开和显示已有图片(open and show)1.3创建一张新的简单图片(new)1.4图片模式的转换(convent)1.5图像的放缩1.5.1按尺寸放缩(thumbnail and resize)1.5.2按像素放缩(eval)1.6图像的裁剪、粘贴和复制1.6.1图片的裁剪(crop)1.6.2图片的粘贴(paste)1.6.3图片的复制(copy)1.7图像的融合与复合1.7.1图像的融合(blend)1.7.2图像的复合原创 2021-08-01 16:51:12 · 3572 阅读 · 0 评论 -
复杂度 O、Θ、Ω、o、ω
前言在我们表示复杂度的时候,通常使用大O来表示。但是,在其他书籍中,你可能还见过Θ、Ω、o、ω等符号。那么,这些符号又是什么意思呢?本节,我们就来解决这个问题。读音我们先来纠正一波读音: O,/əʊ/,大Oh o,/əʊ/,小oh Θ,/ˈθiːtə/,theta Ω,/oʊˈmeɡə/,大Omega ω,/oʊˈmeɡə/,小omega 是不是跟老师教得不太一样^^数学解释ΘΘ定义了一种精确的渐近行为(exact asy原创 2020-10-01 14:33:09 · 1027 阅读 · 0 评论 -
提高国内访问 Github 的速度的 9 种方案
来源:https://urlify.cn/IFzQRb GitHub 镜像访问 GitHub文件加速 Github 加速下载 加速你的 Github 谷歌浏览器 GitHub 加速插件(推荐) GitHub raw 加速 GitHub + Jsdelivr 通过 Gitee 中转 fork 仓库下载 通过修改 HOSTS 文件进行加速 为什么 github 下载速度这么慢? 如何提高 github 的下载速.原创 2020-09-05 10:13:52 · 374 阅读 · 0 评论 -
汇编指令大全第二篇
作者:虫二(二进制逆向星球学员)## 汇编指令### 寄存器类#### 0x01 通用寄存器累加器(E)AX = accumulator基址寄存器(E)BX = base计数器(E)CX = counter变址寄存器(E)DX = data#### 0x02 段寄存器代码段寄存器 CS = code segment数据寄存器 DS = data segment堆栈寄存器 SS = st...原创 2020-06-05 19:57:52 · 352 阅读 · 0 评论 -
汇编基本语句总结
汇编基本语句总结一、 基本框架二、基本运算1. 加2. 减法3. 乘法通用寄存器表4. 除法三、逻辑运算四、循环五、栈操作指针寄存器六、数据移动指令七、比较指令一、 基本框架 .586.MODEL flat, stdcall.codemain procmov eax, 1mov ebx, 2main ENDPEND main二、 基本运算1. 加自增用法:INC 寄存器名(inc...原创 2020-05-11 16:38:04 · 809 阅读 · 0 评论 -
高并发之API接口,分布式,防刷限流
在开发分布式高并发系统时有三把利器用来保护系统:缓存、降级、限流缓存缓存的目的是提升系统访问速度和增大系统处理容量降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理问题描述1、某天A君...原创 2020-04-03 19:33:50 · 2171 阅读 · 0 评论 -
Chrome浏览器必知必会的小技巧
说明这篇文章主要介绍的就是一些chrome浏览器的小技巧,很简单,希望对大家有所帮助。这其中的一些小技巧在低版本中是没有的,所以建议大家用最新版的,目前最新版是62,版本很重要,如果发现有些技巧不起作用,请先查看浏览器的版本。快捷键快捷键比较多,这里挑出几个常用的说一下 最后会给出一张比较完整的快捷键的表 下列快捷键可以在所有 开发者工具 面板中使用全局快捷键...原创 2020-02-23 14:24:56 · 346 阅读 · 0 评论 -
GitHub 拉取代码网速慢的问题
本人重度依赖 GitHub,面向 GitHub 编程,GitHub 可以让我每天早上打开电脑,假装了解最新开源项目。最近你们有没有发现,GitHub 明显变慢了,如果没有 fanqiang,拉取代码的速度简直惨不忍睹,如果拉取的量少还可以勉强拉下来,但是遇到数据量大的时候,2 KiB/s 的速度你能忍?拉到中途超时就让你痛不欲生。最近我就遇到这个问题,seata 社区的 seata.git...原创 2020-02-08 18:42:14 · 611 阅读 · 0 评论 -
缓存穿透、缓存击穿和缓存雪崩实践
我们使用缓存的主要目是提升查询速度和保护数据库等稀缺资源不被占满。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量请求落到数据库,导致数据库资源占满,引起数据库故障。今天我主要分享一下layering-cache缓存框架在这个三个问题上的实践方案。概念缓存穿透在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里...原创 2019-10-23 21:04:20 · 182 阅读 · 0 评论 -
chrome开发者工具各种骚技巧
曾经,在线调伪类样式困扰过你? 源代码快速定位到某一行!ctrl + p 联调接口失败时,后台老哥总管你要response? 你还一层层展开dom?Alt + Click 是不是报错了,你才去打断点? 你是不是经常想不起来,在哪绑定事件的? 你是不是打断点时还要去改代码? 看dom层级的最直观的方式? 查一些特定的...原创 2019-10-13 19:45:14 · 162 阅读 · 0 评论 -
秒懂 QPS、TPS、PV、UV、GMV、IP、RPS
QPS、TPS、PV、UV、GMV、IP、RPS等各种名词,外行看起来很牛X,实际上每个程序员都是必懂知识点。下面我来一一解释一下。QPSQueries Per Second,每秒查询数。每秒能够响应的查询次数。QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。每秒的响应请求数,也即是...原创 2019-10-13 19:28:29 · 358 阅读 · 0 评论 -
那些让你代码思维和能力有较大的提升Java源码
来源:www.cnblogs.com/jiagou/p/9270070.html对于学习J2EE的框架有很大的帮助,代码里使用了各种设计模式、事件机制、Java8语法、代码量也很小,web服务使用Netty作为支持,对HTTP/网络想研究的一定是你的必读品。目前在写 Blade-In-Action 小书。我之前也写过如何实现IOC/MVC框架的简单博文,可以在这个biezhi/java...转载 2019-02-15 11:36:50 · 515 阅读 · 0 评论 -
微服务架构之「 容错隔离 」
我们知道,在单体应用的架构下一旦程序发生了故障,那么整个应用可能就没法使用了,所以我们要把单体应用拆分成具有多个服务的微服务架构,来减少故障的影响范围。但是在微服务架构下,有一个新的问题就是,由于服务数变多了,假设单个服务的故障率是不变的,那么整体微服务系统的故障率其实是提高了的。比如:假设单个服务的故障率是0.01%,也就是可用性是99.99%,如果我们总共有10个微服务,那么我们整体的可用...原创 2019-06-15 13:50:57 · 362 阅读 · 0 评论 -
用户密码加密存储十问十答,一文说透密码安全存储
我们数据库的权限管理十分严格,敏感信息开发工程师都看不到,密码明文存储不行吗?不行。存储在数据库的数据面临很多威胁,有应用程序层面、数据库层面的、操作系统层面的、机房层面的、员工层面的,想做到百分百不被黑客窃取,非常困难。如果密码是加密之后再存储,那么即便被拖库,黑客也难以获取用户的明文密码。可以说,密码加密存储是用户账户系统的底裤,它的重要性,相当于你独自出远门时缝在内衣里钱,虽然你用到...原创 2019-07-03 18:06:20 · 1828 阅读 · 0 评论 -
浏览器缓存机制
作者:Jartto 来源:http://1t.click/tJV相信很多前端童鞋对于浏览器缓存都不太陌生,但是如果没有系统的归纳总结,可能三言两句很难说明白。如何才能完美的回答,这是一个值得思考的问题。当然,我们不能为了应对面试才去掌握,而应该当作技能储备起来,做到活学活用。# 为什么要缓存1、缓存可以减少用户等待时间,提升用户体验;2、...原创 2019-08-05 14:50:31 · 154 阅读 · 0 评论 -
为什么自己写的网站那么慢
前言:Web 性能优化当今数字世界,存在着无数的网站,每天都需要处理各种不同的原因的访问。然而,这些网站中有很大一部分显得笨重,加载慢,使用起来也很麻烦。没怎么优化的网站会被各种各样的问题困扰,包括加载时间、不支持移动设备、浏览器兼容性问题,等等。这篇文章提出 8 个技巧,针对Web性能差这一问题提出解决方案,提高网站的性能,让你的网站快起来。网站加载速度慢有很多原因,代码繁杂、资源处理不...转载 2019-08-19 09:02:35 · 1004 阅读 · 0 评论 -
Lambda 表达式
1什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。推荐:JDK8新特性之Lambda...转载 2019-08-27 13:35:31 · 139 阅读 · 0 评论 -
InnoDB一棵B+树可以存放多少行数据?
一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4...转载 2019-08-25 11:49:09 · 246 阅读 · 0 评论 -
Java 服务端乱象大盘点
查尔斯·狄更斯在《双城记》中写道:“这是一个最好的时代,也是一个最坏的时代。”移动互联网的快速发展,出现了许多新机遇,很多创业者伺机而动;随着行业竞争加剧,互联网红利逐渐消失,很多创业公司九死一生。笔者在初创公司摸爬滚打数年,接触了各式各样的 Java 微服务架构,从中获得了一些优秀的理念,但也发现了一些不合理的现象。现在,笔者总结了一些创业公司存在的 Java 服务端乱象,并尝试性地给出了一...原创 2019-08-25 11:49:05 · 198 阅读 · 0 评论 -
开发必备的线程池执行流程图
本文适合: 曾了解过线程池却一直模模糊糊的人 了解得差不多却对某些点依然疑惑的 不适合: 完全没看过的,建议你先去看看其他基础文章 看过,却忘得差不多了,建议你先去回顾下 本文能给你的阅读回报 适合的读者,尽可能让你彻底明白常用的线程池的知识相关点 不适合的读者,能有个不错的概念,神童另谈 废话少说,我们开始。下图,皆可自行保存,常常阅之...转载 2019-08-25 11:48:55 · 209 阅读 · 0 评论 -
Kafka为什么速度那么快
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基准测试:每秒写入2百...转载 2019-06-15 13:48:31 · 208 阅读 · 0 评论 -
Chrome这些调试技巧
1.如何打开无论是在Windows还是Mac,都可以使用(FN)+F12键打开Chrome的Network面板。2.面板组成如图所示,Chrome的Network面板主要由5个部分组成,包括控制器、过滤器、概览、请求列表、概要,下面简单介绍下这5个部分的作用。控制器:控制面板的外观与功能过滤器:过滤请求列表中显示的资源 按住Command(Mac)或Ctrl(Window...原创 2019-06-03 17:31:18 · 1261 阅读 · 0 评论 -
RESTful API设计规范
RESTful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。一 URL设计动词+宾语RESTful的核心思想就是,客户端发出的数据+操作指令都是“动词+宾语”的结构,比如GET /articles这个命令,GET是动词,/articles是宾语,...原创 2019-06-12 11:40:47 · 595 阅读 · 0 评论 -
写二分查找
1、二分查找二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。/***二分查找,找到该值在数组中的下标,否则为-1*/staticintbinarySerach(int[]array,intkey){...转载 2019-03-31 15:58:13 · 285 阅读 · 0 评论 -
实现一个JSON解析器
JSONJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON与JS的区别以及和...转载 2019-02-14 10:48:17 · 1316 阅读 · 0 评论 -
有参考价值:中小型团队架构落地实践18篇,含案例、代码
来源:InfoQ技术社区公众号作者|张辉清 编辑|小智社区里不是缺少架构图,而是缺少确实可参考的架构落地实践。大公司的架构看上去总是不明觉厉,但真要借鉴时却往往无从下手。也许,中小型研发团队的架构实践才是可供复制的?本文是张辉清专栏——《中小研发团队架构实践》的开篇之作,本系列将有 18 篇诚意之作,以飨读者。1写在前面中小型研发团队很多,而社区在中小型研发团队架构实践方...转载 2019-02-18 14:58:25 · 371 阅读 · 0 评论 -
重构代码
狗屎一样的代码如何重构?重构不止是代码整理,它提供了一种高效且受控的代码整理技术。(一)重构原则1、何谓重构对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。另一种解释是:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。2、为何重构改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做...原创 2019-02-15 11:40:39 · 1221 阅读 · 0 评论 -
阿里有趣的Java开源项目
今天分享一篇阿里云社区的文章,把阿里开源的 Java 项目进行了整理,一篇值得收藏的文章,这些开源项目值得各位花时间去好好研究,一定要挑几个感兴趣的项目,读读源码。 原文如下。 1、Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 S...原创 2019-01-28 13:54:13 · 1160 阅读 · 0 评论 -
二十个正则表达式
正则表达式,是一个强大且高效的文本处理工具。通常情况下,通过一段表达准确的表达式,能够非常简短、快速的实现复杂业务逻辑。因此,正则表达式通常是一个成熟开发人员的标配,可以辅助实现开发效率的极强提升。在需要实现校验字段、字符串等内容时,通常就可以通过正则表达式实现:下面是技匠整理的,经常使用到的20个正则表达式。1校验密码强度 密码的强度必须是包含大小写字母和数字的组合,...转载 2019-01-28 13:51:13 · 437 阅读 · 0 评论 -
IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)
以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会少很多坑。现在,阿里巴巴又一次对这个文档进行了升级,直接变成了一个插件。你需要的就是:知道有这么个插件,然后,还得安装这个插件,那么以后,你在写代码的时候,这个插件就会自动的纠正你在写代码的时候的一些很low的...原创 2018-11-19 10:50:54 · 620 阅读 · 0 评论 -
程序员VS黑客
互联网行业里,但凡没被黑客练过的系统,都不够成熟。 每年都有受黑客攻击的互联网行业,尤其是互联网金融行业更是深受其害。部分互金公司选择了出钱消灾,让黑客们尝到了甜头,吸引了更多的人来跃跃欲试。说到底,这是个技术安全的意识问题。 我们也未能幸免,什么 DDOS 攻击、SQL 注入、寻找系统漏洞等几乎都经历过,有的黑客想炫耀技术,将漏洞放到乌云上面或者漏洞盒子里面让厂商来修复。但更多的...转载 2018-09-13 08:28:56 · 1428 阅读 · 0 评论 -
Tomcat 部署项目的三种方法
1、下载 Tomcat 服务器官网下载地址:http://tomcat.apache.org/ 2、启动并部署 Tomcat 服务器①、解压 tomcat 安装包到一个非中文目录下②、配置环境变量。JAVA_HOME(指向 JDK 安装的根目录) ③、双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat,启动服务器(如果一闪而过,那就是没...原创 2018-07-19 11:27:24 · 211 阅读 · 0 评论 -
架构设计之「 微服务入门 」
微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来的危害,比如很多中小团队对微服务的基础知识只是做了很浅显的了解就开始盲目的推动微服务的实施,最后导致了项目的失败。微服务要想做好是一个非常复杂的架构,今天就先只聊一聊微服务的一些基础架构,算是入门篇。一、什么是「 微服务 」...原创 2019-05-02 17:45:09 · 123 阅读 · 0 评论 -
理解零拷贝
前言从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在javanio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。I/O概念1.缓冲区缓冲区是所有I/O的基础,I/O讲的无非就是把数据移进或移出缓冲区;进程执行I/O操作,就是向操作系统发出请求,让它要么把缓冲区的数...原创 2019-04-16 14:47:56 · 179 阅读 · 0 评论 -
深入浅出OAuth2.0授权
一、前言说到OAuth,先来一段百度到的比较官方的解释:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。OAuth是Open Authorization的简写。说实话,每次见到官方...原创 2019-04-29 19:40:16 · 313 阅读 · 0 评论 -
缓存算法(页面置换算法)-FIFO、LFU、LRU
1.FIFO算法 FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢?因为这个原则简单、且符合人们的惯性思维,具备公平性,并且实现起来简单,直接使用数据结构中的队列即可实现。 在FIFO Cache设计中,核心原则就是:如果一个数据最先进入缓存中,则应该最...原创 2019-06-12 11:41:13 · 1189 阅读 · 0 评论 -
Tomcat 的 Server 文件配置详解
前言Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。本文将通过实例,介绍server.x...原创 2019-05-27 11:38:38 · 1264 阅读 · 0 评论 -
单点登录原理解析
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS是一种基于http协议的B/S应用系统单点登录实现方案,认识CAS之前首先要熟悉http协议、Session与Cookie等Web开发基本知识。1.http协议HTTP是一个客户端和服务器端请求和应答的标准,我们全后端开发对接的Rest接口就是基于htt...原创 2019-05-24 13:36:57 · 494 阅读 · 0 评论