Loading

摘要: **语法糖(Syntactic Sugar)**,也称糖衣语法,指在计算机语言中添加的**某种语法**,这种语法对语言本身的功能来说没有什么影响,只是为了方便程序员进行开发,提高开发效率,使用这种语法写出来的程序可读性也更高。说白了,语法糖就是对现有语法的一个封装。 **但其实,Java虚拟机是并不支持语法糖的,语法糖在程序编译阶段就会被还原成简单的基础语法结构,这个过程就是解语法糖**。所以在Java中真正支持语法糖的是Java编译器。 阅读全文
posted @ 2019-10-13 12:06 程序员自由之路 阅读(7120) 评论(1) 推荐(3)
摘要: 什么是文件上传漏洞 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。 可以看出来这种攻击的危害很大,攻击者一旦拿到服务器权限,那必然“天下大乱 阅读全文
posted @ 2019-10-12 16:19 程序员自由之路 阅读(1902) 评论(0) 推荐(0)
摘要: 如果你是一个生活在2019年的程序员,却不了解字符、字符集、编码和Unicode这些基础知识。那你可要小心了,要是被我抓到你,我会让你在潜水艇里剥六个月洋葱来惩罚你。 --来源网络 基本概念科普 为了让下面的内容能看得更明白,在这边先科普几个和编码相关的概念。 1. 字符 字符(Character) 阅读全文
posted @ 2019-10-11 09:31 程序员自由之路 阅读(2249) 评论(2) 推荐(11)
摘要: 1. 冒泡排序的基本思想 冒泡排序的英文Bubble Sort,是一种最基础的交换排序。其基本思想是:把相邻的元素两两比较,根据大小来交换元素的位置。 对于以上数组,一轮排序过程如下: 首先让5和8比较,发现5比8要小,因此元素位置不变。接下来让8和6比较,发现8比6要大,所以8和6交换位置。 按照 阅读全文
posted @ 2019-10-09 19:50 程序员自由之路 阅读(830) 评论(0) 推荐(0)
摘要: 1. 什么是XSS攻击 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分,将跨站脚本攻击缩写为XSS。因此XSS是跨站脚本的意思。 XSS跨站脚本攻击(Cross Site Script 阅读全文
posted @ 2019-10-09 19:16 程序员自由之路 阅读(17232) 评论(1) 推荐(3)
摘要: 选择排序是一种我们平时常用的排序算法,它的核心思想是:每一轮选出最小者(或者是最大者)交换到数组的一侧,这种思路最大的优势是可以大量节省元素的交换次数(比如和冒泡排序相比)。 本博客参考自:漫画:什么是选择排序 1. 选择排序的原理图 2. 选择排序的代码实现 public class Select 阅读全文
posted @ 2019-10-08 19:46 程序员自由之路 阅读(1189) 评论(0) 推荐(0)
摘要: 本文源地址: http://www.fullstackyang.com/...,转发请注明该地址或segmentfault地址,谢谢! 1. 背景知识 在网上已经有很多关于布隆过滤器的介绍了,这里就不再赘述,下面简单地提炼几个要点: 布隆过滤器是用来判断一个元素是否出现在给定集合中的重要工具,具有快 阅读全文
posted @ 2019-10-08 17:47 程序员自由之路 阅读(4680) 评论(0) 推荐(1)
摘要: 在系统设计中,我们经常需要一个全局唯一的ID来标识一条数据,比如订单表,商品表的主键ID。这个ID往往能影响到数据存储、索引和查询等操作的效率。因此这个全局唯一的ID对系统的可用性和性能至关重要。 1. 唯一ID简介 在系统设计中,我们经常需要一个全局唯一的ID来标识一条数据,比如订单表,商品表的主 阅读全文
posted @ 2019-09-30 16:08 程序员自由之路 阅读(1518) 评论(0) 推荐(0)
摘要: 本文转载自博客 1. 一致性Hash算法简介 一致性哈希算法是在1997年由麻省理工学院提出的一种分布式哈希(DHT)算法,其设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。 下面举一个传统Hash算法存在的问题 假定N为后台服务节点数,当前台携带关键字key发起请 阅读全文
posted @ 2019-09-27 15:57 程序员自由之路 阅读(4424) 评论(0) 推荐(0)
摘要: BitMap算法的核心思想是用bit数组来记录0-1两种状态,然后再将具体数据映射到这个比特数组的具体位置,这个比特位设置成0表示数据不存在,设置成1表示数据存在。 BitMap算在在大量数据查询、去重等应用场景中使用的比较多,这个算法具有比较高的空间利用率。 本文参考:漫画:BitMap算法 1. 阅读全文
posted @ 2019-09-27 11:41 程序员自由之路 阅读(14349) 评论(0) 推荐(0)