logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入理解 Java Map、Set 与哈希表:原理 + 手写代码 + 实战

在 Java 开发与面试中,Map 和 Set是永远绕不开的核心集合。二叉搜索树 / 红黑树哈希表(哈希桶)本文从零开始,带你吃透原理、手写代码、掌握场景,彻底搞定 Map/Set。二叉搜索树(Binary Search Tree,BST)也叫二叉排序树左子树所有节点值根节点值右子树所有节点值根节点值左右子树也必须是二叉搜索树java运行/*** 自定义哈希桶(数组 + 链表)* 实现:put、g

#java#散列表#开发语言
Java 多线程进阶:锁策略、CAS、Synchronized 原理与 JUC 核心组件

CAS 仅比较内存值,无法感知数据是否被修改过。初始值A,线程 1 读取值为A,准备修改为Z;线程 2 将值A改为B,再改回A;线程 1 执行 CAS,发现值还是A,误以为未被修改,直接更新为Z,导致数据异常。多个线程互相持有对方需要的锁,且都不释放,导致无限阻塞、程序卡死。类比两人互相要对方的酱油和醋,互不妥协,僵持不下。锁策略无优劣,乐观锁适合低冲突、悲观锁适合高冲突,自旋锁平衡开销与效率;C

文章图片
#java#java-ee
网络编程套接字万字详解

网络编程:网络中的不同主机,通过各自进程,以代码方式实现网络通信 / 数据传输。通信主体:不同主机的不同进程;特殊场景:同一台主机内的多个进程通过网络传输数据,也属于网络编程(开发测试常用);核心角色:一类进程负责获取网络资源(客户端),一类进程负责提供网络资源(服务端)。Socket(套接字)是操作系统提供的网络通信基础单元,基于 TCP/IP 协议簇实现,基于 Socket 开发网络程序,就是

#网络#php#开发语言
别在啃厚书了!线程知识点全在这里

线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,所有线程共享进程的资源(如内存、文件描述符等),但每个线程拥有独立的程序计数器、栈和寄存器组。⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 “同时” 执行着多份代码,main()⼀般被称为主线程(Main Thread)。

#java#jvm#开发语言
别在啃厚书了!线程知识点全在这里

线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,所有线程共享进程的资源(如内存、文件描述符等),但每个线程拥有独立的程序计数器、栈和寄存器组。⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 “同时” 执行着多份代码,main()⼀般被称为主线程(Main Thread)。

#java#jvm#开发语言
到底了