首页 / 技术专题CATEGORY / SPRINGFORALL

Java

在这个技术方向,积累扎实的知识与实践。

共 562 篇文章

Java 中 @NotNull 和 @Nonnull 之间的区别

在 Java 中,确保某些变量、参数或返回值不是 ‘null’ 对于防止像 ‘NullPointerException’ 这样的运行时错误至关重要。两种常见的注释 ‘@NotNull’ 和 ‘@Nonnull’ 通常用于此目的,但它们的作用和上下文不同。让我们深入了解这两个 annotation 之间的区别。 ‘@NotNull’ (来自…

Java ArrayList 源码分析(一)

前言 如果想要更深入的去了解集合那就要通过我们去分析它的源码来了解它。希望对集合有一个更进一步的理解! 既然是看源码那我们要怎么看一个类的源码呢?这里我推荐的方法是: 1)看继承结构 看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。 2)看构造方法 在构造方法中,看做了哪些事情,跟踪方法中里面的方法。 3)看常用的方法…

Java Linkedlist源码分析(一)

前言 前文分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表? 一、LinkedList简介 1.1、LinkedList概述 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的。 LinkedList…

Java 字符串常量池介绍

本文将介绍 HotSpot 中的 String Pool,字符串常量池。相对是一篇比较简单的文章,大家花几分钟就看完了。 在 Java 世界中,构造一个 Java 对象是一个相对比较重的活,而且还需要垃圾回收,而缓存池就是为了缓解这个问题的。 我们来看下基础类型的包装类的缓存,Integer 默认缓存 -128 ~ 127 区间的值,Long 和…

深究线程池原理并根据业务场景更改其工作流程

文章介绍 写这篇文章是因为我们后台有一个看板页面,并且指标非常多,查询条件也非常复杂导致没法做宽表只能实时从各个数据源查询出来并计算;想让接口响应时间更短一些更改了很多次线程池参数,但都达不到理想状态,为此研究了一下线程池原理,并且实现了一个适合自己业务场景的线程池工作。…