前端向学习(一):HTML/CSS 基础入门
这是「前端向学习」系列的第一篇。本篇把 11 个前端基础知识点串成一条线,把常见误区和易混点直接融进对应章节讲解,而不是堆在文末。 写在前面本篇是「前端向学习」系列的第一篇,把 11 个前端基础知识点串成一条线。讲解以直接说清前端概念为主,少代码、多直觉;常见的误区和易混点会在对应的章节里当场讲清,而不是堆在文末统一答疑。 本文脉络:先看结论 时间有限的话,先记住下面这张「骨架图」和 5 条核心认知,再带着它们去读细节。 本篇会把下面 11 个前端基础知识点串成一条线: SEO → async/defer → DOMContentLoaded → 事件家族 → 行内/块级 → preload/prefetch → async vs as → CSS3 新特性 → 盒模型 → 选择器优先级 → 动效三剑客。 读的时候重点建立这 5 条认知: 概念之间是有联系的:把「脚本加载 / 事件 / 盒模型」串起来看,比单点记忆更牢; SPA 纯 CSR 是 SEO 最大坑,要靠 SSR/预渲染; defer 在...
Netty 详解:从 I/O 多路复用到写出第一个服务端
Netty 是当前 Java 生态中应用最广泛的异步事件驱动网络框架,被广泛用于 RPC(如 Dubbo、gRPC-Java 的传输层)、消息中间件(如 RocketMQ)以及高并发网关等基础设施。对于以 Java 后端为主技术栈的开发者而言,理解 Netty 的运作机理具有直接的工程价值。 本文以”问题驱动”的方式展开:先厘清 Netty 所解决的问题,再逐层深入 I/O 多路复用与 epoll 的底层原理、主从 Reactor 线程模型、套接字 bind 与 listen 的语义差异、TCP_NODELAY 与 Nagle 算法的取舍、粘包拆包的处理范式、ByteBuf 的内存模型,以及工程实践中常见的典型错误。文中对以下三个易被忽视的关键问题给出专门剖析,并将其置于对应的技术上下文中,而非作为附录: Linux 平台上 Netty 实现”少量线程承载海量连接”的底层机理(根植于 epoll); ServerBootstrap.bind(8080) 所完成的实际操作,及其与”开始监听”之间的语义关系; 实时通信场景下...
Go 语言学习(一)基础语法
摘要:本文是 Go 语言学习系列的第一篇,覆盖**第 1 章(基础语法)**的全部四大板块——变量与常量、基本类型、运算符、流程控制。内容从「如何声明一个变量」讲起,延伸到 Go 的整数宽度哲学、string 的不可变本质、for 为何是唯一循环、以及常被其他语言习惯带偏的若干写法。每一板块都配可运行代码、对比表格、速记钩子,并在文末给出易错 Checklist 与自测题。读完你应能正确、地道地写出 Go 最基础的语句,并避开初学最高频的几个坑。 💡 读前须知:每个可运行的 Go 程序都以 package main 开头,含 func main() 作为入口,用 import 引入标准库包(如 fmt)。下文示例默认写在 main 包内,为节省篇幅常省略 package/import 头。 目录 1.1 变量与常量 1.1.1 var 声明与零值 1.1.2 短声明 := 1.1.3 多重赋值 1.1.4 const 与 iota 1.2 基本类型 1.2.1 布尔与字符串 1.2.2 整数类型 1.2.3 浮点与复数 1.2.4 字节与字符:byte...
Go 语言学习(二)复合数据类型
摘要:本文是 Go 语言学习系列的第二篇,覆盖**第 2 章(复合数据类型)**的全部四种类型——数组(Array)、切片(Slice)、映射(Map)、结构体(Struct)。每种类型都从「是什么、怎么声明与初始化、底层语义(值类型还是引用类型)、怎么遍历、怎么当函数参数、有哪些常见陷阱」展开,配有可运行代码、对比表格、结构图示与速记钩子。读完你应能正确、地道地选用这四种类型,并看清它们彼此的关系。文末附核心速记、易错 Checklist 与自测题。 目录 2.1 数组(Array) 2.1.1 三条铁律 2.1.2 四种初始化 2.1.3 长度是类型的一部分 2.1.4 零值 2.1.5 下标与越界 2.1.6 值类型:整体复制 2.1.7 数组比较 2.1.8 指针数组 vs 数组指针 2.1.9 多维数组 2.1.10 遍历 2.1.11 作为函数参数 2.2 切片(Slice) 2.2.1 底层结构 2.2.2 三种创建方式 2.2.3 长度与容量 2.2.4 append 与扩容 2.2.5 共享底层数组的陷阱 2.2.6 遍历 2.2.7...
JVM学习笔记
内存结构 1.程序计数器作用:记录下一条指令的执行地址 特点: 线程私有 不会内存泄漏 2.Java虚拟机栈(存局部变量,方法参数)1.定义: 每个线程运行时需要的内存,称为虚拟机栈 每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存(参数、局部变量、返回地址) 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。 2.问题辨析:1.垃圾回收是否涉及栈内存? 不会,也不需要。 2.栈内存分配越大越好吗? -Xss1024k 不一定,栈内存越大,线程数就越小。 3.方法内的局部变量是否线程安全? 需要判断变量是不是共享变量,私有变量是线程安全的。共享变量需要考虑线程安全问题。 局部变量是否逃离了方法的作用范围,通过返回值返回了引用地址,可能会被其他线程访问,也需要注意线程安全问题。 3.栈内存溢出 栈帧过多(如递归过深) 栈帧过大() 4.线程运行诊断1.线程占用cpu过高 定位 用top命令定位哪个进程对cpu的占用过高 ps H -eo pid,tid,%cpu | grep...
Java 并发编程(一)线程基础:创建、生命周期与常用方法
摘要:本文是 Java 并发编程系列的第一篇,覆盖**模块 1(基础层)**的全部内容——三种线程创建方式及其底层原理、线程六种生命周期状态与完整转换图、Thread 核心方法(sleep/wait/yield/join/interrupt/守护线程)的深度解析。每个知识点均配有可运行代码、原理拆解与面试速记,文末附总结。 目录 一、三种方式创建线程 1.1 继承 Thread 类 1.2 实现 Runnable 接口 1.3 实现 Callable 接口(带返回值) 1.4 三种方式的底层关系与选择指南 二、线程生命周期与状态(核心) 2.1 六种状态一览 2.2 状态转换全景图 2.3 每种状态的触发条件与代码演示 2.4 面试高频:BLOCKED vs WAITING vs TIMED_WAITING 三、核心方法深度解析 3.1 currentThread() 与线程基本信息 3.2 run() 与 start() 的本质区别 3.3 sleep() —— 抱着锁睡 3.4 wait() ——...
Java 并发编程(九)ThreadLocal 体系:隔离原理、跨线程传递与内存泄漏
摘要:ThreadLocal 是 Java 多线程面试的高频考点。本文从「线程隔离」的设计理念出发,深入剖析 ThreadLocalMap 数据结构、源码级 set/get/remove、线性探测解决哈希冲突,重点讲清弱引用 key 与强引用 value 的内存模型与设计动机、数据存储位置、一个线程存多个值的姿势、完整生命周期,以及内存泄漏的根因与最佳实践;并延伸至 InheritableThreadLocal 与 TransmittableThreadLocal 的跨线程传递,结尾以总结收束。每个章节均穿插面试口述与记忆钩子。 目录 一、作用与定位 二、线程隔离演示 三、注意事项 四、实现原理:数据结构 五、核心操作源码解析(set / get /...
Linux常用命令
此文章记录Linux常用命令,方便日后查阅使用。 命令格式 文件和目录操作 1.查看当前路径 2.列出目录内容 3.切换目录 4.创建目录 5.删除文件或目录 6.新建文件或更新文件时间戳:touch 7.移动文件:mv[原文件位置] [新文件位置] 8.复制文件 9.查看文件内容 11.打印字符串到屏幕 13.查询历史命令 系统监控相关命令 Shell相关命令1.Shell的基本概念 shell是一种广泛使用的交互式脚本语言,通常用于Unix类系统(如Linux、macOS等)运行用户在交互式环境下执行命令。 它有两种主要的客户端: Bash:现代、增强版的Shell,支持脚本编写。本文记录Bash下的命令 Sh:经典版本的Shell,功能相对基础。 用命令echo -$SHELL查询当前所用的Shell客户端,在大多数Linux发行版中,使用的都是Bash。 创建.sh后缀名的文件(例如叫demo.sh),然后用命令bash...
消息队列学习记录
RabbitMQ如何保证消息的可靠性?从3个层面上考虑,包括生产端,Broker端,消费端。 生产端 使用消息确认机制ack 生产者端在发生消息后可以注册一个回调函数,用于监听消息是否成功送达Broker。 如果消息成功写入队列,RabbMQ会返回一个ack; 如果失败(如队列不存在、交换机不可达),会返回nack。 Broker端 1.持久化 对象 属性 说明 Queue durable=true 队列在服务器重启后仍存在 Exchange durable=true 交换机持久化 Message deliveryMode=2 消息持久化(1=非持久化,2=持久化) 注意:即使设置了持久化,也只能防止 服务器宕机 的消息丢失,不能防止 未被消费就删除...
八股_java集合
...




