
Java
文章平均质量分 64
oo寻梦in记
这个作者很懒,什么都没留下…
展开
-
【Java 基础】-- 深入剖析 Java HashMap 中的红黑树
节点颜色:每个节点要么是红色,要么是黑色。根节点:根节点是黑色。叶子节点:每个叶子节点(NIL)是黑色。红色节点限制:每个红色节点的两个子节点一定都是黑色。黑色节点平衡:从任一节点到其每个叶子节点的路径都包含数量相同的黑色节点。这些特性确保了红黑树的平衡性,使其在最坏情况下的查找、插入和删除操作的时间复杂度维持在 O(log n)。原创 2025-03-14 16:45:10 · 397 阅读 · 0 评论 -
【Java 基础】-- Java final 关键字详解
使用final关键字定义常量时,通常与static这样可以确保PI作为全局常量不可更改。原创 2025-03-12 11:27:47 · 296 阅读 · 0 评论 -
【Java 和 Scala】-- Java 与 Scala 的 Assert 断言对比
断言(Assertion)是一种用于在开发和测试阶段检查代码逻辑的机制。它通常用于验证程序的某些假设是否成立,若不成立,则会抛出错误或异常,以便开发者发现潜在的逻辑错误。在 Java 和 Scala 中,assert关键字用于进行断言检查,它通常只在调试或测试阶段启用,而不会影响生产环境的代码运行。原创 2025-03-12 10:42:10 · 934 阅读 · 0 评论 -
【Java 基础】-- 深入理解 Java 中的 java.util.Properties 及其打印方式
是 Java 提供的一个用于管理**键值对(key-value)**的类,主要用于存储配置参数,如数据库连接信息、国际化资源、应用程序设置等。它继承自,但通常只用于存储String类型的键值。原创 2025-03-06 11:39:32 · 430 阅读 · 0 评论 -
【Java 基础】-- 设计模式
Java 设计模式是提升代码质量的有力工具。掌握这些模式,可以在开发中编写出更加优雅、可维护的代码。建议通过实践不断加深理解,灵活运用设计模式解决实际问题!原创 2025-03-04 14:19:20 · 465 阅读 · 0 评论 -
【Java 基础】-- 访问控制修饰符详解
在 Java 中,访问控制修饰符(Access Modifiers)用于控制类、方法和变量的可访问性。合理使用这些修饰符可以提高代码的封装性、安全性和可维护性。privatedefault(无修饰符)、protected和public。原创 2025-03-04 11:41:46 · 462 阅读 · 0 评论 -
【Java 基础】-- Java static 关键字详解
本文通过详细的对比分析,希望能帮助你更好地理解。关键字表示“静态”,用于修饰成员变量、方法、代码块和内部类。其核心作用是让修饰的成员属于类本身,而不是类的实例。静态变量属于类本身,而不是某个具体的实例。无论创建多少个对象,静态变量在内存中都只有一份拷贝。关键字是 Java 中的一个重要概念,广泛应用于类的变量、方法、代码块和内部类。它只能访问静态成员,不能访问实例变量。的用法,不仅能优化代码结构,还能提高程序的性能。静态代码块在类加载时执行,通常用于初始化静态变量。的作用、使用场景、对比分析以及注意事项。原创 2025-02-28 16:49:35 · 374 阅读 · 0 评论 -
【Java 基础】-- Java 的三大特性:封装、继承和多态
理解并掌握这三大特性,可以帮助开发者编写出更清晰、模块化和高效的 Java 代码。如果你有任何问题或见解,欢迎留言讨论!这三大特性是 Java 代码可维护性、可扩展性和重用性的关键。本文将详细介绍这三大特性,并提供示例代码帮助理解。Java 作为一门面向对象的编程语言(OOP),其核心特性包括。,从而实现代码复用的机制。在 Java 中,封装通常通过。关键字访问父类的属性和方法。在 Java 中,继承通过。Java 的三大特性——是面向对象编程的核心。原创 2025-02-28 10:32:34 · 913 阅读 · 0 评论 -
【Java 基础】-- Java 关键字 this 和 super 详解
是 Java 面向对象编程中非常重要的两个关键字。掌握它们的用法,可以帮助开发者更好地理解类的继承关系,提高代码的可读性和维护性。在实际开发中,合理使用。是两个常见的关键字,它们分别用于表示当前对象和父类对象。理解这两个关键字的用法对于掌握 Java 面向对象编程(OOP)至关重要。,可以避免变量冲突,增强代码的灵活性,使代码更具层次感。如果你有任何问题或更好的见解,欢迎留言交流!希望这篇文章能帮助你更好地理解。的作用及其常见应用场景。在 Java 编程中,原创 2025-02-28 10:28:22 · 295 阅读 · 0 评论 -
【Maven】-- 使用 mvn spotless:apply 命令格式化代码
在 Java 开发中,代码风格统一至关重要,尤其是在团队协作中。spotless是一个流行的代码格式化工具,是 Maven 中用于自动格式化代码的命令。它可以帮助开发者统一代码风格,减少不必要的格式差异,提高代码可读性。Spotless 是一个支持多种语言的代码格式化工具,适用于 Java、Kotlin、Python、SQL 等语言。它可以与各种构建工具(如 Maven、Gradle)集成,实现自动格式化代码。代码格式化:自动调整代码格式,使其符合预定义的规则。删除多余的空格和换行。原创 2025-02-25 17:06:56 · 647 阅读 · 0 评论 -
【Java 基础】-- Java 接口中的 @Public 和 @FunctionalInterface 注解详解
在 Java 开发中,@Public和注解用于标识接口的特定用途和可访问性。@Public主要用于标识某些 API 或接口对外部用户是公开的,而则用于表明该接口是一个符合 Java 8 及以上版本的函数式接口。本篇文章将详细介绍这两个注解的作用、使用场景以及最佳实践。原创 2025-02-25 16:44:31 · 1067 阅读 · 0 评论 -
【Java 基础】-- 深入理解 Java 的 AutoCloseable 接口:资源管理的利器
是 Java 1.7 引入的一个接口,旨在帮助开发者更高效地管理资源,确保资源能够在不再使用时被正确释放。它通常与语法一起使用,以减少资源泄漏的风险。在 Java 之前的版本中,资源管理依赖于代码块,而使资源管理变得更加简洁和可靠。/**//*** @apiNote*//***/该接口只有一个方法close(),用于释放资源。方法声明允许抛出Exception,这意味着具体实现可以抛出更具体的异常,或者不抛出异常。原创 2025-02-25 16:31:42 · 864 阅读 · 0 评论 -
【Java 基础】-- Integer.valueOf 和 Integer.parseInt 区别
如果你只需要整数值,并且不涉及对象操作,Integer.parseInt是首选。如果需要使用包装类(如需要支持null或用于集合等对象操作场景),可以选择 Integer.valueOf。原创 2025-01-16 15:46:28 · 437 阅读 · 0 评论 -
【Java】-- 利用 jar 命令将配置文件添加到 jar 中
将 core-site.xml 添加到 hadoop-core-1.2.1.jar 中。使用 vi hadoop-core-1.2.1.jar。3.1、安装 jdk。3.2、添加配置文件。原创 2025-01-09 15:40:56 · 516 阅读 · 0 评论 -
【Java 基础】-- Math.ceil()、Math.floor()和 Math.round() 介绍
在 Java 中,和是用于处理浮点数的小数点的三个常用方法。原创 2024-12-26 16:46:25 · 1555 阅读 · 0 评论 -
【Java 基础】-- ArrayList 和 Linkedlist
ArrayList数据结构:基于动态数组实现。特点元素按索引存储,随机访问效率高(时间复杂度 O(1)O(1)O(1))。动态扩容机制,扩容时会重新分配更大的数组,并将旧数组中的元素复制过去。插入或删除时,若非在末尾操作,需要移动大量元素(时间复杂度最差为 O(n)O(n)O(n))。适用场景:频繁读取或操作末尾元素的场景。LinkedList数据结构:基于双向链表实现。特点每个节点存储数据及前后节点的引用。原创 2024-12-23 17:28:13 · 768 阅读 · 0 评论 -
【Java 基础】-- TreeMap 和HashMap 的内存开销情况
的内存开销有所不同,这是由于它们底层数据结构的差异导致的。的总内存开销近似为: Memory=4×table size+n×(20+4×L)的总内存开销近似为: Memory=n×32。在相同数据量的情况下,个元素,每个元素的平均链表长度为。在存储相同数量的元素时(假设。原创 2024-12-23 16:40:25 · 466 阅读 · 0 评论 -
【Java基础】-- HashMap 和 TreeMap 遍历速度
的遍历速度差异显著,这与它们的底层数据结构直接相关。在相同数据量级情况下,HashMap。原创 2024-12-23 16:37:44 · 637 阅读 · 0 评论 -
【Java】-- 常用需要转义的特殊字符
例如, ‘n’ 匹配字符 ‘n’。序列 ‘\\’ 匹配 “\”,而 ‘\(‘ 则匹配 “(”。匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。要匹配(字符,请使用\(。匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。:匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \.。要匹配 * 字符,请使用 \*。要匹配 + 字符,请使用 \+。要匹配 [,请使用 \[。要匹配 {,请使用 {。要匹配 |,请使用 |。原创 2024-12-13 16:57:48 · 213 阅读 · 0 评论 -
【Java 基础】-- Double[] d 以 , 分隔然后一行输出
现有 Java Double[] d,希望将 d 以英文逗号分隔,然后一行输出。连接,并输出为一行字符串。因此,我们需要将其转换为。是一个对象数组,无法直接通过。数组中的元素以英文逗号。原创 2024-12-03 16:01:56 · 305 阅读 · 0 评论 -
【Java 基础】-- 将 List<String[]> 转为 List<String>
【代码】【Java 基础】-- 将 List 转为 List原创 2024-11-28 18:01:42 · 644 阅读 · 0 评论 -
【Java 基础】-- 如何彻底删除本地安装的 jdk
/usr/libexec/java_home -V ,显示本地的 jdk 地址如下。原创 2024-02-06 17:01:01 · 1323 阅读 · 0 评论 -
【Java 基础】-- 实例化
创建对象的过程就叫实例化。这个过程中会在堆中开辟内存,将一些非静态的方法,变量存放在里面。在程序执行的过程中,可以创建多个对象,既多次实例化。每次实例化都会开辟一块新的内存。原创 2024-01-02 15:19:26 · 2781 阅读 · 0 评论 -
【Java 基础】-- 抽象类和接口类
- 来自维基百科。原创 2024-01-02 11:51:23 · 472 阅读 · 0 评论 -
【Java进阶】-- 设计模式
Java 设计模式是一种在Java编程中广泛使用的软件设计范例。它们提供了一种解决常见设计问题的方法,并且可以帮助开发人员编写易于维护和扩展的代码。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。三、有哪些设计模式?二、为什么要有设计模式?一、什么是设计模式?原创 2023-11-30 15:50:57 · 252 阅读 · 0 评论 -
【Java基础】-- Java包(package)命名规范
在 Java 中,包(package)是一种用于组织和管理类的命名空间的机制。包能够帮助开发者组织代码、避免命名冲突,并提供了一种逻辑上的层次结构。在命名包时,遵循一致的命名规范是很重要的,以确保代码的可读性和可维护性。原创 2023-11-29 09:57:28 · 4973 阅读 · 0 评论 -
【Java基础】-- InputStream to String 的 8 种方法
关于 Java InputStream convert to String 的处理,总结了11种主要方法(见下),请见下面的结果:1、使用 IOUtils.toString (Apache Utils)import org.apache.commons.io.IOUtils;import java.nio.charset.StandardCharsets;String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8)原创 2022-02-17 14:53:49 · 1646 阅读 · 0 评论 -
【Maven基础】-- 将第三方依赖打入 jar
1、shaded2、jar原创 2020-12-24 12:51:13 · 666 阅读 · 0 评论 -
【Java 基础】-- 为什么需要实现 Serializable 接口
1、什么是序列化 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 补充: Serializable 是一个空接口,它的目的仅是标识一个类的对象可以被序列化。 Java 提供的一种高效机制:将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后,便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象。2、什么情况下需要序列化 当你想把的内存中的对象持久化时...原创 2020-07-05 11:05:23 · 3071 阅读 · 0 评论 -
【Java基础】-- list、set 和map 的查询速度
1 背景知识list、set和map的基本介绍如下图:2、猜想在数据量级比较小的情况下(十万以内),查询速度快慢对比: map 、set 、list的速度相差不大。 在数据量比较大的情况下(百万以内),查询速度: map > set > list。3、验证某个集合中是否包含某个元素。3.1 数据量: 9.9万public class TestFindSpeed { public static void main(String[...原创 2020-06-14 10:22:57 · 9748 阅读 · 7 评论 -
【Spark SQL】-- 集成 ElasticSearch 的相关配置
1.版本Spark: 2.4.0 ES:5.6.122.配置说明https://www.elastic.co/guide/en/elasticsearch/hadoop/5.6/configuration.htmlhttps://www.elastic.co/guide/en/elasticsearch/hadoop/5.6/spark.html3.配置详情/* * Licensed to Elasticsearch under one or more contributor.原创 2020-05-10 17:57:46 · 1562 阅读 · 0 评论 -
【Java基础】-- System.exit(-1)、System.exit(0)和System.exit(1)区别
System.exit(-1)、System.exit(0)、System.exit(1)区别1、源码链接https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#exit(int)2、说明所在包:package java.lang源码方法: /** * Terminates the current...原创 2020-01-21 11:10:05 · 12144 阅读 · 0 评论 -
[Java基础]-- 常见java异常
异常总结一、空指针异常类:NullPointerException简单地说就是调用了未经初始化的对象或者是不存在的对象!二、类型强制转换异常:ClassCastException类型转换异常,检查两个类之间是否可以转换!三、数组下标越界异常:ArrayIndexOutOfBoundsException 数组下标越界,看调用的下标是不是超出了数组的范围,最好先查看一下数...原创 2015-11-30 16:06:24 · 857 阅读 · 0 评论 -
[Java 基础]-- String和int拆箱和封箱的疑问
拆箱:实例转化为数值 装箱:数值转化为实例原创 2015-11-02 20:18:28 · 957 阅读 · 0 评论 -
[Java 基础]-- final、static和abstract区别和使用
一、static 修饰属性、方法和代码块1.static修饰属性,这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有。这个属性就是全类公有。类加载的过程,类本身保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件(字节码文件)读入JVM(java虚拟机),这个过程称为类的加载过程。JVM(java虚拟机)会通过类路径(CLASSP...原创 2015-09-24 17:03:59 · 7940 阅读 · 0 评论 -
[Java基础]-- java封装、继承和多态
详解请参考:http://www.cnblogs.com/hmiinyu/archive/2012/10/25/2734739.html该链接有非常详细的解释!转载 2016-01-17 09:48:55 · 648 阅读 · 0 评论 -
[Java基础]-- Servlet 转发与重定向的区别
重定向response.sendRedirect("success.jsp");转发:request.getRequestDispatcher("success.jsp").forward(request,response); 1.转发在服务器端完成的;重定向是在客户端完成的2.转发的速度快;重定向速度慢3.转发的是同一次请求;重定向是两次不同请求4.转发不会执行转发后的代码;重定向会...转载 2015-08-12 16:51:09 · 564 阅读 · 0 评论 -
[Java基础]-- 序列化与反序列化
参考1:http://www.cnblogs.com/xdp-gacl/p/3777987.html点击打开链接参考2:http://developer.51cto.com/art/201202/317181.htm 点击打开链接转载 2016-01-30 21:40:04 · 531 阅读 · 0 评论 -
[Java基础]-- 关键字transient native synchronized final
java关键字transient native synchronized final1、transient使用请参考:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 点击打开链接 2、native使用请参考:http://www.cnblogs.com/...原创 2016-02-15 23:05:06 · 660 阅读 · 0 评论 -
[Java基础]-- 给图片添加小图片和文本信息
以下代码测试通过,可以直接使用 工具类:DrawingUtil .java如下import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.FileInpu...原创 2016-03-16 14:29:52 · 2228 阅读 · 0 评论