源码解析Collections.sort ——从一个逃过单测的 bug 说起

本文从一个小明写的bug 开始,讲bug的发现、排查定位,并由此展开对涉及的算法进行图解分析和源码分析。

从原理聊JVM(四):JVM中的方法调用原理

多态是Java语言极为重要的一个特性,可以说是Java语言动态性的根本,那么线程执行一个方法时到底在内存中经历了什么,JVM又是如何确定方法执行版本的呢?

从Spring源码看Spring如何解决循环引用的问题

# Spring如何解决循环引用的问题 关于循环引用,首先说一个结论: Spring能够解决的情况为:**两个对象都是单实例、且通过set方法进行注入**。 两个对象都是单实例,通过构造方法进行注入,Spring不能进行循环引用问题; 两个对象都是多实例的情况下,不管是set注入,还是构造注入,都不

为什么文件删除了但磁盘空间没有释放?

案例现象 这天,监控系统发来一条告警消息,内容说某台服务器根目录磁盘占用空间达到阈值,超过百分之八十了 登上服务器,df -Th 看一下,发现磁盘空间确实不够用了 进入到根目录,然后 du -sh * 可以看到,var 目录下的磁盘空间已经占用了 75G 既然如此,删除 var 目录下一些占空间较大

dmesg 时间误差现象

案例现象 这天收到监控平台发来的告警,说有台机器程序崩溃了 因为以前也有过相关的错误,根据经验,用 dmesg命令看下内核信息 发现有点不对劲,报错信息的时间跟告警时间不一致,正常来讲报错时间应该跟告警时间一致 使用 date 命令查看一下当前系统时间 然后我们查看一下系统日志 由上面的输出可以看到

CPython, Pypy, MicroPython...还在傻傻分不清楚?

哈喽大家好,我是咸鱼 当我们说 Python 时,通常指的是官方实现的 CPython 但还有很多比如 Pypy、Jython、MicroPython、Brython、RustPython 等 “python” 许多小伙伴看到这些带 “python” 的概念可能一头雾水,心想这跟我平时接触到的 py

django使用多个数据库实现

一、说明: 在开发 Django 项目的时候,很多时候都是使用一个数据库,即 settings 中只有 default 数据库,但是有一些项目确实也需要使用多个数据库,这样的项目,在数据库配置和使用的时候,就比较麻烦一点。 二、Django使用多个数据库中settings中的DATABASES的设置

python独立脚本应用Django项目的环境

一、需求说明 一直用 Django 在开发一个网站项目,其中的注册用户和登录,都是使用Django自带的认证系统。主要是对密码的加密,在注册或者登录的时候,前端传递过来的密码,我会使用Django的set_password()方法再加密一次 经过加密后的数据库中的数据样子如下: 现在我有另外一个需求

PHP转Go系列 | GET 和 POST 请求的使用姿势

大家好,我是码农先森。 说到 HTTP 请求工具想必对我们做 Web 开发的程序员都不陌生,只要涉及到网络请求都必须使用。对于我们 PHP 程序员来说,最熟悉不过的就是 CURL 扩展,只要安装的这个扩展便可随意发起 HTTP 请求。 但在 PHP 语言中还有一个很好用的 Composer 包「gu

【Playwright+Python】系列教程(一)环境搭建及脚本录制

一、前言 看到这个文章,有的同学会说: 六哥,你为啥不早早就写完python系列的文章。 因为有徒弟需要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧! 如果对你有用,建议收藏和转发! 二、Playwright是什么? 微软开源自动化测试工具Playwright,支持主流浏览器,

手把手带你搞定用户权限控制

在实际的软件项目开发过程中,用户权限控制可以说是所有运营系统中必不可少的一个重点功能,根据业务的复杂度,设计的时候可深可浅,但无论怎么变化,设计的思路基本都是围绕着用户、角色、菜单这三个部分展开。 如何设计一套可以精确到按钮级别的用户权限功能呢? 今天通过这篇文章一起来了解一下相关的实现逻辑,不多说

硬件开发笔记(十八):核心板与底板之间的连接方式介绍说明:板对板连接器

前言 核心板与底板之间的连接方式至少就有四种以上,包括且不限于:DIP直插、板对板连接器、邮票孔和金手指。 常用连方式介绍 DIP直插 DIP就是以前的元器件封装,直接DIP插入焊接,宿便找了个,如下图: 可以定制自己的,一般来说,没有高速电路问题不大,但是这种方式对于复杂的底板可能布线就比较麻烦,

高德面试:为什么Map不能插入null?

在 Java 中,Map 是属于 java.util 包下的一个接口(interface),所以说“为什么 Map 不能插入 null?”这个问题本身问的不严谨。Map 部分类关系图如下: 所以,这里面试官其实想问的是:为什么 ConcurrentHashMap 不能插入 null? 1.HashM

零基础写框架(2):故障排查和日志基础

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co

零基础写框架:从零设计一个模块化和自动服务注册框架

关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co

心跳包

什么是心跳包(心跳机制) 先看一下wiki上的说法: 心跳包(英语:Heartbeat)在计算机科学中指一种周期性的信号,通过硬件或软件的形式来检测行为的正常与否,或者与计算机系统是否一致。[1] 通常,机器间会每隔几秒钟发送一次心跳包。 如果接收终端没有在指定时间内(通常是几个心跳包发送的时间间隔

关于对于Java中Entity以及VO,以及DTO中Request对象序列化的学习

关于 Serializable的探讨 前提引入 是由于软件测试上有同学提到说,什么该字段在程序刚运行时,导致jvm激增,所以吸引了我的注意 回顾代码 MybatisPlus Generator自动生成的entity中就经常带有这个, 而且我在开发代码的时候VO,以及DTO常常是直接复制对应的enti

常回家看看之堆溢出

对于堆溢出,有很多漏洞可以和它打配合,可以说是堆里面很常见的漏洞,常见的有off_by_null,House系列(后续学习到了会继续更新这个系列),unlink,等等。 今天来看一个,堆溢出修改指针,导致libc泄露以及通过指针来修改got表的题目。 题目连接我放下面了,对堆有兴趣的可以去看看✔

文科生在三本院校,读计算机专业

6岁,进入村小,一年级,老师问我的梦想是什么,我说我长大了我要成为科学家。 9岁,三年级,知道科学家不现实,开始学习英语。又因为科学家英语不好发音,于是我的梦想变了,长大了我要成为经理。 11岁,五年级,开始成为网瘾少年,边玩游戏边挣钱才是我的梦想,所以我长大了我要做网吧管理员或开一间电脑修理店。

C++里也有菱形运算符?

最近在翻《c++函数式编程》的时候看到有一小节在说c++14新增了“菱形运算符”。我寻思c++里好像没什么运算符叫这名字啊,而且c++14新增的功能很少,我也不记得有添加这种语法特性。一瞬间我有些怀疑我的记忆了,所以为了查漏补缺,我写了这篇文章。 什么是菱形运算符 这个概念在Java里比较多见: L