Java基础
文章平均质量分 71
人不走空
愿在csdn的海洋中,与诸位共创诗意般的程序世界
展开
-
Java泛型:通俗易懂地解析泛型
Java泛型是Java 5引入的一个新特性,其主要目的是提供更灵活、类型安全的代码。在Java泛型出现之前,我们通常使用Object作为参数类型,这使得代码不够安全和高效。因为Object可以接受任何类型的参数,这可能会导致运行时类型转换错误。而泛型允许我们指定一个类型参数,使代码更加类型安全。Java的泛型系统是一种强大的工具,可以帮助我们编写更安全、更灵活、更可重用的代码。通过使用泛型,我们可以减少类型转换、提高代码的可读性和可维护性。原创 2023-12-18 00:02:00 · 920 阅读 · 0 评论 -
深入剖析HashMap:理解Hash、底层实现与扩容机制
本文详细介绍了HashMap的底层实现原理,包括哈希技术、底层数据结构和扩容机制。HashMap是一种高效的数据结构,它使用哈希表实现键值对的存储和检索操作。通过深入了解HashMap的工作原理,我们可以更好地理解和使用它来解决实际问题。在实际开发中,我们需要根据具体情况选择合适的加载因子和初始容量来创建HashMap实例以提高性能和效率。原创 2023-12-15 00:01:33 · 547 阅读 · 0 评论 -
Hashtable和HashMap:差异,数据结构概述,以及JDK的影响
在计算机科学中,数据结构是一种组织和存储数据的方式,以便可以有效地进行访问和更新。在Java中,我们使用各种数据结构来处理和操作数据。其中,哈希表是一种非常常用的数据结构。哈希表(HashTable)是一种使用哈希函数将键映射到桶的数据结构。每个桶包含一个或多个键值对。在Java中,我们使用Hashtable或HashMap来实现哈希表。在选择使用Hashtable还是HashMap时,需要根据具体的应用场景和需求进行权衡。原创 2023-12-14 00:19:47 · 983 阅读 · 0 评论 -
Java的特性
Java是一种面向对象的编程语言。在Java中,可以很方便地创建和管理多个线程,并且支持线程之间的同步和通信机制,避免了多线程并发访问共享资源的问题。Java程序可以在不同的操作系统、硬件平台上运行,只要安装了Java运行环境(JRE)或Java虚拟机(JVM),就可以运行Java程序。Java具有简单易学、面向对象、可移植性、安全性和多线程等独特特性,使得它成为一种高效、可靠、跨平台的编程语言。Java是一种广泛使用的编程语言,它具有许多独特的特性,包括简单易学、面向对象、可移植性、安全性、多线程等。原创 2023-11-28 23:03:22 · 617 阅读 · 0 评论 -
HashMap的详细解读
如果哈希表已经满了,那么会进行扩容,即创建一个新的哈希表,大小是原来的两倍,并将原来哈希表中的所有元素重新插入到新的哈希表中。因此,在设计HashMap时,需要考虑哈希表的大小和加载因子,以平衡性能和内存使用。其中,put和get方法是HashMap中最常用的方法,它们的实现涉及到哈希表的查找和插入操作。其中,HashMap的核心是它的哈希表(由table数组实现),每个元素都是一个Node对象,其中包含键值对。然后,在该桶中查找链表或红黑树,直到找到对应的元素或到达链表的尾部或红黑树的叶节点。原创 2023-11-21 09:08:15 · 322 阅读 · 0 评论 -
静态方法 普通方法 和 构造方法三者的区别
构造方法的作用是为对象分配内存并初始化其成员变量。静态方法(Static Method):静态方法属于类级别的方法,不依赖于对象的实例化,可以直接通过类名调用。在静态方法中不能使用 this 关键字引用当前对象,也不能访问非静态成员(非静态变量和非静态方法),只能访问静态成员(静态变量和静态方法)。普通方法(Instance Method):普通方法属于对象级别的方法,在使用前需要先创建类的实例对象,通过对象的引用调用方法。普通方法通常用于操作和访问对象的状态,进行实例变量的操作和与其他对象的交互。原创 2023-07-30 23:48:53 · 294 阅读 · 1 评论 -
为什么重写 equals() 时必须重写 hashCode() 方法?(简单易理解)
如果重写了equals方法,相等的元素内存地址不一定相等。所以要重写hashCode()。因此要重写hashCode保证:如果equals判断是相等的,那hashCode值也要相等。所以在涉及到hashcode的容器中(比如HashSet),判断自己是否持有该对象时,会先检查hashCode是否相等,如果hashCode不相等,就会直接认为不相等,并存入容器中,不会再调用equals进行比较。但是hashCode()会出现哈希冲突,当发现哈希冲突时,便需要equals方法进行判断两者是否相等。原创 2023-11-16 18:45:13 · 258 阅读 · 1 评论 -
Java中 ==与equals的区别
而euqal,具体看各个类重写equals方法之后的比较逻辑,比如String类,虽然是引用类型,但是String类中重写了equals方法,方法内部比较的是字符串中的各个字符是否全部相等。==它在java中如果比较的是基本类型,它比较的是值。如果是引用类型它比较的是地址。原创 2023-11-16 18:20:30 · 71 阅读 · 0 评论 -
JDK,JRE,JVM之间的区别和联系
我们写Java代码,用txt就可以写,但是写出来的Java代码,想要运行,需要先编译成字节码,那就需要编译器,而JDK中就包含了编译器javac,编译之后的字节码,想要运行,就需要一个可以执行字节码的程序,这个程序就是JVM (Java虚拟机),专门用来执行Java字节码的。另外,JVM在执行Java字节码时,需要把字节码解释为机器指令,而不同操作系统的机器指令是有可能不一样的,所以就导致不同操作系统上的JM是不一样的,所以我们在安装JDK时需要选择操作系统。JDK,JRE,JVM之间的区别和联系。原创 2023-11-16 08:48:39 · 471 阅读 · 0 评论 -
[Java·基础] jdk8的优点
Java 8 是 Java 编程语言的一个重要版本,引入了许多新的语言特性和库。** Nashorn JavaScript 引擎:** 取代了原有的 Rhino 引擎,提供更好的性能和支持。这对于函数式编程和使用集合框架非常有用。引入了 Stream API,提供了一种处理集合数据的流畅方式。接口可以包含具有默认实现的方法,这样可以在不破坏现有实现的情况下向接口添加新的方法。引入了新的并行数组操作,提供了一种更容易并行处理数组的方式。包,提供了更好的日期和时间处理方式,解决了旧的。原创 2023-11-15 09:27:11 · 115 阅读 · 0 评论 -
Java反射:深入了解动态类操作
Java反射是一项重要的技术,它允许在运行时检查、访问和操作类、对象、字段和方法的信息。这篇博客将带你深入了解Java反射的概念和用途。我们将介绍如何获取类的Class对象,实例化对象,获取和修改字段,调用方法,访问和修改私有成员,以及如何使用反射实现动态代理。无论你是Java初学者还是有经验的开发人员,这篇博客都将为你提供有价值的知识,帮助你更好地理解和利用Java反射的强大功能。让我们一起探索Java反射的奥秘,学习如何在运行时以一种灵活而强大的方式与Java类互动。原创 2023-11-06 19:12:24 · 137 阅读 · 0 评论 -
Java中Integer.MAX_VALUE的含义
数据类型可以表示的最大整数值为 2,147,483,647,或者说 2^31 - 1。这个常量在处理整数数据时非常有用,特别是在需要检查整数是否溢出的情况下,的整数值,会导致整数溢出,通常会导致出现负数或其他意外结果。例如,你可以编写以下代码来检查整数是否大于或等于。是 Java 中的一个常量,它表示整数数据类型。因此,在编程中,通常要确保处理的整数值不会超过。这意味着在一个标准的32位Java虚拟机中,类型的最小可表示值,为。如果你尝试存储一个大于。常量,它表示 int。原创 2023-11-05 10:23:07 · 3176 阅读 · 1 评论