“在代码的世界里,每一行都是进步的足迹,每一次挑战都是成长的机遇。”

HashMap ArrayList LinkedList

HashMap中的源码分析: 1.HashMap底层是基于数组+链表(升级成红黑树来实现的),通过数组实现的 Hash桶,默认数组的HASH桶长度为16个,负载因子为0.75,元素容量超过这个(长度*负载因子)就会扩容(resize()方法 ,扩1倍),链表升级成红黑树...
查看

Java中的接口(interface)和抽象类(abstract class)

Java中的接口(interface)和抽象类(abstract class)是两种用于实现多态性和封装的机制,它们有以下区别:1. 定义方式:接口使用interface关键字定义,抽象类使用abstract class关键字定义。2. 实现方式:一个类可以实现多个接口...
查看

JVM的面试题

1. 什么是 JVM? 答案:Java 虚拟机(JVM)是一个虚拟计算机,它能够执行 Java 字节码。JVM 是 Java 平台的一部分,负责将 Java 程序编译后的字节码转换为机器代码,并在特定的操作系统上运行。J...
查看

软件编码安全问题

在软件开发领域,程序员的素养不仅仅体现在写出高效、功能完善可扩展的代码,更要确保代码的安全性。安全编码是构建可靠软件系统的基石,它涉及到从设计到实现的每一个环节,很大部分软件程序员对编码安全意识淡薄,错误编码极容易导致系统性能下降,数据泄露,被植入恶意代码造成不必要的损...
查看

微服务拆分真的要谨慎

微服务的优点 在讨论弊端之前,我们先简要回顾一下微服务的优点: (摘录至某知识博客) 灵活性:每个微服务可以独立部署和更新,不影响其他服务。 可扩展性:可以根据需要单独扩展某个微服务,而不是整个系统。 技术多样性:不同的微服务可以使用不同的技术栈,选择最适合的工具来解决...
查看

Vertx-client框架-高性能 HTTP 请求框架

时势 在当今的软件开发中,高效的网络通信是至关重要的。本文将介绍一种基于高性能底层 Netty 的 Vertx 框架的简单 HTTP 请求封装方法,它能够承载更多的网络 IO 请求,为我们的应用程序提供更强大的网络通信能力。 一、背景介绍 随着互联网的发展,应用程序对网...
查看

多线程中线程池选择,线程参数如何界定

时势 在Java多线程编程中,合理选择和配置线程池确实是非常重要的,因为它直接关系到程序的性能和资源利用效率。 固定大小的线程池 (FixedThreadPool): 适用于任务执行时间相对均衡,且任务数量适中的场景。 由于线程数固定,不会因任务数量激增而创建大量线程,...
查看