Java基础
文章平均质量分 91
徐俊生
Write the code, Change the world!
展开
-
JavaAgent 技术原理及实战
利用 javassist 对 Log 框架进行切面增强。利用 Spring 的拦截器技术实现了 Web 请求的 traceId 初始赋值。通过整合 dubbo SPI,结合 dubbox 调用拦截器,实现 traceId 的拦截及赋值。引入TransmittableThreadLocal 解决父子线程上下文传递的问题。原创 2024-03-31 18:06:11 · 1372 阅读 · 0 评论 -
揭秘Java switch语句中的case穿透现象
在开始揭秘case穿透现象之前,我们先简单回顾一下switch语句的基本用法。switch语句用于根据变量的不同取值执行相应的代码块。// 执行代码块1break;// 执行代码块2break;...default:// 默认代码块switch case支持的6种数据类型:switch 表达式后面的数据类型只支持byte、short、int整形类型、字符类型char、枚举类型和java.lang.String类型。根据expression的值,程序会跳转到对应的case。原创 2023-10-29 12:55:47 · 1236 阅读 · 0 评论 -
一文彻底弄懂ConcurrentHashMap
一文彻底弄懂ConcurrentHashMap原创 2022-10-06 10:05:00 · 3250 阅读 · 1 评论 -
HashMap 硬核 10 连问
HashMap 10 连问原创 2022-10-03 21:36:49 · 692 阅读 · 0 评论 -
一文弄懂 HashMap 中的位运算
位运算的奇淫技巧原创 2022-10-03 20:59:42 · 1437 阅读 · 1 评论 -
深入剖析 HashMap
深入理解 HashMap。原创 2022-10-03 20:32:57 · 774 阅读 · 0 评论 -
Java 并发之 AQS 详解(下)
Java 并发之 AQS 详解原创 2022-09-04 20:56:07 · 506 阅读 · 0 评论 -
Java 并发之 AQS 详解(上)
Java 并发之 AQS 详解原创 2022-09-04 19:58:07 · 600 阅读 · 0 评论 -
Java 线程池实现原理及实战
ThreadPoolExecutor万字详解原创 2022-08-07 17:45:23 · 677 阅读 · 0 评论 -
一文读懂JVM架构解析
JVM 架构解析Java 架构JVMJVM是如何工作的?类加载器子系统运行时数据区执行引擎每个 Java 开发人员都知道字节码经由 JRE(Java运行时环境)执行。但他们或许不知道 JRE 其实是由 Java虚拟机(JVM)实现,JVM分析字节码,解释并执行它。作为开发人员,了解 JVM 的架构是非常重要的,因为它使我们能够编写出更高效的代码。本文中,我们将深入了解 Java 中的 JVM 架构和 JVM 的各个组件。首先我们介绍一下 JDK、JRE 以及 JVM 之间的关系。Java 架构J原创 2022-04-16 23:48:53 · 2015 阅读 · 1 评论 -
面试官:谈谈你对 Java 平台的理解
谈谈你对 Java 平台的理解参考回答知识点面向对象平台无关性JVM类加载机制垃圾回收异常处理面试的时候,经常会有面试官问:请你谈谈对 Java 平台的理解,「Java 是解释执行」,这句话正确吗?其实这个问题,问得有点笼统。题目本身是非常开放的,往往考察的是多个方面,比如,基础知识理解是否很清楚;是否掌握 Java 平台主要模块和运行原理等。个人认为,回答这类开放性问题的思路,可以从宏观的角度出发,从浅入深,由点到面。总的来说可以从如下几个方面来回答:面向对象:封装、继承、多态;平台无关性:原创 2022-04-10 11:19:20 · 1219 阅读 · 0 评论 -
[Java高级](二)泛型
JAVA 泛型中的通配符 T,E,K,V,?1、前言2、泛型带来的好处3、泛型中通配符3.1、? 无界通配符3.2、上界通配符 < ? extends E>3.3、下界通配符 < ? super E>3.4、? 和 T 的区别3.5、Class 和 Class<?> 区别1、前言Java 泛型(generics)是 JDK 5 中引入的一个新特性,泛型提供了...转载 2019-09-02 21:35:03 · 308 阅读 · 0 评论 -
[Java高级](五)【Java8新特性】lambda表达式与函数式接口
lambda表达式详解1、Java8新特性1.1、lambda表达式基本语法语法简化常用示例示例1:方法引用示例2:构造方法的引用示例3:lambda 表达式创建线程示例4:遍历集合示例5:删除集合中的某个元素示例6:集合内元素的排序闭包问题1、Java8新特性Java8于2014年发布,相比于Java7,Java8新增了非常多的特性,如lambda表达式、函数式接口、方法引用、默认方法、新工具(编译工具)、Stream API、Date Time API、Optional等。1.1、lambda表达转载 2021-07-07 10:43:46 · 170 阅读 · 0 评论 -
[Java高级](三)时间复杂度计算
正值疫情,家中闭关,早起看新闻确诊人数已过万,不禁唏嘘,在此真切希望长风破浪会有时,直挂云帆济沧海。感激奋斗在一线的医护人员。时间复杂度1、概念2、各时间复杂度介绍2.1、O(1)2.2、O(logn)、O(nlogn)对数阶时间复杂度2.3、O(m+n)、O(m*n)2.3.1加法法则2.3.2 乘法法则2.3.3 循环不仅与n有关,还与执行循环所满足的判断条件有关。1、概念时间复杂度是指...转载 2020-02-01 10:37:32 · 746 阅读 · 2 评论 -
[Java高级](一)IO输入输出
字节流和字符流(输入流和输出流)1、什么是流2、字节流2.1、字节输入流3、字符流1、什么是流流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。根据处理数据类型的不同分为:字符流和字节流;根据数据流向不同分为:输入流和输出流。输入流是相对程序而言的,外部传入数据...原创 2019-08-29 20:32:47 · 211 阅读 · 0 评论 -
[Java高级](四)Filter和Interceptor
Filter和Interceptor1、过滤器(Filter)1.1、Filter的三种实现方式1.1.1、无路径无顺序@Component1.1.2、有路径无顺序@WebFilter+@ServletComponentScan1.1.3、有路径有顺序@Configuration1.2、Filter各方法的作用2、过滤器(Interceptor)2.1、code2.2、方法及作用2、Filter和Interceptor区别1、过滤器(Filter)Filter也称之为过滤器,它是Servlet技术中最实原创 2021-01-10 21:37:04 · 259 阅读 · 0 评论 -
[java基础-数据结构] ArrayList其他方法解析
/** *返回此列表中的元素数。 */ public int size() { return size; } /** * 如果此列表不包含元素,则返回 true 。 */ public boolean isEmpty() { //注意=和==的区别 return size == 0; } /** * 如果此列表包含指定的元素,则返回true 。 ...转载 2021-02-03 22:51:56 · 133 阅读 · 0 评论 -
[java基础-数据结构] List集合
List集合1、ArrayList核心源码分析2、ArrayList扩容机制3、常见问题3.1、Arraylist 与 LinkedList 区别?3.2、ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?List 集合是线性数据结构的主要实现,集合元素通常存在明确的上一个和下一个元素,也存在明确的第一个元素和最后一个元素。List 集合的遍历结果是稳定的。该体系最常用的是ArrayList和LinkedList两个集合类。ArrayList是容量可以改变的非转载 2021-01-26 22:32:49 · 374 阅读 · 0 评论 -
[java基础] 04 - 深入理解HashMap
深入理解HashMap底层原理剖析-JDK1.81、HashMap 存储结构1、HashMap 存储结构``HashMap 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的键为 null ,允许多条记录的值为 null 。HashMap 非线程安全,即任一时刻可以有多个线程同时写 ...转载 2019-11-28 11:31:06 · 222 阅读 · 0 评论 -
[java基础] 03-final关键字
final 在 Java 中是一个保留的关键字,可以声明变量、方法、类。转自:腾讯面试,我竟然输给了final关键字1、什么是final变量 / 类 / 方法?任何变量前被 final 修饰就是 final 变量,定义的类前被 final 修饰就是 final 类,任何方法前被 final 修饰就是final方法。当用 final 修饰一个类时,表明这个类不能被继承。如下图箭头指向的地方,...转载 2019-03-13 17:09:53 · 189 阅读 · 0 评论 -
java基础02-静态代码块的执行方式和顺序
转自:静态代码块的执行方式和顺序1、静态代码块格式static{ 执行语句}特点:随着类的加载而执行,且只执行一次,并优先于主函数。用于给类初始化的。2、执行顺序:示例一静态代码块随着类加载而加载有多个静态代码块的,按代码块前后顺序加载一个代码块,只执行一次。class StaticCode1{ static{ ...转载 2019-03-13 16:34:44 · 178 阅读 · 0 评论 -
java基础01-String为什么不可变
String为什么不可变什么是不可变对象?区分对象和对象的引用为什么String对象是不可变的?什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他...转载 2019-03-13 15:27:46 · 184 阅读 · 0 评论