文章首发于「陈树义」公众号及个人博客 shuyi.tech 其实这个问题的完整描述是:Java 中的 PriorityQueue 实现,其数据的逻辑结构是线性结构吗?其数据的物理结构又是什么? 估计很多人的答案是:PriorityQueue 是线性结构,因为 PriorityQueue 是优先级队列的实现,队列不就是线性结构的吗?但在PriorityQueue 的实现中,其数据的逻辑结构是树形结构,其物理结构是顺序存储结构. 要弄明白这个问题,我们必须先弄明白什么是数据的逻辑结构,什么是数据的物…
本文为synchronized系列第二篇.主要内容为分析偏向锁的实现. 偏向锁的诞生背景和基本原理在上文中已经讲过了. 本文将分为几块内容: 1.偏向锁的入口 2.偏向锁的获取流程 3.偏向锁的撤销流程 4.偏向锁的释放流程 5.偏向锁的批量重偏向和批量撤销 本文分析的JVM版本是JVM8,具体版本号以及代码可以在这里看到. 偏向锁入口 目前网上的很多文章,关于偏向锁源码入口都找错地方了,导致我之前对于偏向锁的很多逻辑一直想不通,走了很多弯路. synchronized分为synchronize…
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://dzone.com/articles/nodejs-dependency-management 引言 Node.js中的一个重要概念是依赖关系管理.本文就将带大家了解依赖管理的各种模式以及Node.js如何加载依赖. Node.js编写模块化代码非常简单,我们可以使用单个js文件非模块化的编写所有应用程序的内容. 在这里你可能会问,模块(module)是什么,它又有什么作用. 大…
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://dzone.com/articles/node-dependency-management-part2 在上篇介绍Node.js依赖关系管理的文章中,我们介绍了关于Node.js模块的基础知识,如何使用module.exports和require方法处理依赖项,以及文件夹依赖项(folder dependencies)的工作方式和工作原理. 今天我们将继续从这一点出发,来了解如何…
前言 上一节介绍了 https://github.com/houbb/junitperf 的入门使用. 这一节我们从源码的角度,剖析一下其实现方式. 性能测试该怎么做? Junit Rules junit4 小伙伴们肯定不陌生,那么 junit rules 你听过说过吗? 要想基于 junit4 实现一个性能测试框架,最核心的一点在于理解 Junit Rules. 官方文档:https://github.com/junit-team/junit4/wiki/Rules Rules 作用 规则允许…
信息化社会,没有哪个公司不用电脑办公了.一个办公室里面的同事相互之间利用系统的共享功能,共享一些文件和软件已经是司空见惯的了,这个不需要多么复杂的操作.我们使用最多的windows7操作系统就能很方便的实现这个功能.对着我们需要共享的文件夹,右键鼠标-点“属性”,弹出如下图所示的界面,点击“共享”选项卡,再点击下面的高级共享. 共享 在弹出的框框里面勾选:共享此文件夹,就完成文件夹的共享了,当然这个时候的权限是所有人可以访问,没有人可以写,要想拥有写权限,只要点击下面的“权限”按钮,再作修改就好…
小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明说:如果我不知道的话,小强肯定也不知道 小强说:本来我也不知道,但是现在我知道了 小明说:哦,那我也知道了 请根据以上对话推断出张老师的生日是哪一天?? 网上有这题的答案,靠,原本我懂的都被他说的不懂了,强烈谴责…
1. 前言 这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题.这里权且称他非典型Spring循环依赖问题.但是我相信我肯定不是第一个踩这个坑的,也一定不是最后一个,可能只是因为踩过的人比较少.鲜有记录罢了.因此这里权且记录一下这个坑,方便后人查看. 正如鲁迅(我)说过,“这个世上本没有坑,踩的人多了,也便成了坑”. 2. 典型场景 经常听很多人在Review别人代码的时候有如下的评论:“你…
今天群里有人聊图片上传,简单说下自己的经验(大牛勿喷) 0.如果你的方法里面是有指定路径的,记得一定要过滤../,比如你把 aa文件夹设置了权限,一些类似于exe,asp,php之类的文件不能执行,那么如果我在传路径的时候,前面加了一个../呢,这样这种服务器端的限制就跳过了.(DJ音乐站基本上都有这个问题,以及用某编辑器的同志) 1.常用方法:这种就是根据后缀判断是否是图片文件,需要注意的是这种格式:文件:1.asp;.jpg  1.asp%01.jpg  目录: 1.jpg/1.asp 1.…
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么. 当你在面试中被问到这个问题,你的内心充满了自信和喜悦. 你轻轻松松的给出了一个"标准答案": GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被…