1. 引言 Java作为一门面向对象的编程语言,支持继承和多态等特性,允许子类继承父类的属性和行为。然而,与成员方法不同,Java中的父类成员变量在子类中不能被覆盖。本文将探讨这个设计决策的原因,以及如何在子类中正确使用父类的成员变量。 2....
面试题 · ThreadLocal中ThreadLocalMap的数据结构和关系? · ThreadLocal的key是弱引用,这是为什么? · ThreadLocal内存泄露问题你知道吗? · ThreadLocal中最后为什么要加remove方法? 是什么? 能干嘛 Thread...
微服务被广泛用于创建多功能的应用程序,通过组合每个功能部分并将它们逐层放在一个单元中。许多人可能没有意识到微服务是一组小型服务中制作单个应用程序的方法,每个服务都独立运行(进程)。 换句话说,微服务更像是一种面向服务的架构,它使任何...
一. 前言 经历过组件多个版本的迭代后,应该会发现,随着工具的不断演进,能搜索到的配置方式可能大多数都过时了,那么如何根据自己的版本快速的找到配置方式呢? 有时候官方文档里面能给我们正确答案,或者网上正好有对应版本的资料,这些都不在...
直接上传图像文件的过程在客户端用户和网站的底层文件存储实例之间创建了一条高效的路径,极大地有利于客户端/web服务关系的两端。在很大程度上,由于独立开发者项目和小型企业的云存储资源的可用性(以及可负担性)不断提高,人们越来越频繁地上传自己的...
N+1问题:N+1问题是指在使用关系型数据库时,在获取一组对象及其关联对象时,产生额外的数据库查询的问题。其中N表示要获取的主对象的数量,而在获取每个主对象的关联对象时,会产生额外的1次查询。 N+1问题是很多项目中的通病。遗憾的是,直到数据...
一、前言 在当今互联网时代,应用程序越来越复杂,对于我们开发人员来说,如何实现高效的组件化和模块化已经成为了一个重要的问题。而 Java SPI(Service Provider Interface)机制,作为一种基于接口的服务发现机制,可以帮助我们更好地解决这个问...
Java中BigDecimal类型的加减乘除运算 add():加法, subtract():减法:, multiply():乘法; divide():除法, 1.简单的加减乘除运算 public class test { public static void main(String[] args) { &n...
Java是当今最流行的编程语言之一,常年位居最受欢迎编程语言排行榜前三。 一个优秀的Java程序员,在研发时离不开对测试框架的了解,从而开发出更安全和更高效的代码。使用这些测试框架的其中一个最重要的原因是减少出错的可能性,提高开发效率,并降...
1. 简介 1.1 什么是Redis事务 Redis事务(Transaction)通过将多个Redis操作封装为一个原子性的操作序列,确保在事务执行过程中,不会受到其他客户端的干扰。从而在保证数据一致性的同时,协调并发,提高数据操作的效率和性能。 1.2 Redis事务...
大家经常听到内存泄漏, 那么线程泄漏是指什么呢? 线程泄漏是指 JVM 里面的线程越来越多, 而这些新创建的线程在初期被使用之后, 再也不被使用了, 然而也没有被销毁. 通常是由于错误的代码导致的这类问题。 一般通过监控 Java 应用的线程数量的相关...
Ant介绍 Ant是Java的生成工具,是Apache的核心项目; Ant类似于Unix中的Make工具,都是用来编译、生成; Ant是跨平台的,而Make不能。 Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录...
一、CopyOnWriteArrayList简介 1.1 什么是CopyOnWriteArrayList CopyOnWriteArrayList是Java并发包(java.util.concurrent)中的一个线程安全的ArrayList实现。它采用“写时复制”(Copy-On-Write,简称COW)策略来实现对列表的高性能读取和写操...
首先,思考这么一种场景,假如现在A类继承了B类和C类,并且B类和C类中,都存在test()方法,那么当A类对象调用test()方法时,该调用B类的test()呢?还是C类的test()呢?是没有答案的,所以Java中不允许多继承。 但是,Java中接口是可以多继承的,比如...
Stream是Java 8添加的一个API,结合Lambda表达式,可以提高我们对对集合处理的编码效率。在日常工作中,我们经常会遇到List转Map的情况,在Stream出来之前,我们一般都是遍历放进map中。 这里,我们假设有个User对象。 @Getter @Setter pub...
1、前言 Java 中的 I/O 流是实现输入和输出的一种机制,可以用来读写文件、网络、内存等各种资源。Java 提供了各种类型的流,包括字节流和字符流,以及面向文本和二进制数据的流。在本文中,我们将深入探讨 Java I/O 流的各个方面,从流的类型和分类...
背景 今天收到业务团队反馈线上有个应用往 Pulsar 中发送消息失败了,经过日志查看得知是发送消息时候抛出了 java.lang.InterruptedException 异常。 和业务沟通后得知是在一个 gRPC 接口中触发的消息发送,大约持续了半个小时的异常后便恢复正常...
永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。 但从《Java 虚拟机规范》的层面来说,并没有所谓...
文件操作是每个项目中必备的一个模块,Hutool中的FileUtil类库封装了大多数文件操作,非常方便,今天给大家分享一下具体的使用示例。 1、pom.xml 导入依赖包 <dependency> <groupId>c...
线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。 在程序执行的时候,难免会遇到死锁的情况。 下面介绍一下如何排查Java中的死锁线程。 先来个死锁的例子: import java.util.concurrent.T...