首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
marskd
更多收藏集
微信扫码分享
微信
新浪微博
QQ
95篇文章 · 0订阅
面试:为了进阿里,需要深入理解ReentrantLock原理
ReentrantLock是个典型的独占模式AQS,同步状态为0时表示空闲。当有线程获取到空闲的同步状态时,它会将同步状态加1,将同步状态改为非空闲,于是其他线程挂起等待。在修改同步状态的同时,并记录下自己的线程,作为后续重入的依据,即一个线程持有某个对象的锁时,再次去获取这个…
手把手教你实现一个方法耗时统计的 java agent
1. 基本姿势点 前面两个方法比较重要,addTransformer 方法配置之后,后续的类加载都会被 Transformer 拦截。对于已经加载过的类,可以执行 retransformClasses 来重新触发这个 Transformer 的拦截。类加载的字节码被修改后,除非…
JAVA中的静态代理、动态代理以及CGLIB动态代理
JAVA 代理
算法复杂度和大 O 表示法
算法复杂度是算法分析里的概念,是衡量计算资源消耗数量的指标。 算法的复杂度在理论上表示为一个函数:其定义域是输入数据的长度(通常考虑任意大的输入,没有上界),值域通常是执行步骤数量(时间复杂度)或者存储器位置数量(空间复杂度)。 本文通过一个 SICP 上的幂算法例子演示复杂度与算法的关系。
JVM 的类初始化机制
当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 Lo…
JAVA 中的网路编程
这一文章主要关于 JAVA 网络编程,包括 1、JAVA 中的网路编程 2、网络模型 3、网络通信的三要素:IP 地址,端口,还有传输协议 4、传输协议:UDP 5、传输协议:TCP 6、网络传输应用
Lombok:极简代码利器
曾几何时,你是否反感于手写大量的 Getter/Setter 方法或者看到大量的 Getter/Setter 方法而眼花缭乱,今天介绍一款 Java 注解驱动的极简代码利器:Lombok,它通过在编译期修改抽象语法树(AST)生成字节码文件。
JAVA 集合框架中的常用集合及其特点、适用场景、实现原理简介
这篇文章将就 Java Collections Framework 中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。