记录真实开发问题、项目实践和两三句就能说明白的技术点
JMM(Java 内存模型)与 JVM 内存结构是两个易混淆的概念。本文讲清主内存与工作内存的抽象、并发三大特性(原子性/可见性/有序性),用代码演示 volatile 如何解决可见性与重排、为何不保证原子性,剖析双重检查锁单例必须加 volatile 的原因,对比 syn...
加了 @Transactional 却不生效,是 Spring 开发最常见的困惑。本文梳理 7 种传播行为(REQUIRED/REQUIRES_NEW/NESTED 等)、4 种隔离级别与脏读/不可重复读/幻读,并逐一拆解 9 大事务失效场景:非 public 方法、同类自...
线程池参数如何设置是 Java 面试与线上事故的高发点。本文详解 ThreadPoolExecutor 七大核心参数、先核心再队列后扩容的执行流程、四种拒绝策略、execute 与 submit 的区别、Executors 快捷方法的坑、CPU/IO 密集型线程数估算,以及...
HashMap 是 Java 面试必问的集合类。本文基于 JDK 1.8 源码,讲透数组+链表+红黑树结构、hash 扰动函数、put/get 全流程、高低位扩容迁移、为什么容量是 2 的幂、负载因子 0.75 与树化阈值 8 的设计依据,并对比 JDK 1.7 与 Con...
Windows 下安装并部署 Redis 为服务:下载 Redis-x64 解压或 msi,redis-server 启动、redis-cli 连接,以及用 redis-server --service-install/start/stop/uninstall 注册为 Wi...
Spring Boot 打 war 包报 webxml attribute is required(或 pre-existing WEB-INF/web.xml) 的原因:maven-war-plugin 版本过低要求 web.xml。解决:配 failOnMissingW...
用 winget 更新安装 PowerShell 的步骤:检查当前版本($PSVersionTable.PSVersion)、winget search 查最新版、winget install 安装,并说明 5.1 与 7.x 可共存、需打开 pwsh.exe 使用新版。
Linux gz文件解压, Linux rar文件解压, Linux zip文件解压 tar.gz 压缩、tar.gz解压 语法: tar [主选项 + 辅选项] 文件或目录 示例: # 压缩文件 file1 和目录 dir2 到 test…
系统版本:centos7.3版本 java版本:1.8 一、准备工作 1、java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中。 2、下载tomcat包,下载地址:http://tomcat.apache.…
Linux安装配置java JDK 一键安装即可(yum安装); 手动安装,需要自己去Oracle官网下载需要的jdk版本,然后解压并配置环境,整个过程其实很简单。推荐手动安装 一、yum一键安装 这种办法简单粗暴,就像盖伦丢技能一样。废话…
滚动导航 + 吸顶是常见交互。本文用 position: sticky 实现吸顶(注意祖先 overflow 会使其失效),并用 scroll 监听高亮当前导航项,给出比 fixed 更顺滑的方案与兼容兜底。
前言 上下滚动是页面上常见的交互行为之一,为了让一些重要的信息始终出现在界面上,不随着页面滚动而看不见。前端会在它向上滚动出屏幕前把它固定在顶部,向下滚动到该出现的位置时把它释放掉,这样的交互方式称为吸顶。比如页面的通栏标题,一些重要导购场…
scroll(function(direction) { console.log(direction) }); function scroll( fn ) { var $window = $(window), beforeScrollTop…
在做一个滚动 到 距 浏览器顶部 60像素固定悬浮功能的时候插件总是有bug, 于是从网上找了一下文章做参考 , 在这里记录一下 。 滚动吸顶效果。我当时很纳闷为何一个滚动吸顶会有 bug,后来我查看代码才发现直接用的是 offsetTop…
介绍getBoundingClientRect;以及获取width,height的兼容性写法;最后介绍了两个使用场景:获取页面元素的位置和判断元素是否在可视区域。 1. 什么是getBoundingClientRect getBoundin…