这两天在写原始类型(Primitive)的HashMap,用于提高HashMap的效率。又温故了下HashMap的源码。
想起之前有趣的代码,所以借此拿来跟大家分享下。
代码如下:
public static void main(String[] args)
{
Map m = new HashMap();
Object o1 = new Integer(1);
Object o2 = new Long(1);
m.put(o1, 1);
m.put(o2, 2);
System.out.println(m.get(1));
System.out.println(m.get(Long.valueOf(1)));
System.out.println(o1.hashCode());
System.out.println(o2.hashCode());
System.out.println(m.toString());
}
在看我Debug时的图片:
断点处
debug查看内容
好了,想问大家不要去写代码,告诉我程序最后的输出是多少?
答案看附件图片4
至于为什么,请看源码:
自己看,我不多说什么,欢迎留言讨论。
- 大小: 8 KB
- 大小: 12 KB
- 大小: 2.6 KB
- 大小: 8.9 KB
- 大小: 4.4 KB
分享到:
相关推荐
"JAVA-PROGRAMS"这个标题暗示了我们即将讨论的是与Java编程相关的知识,可能包括源代码、项目结构、编程概念或者特定的Java应用程序。描述中的"Java程序"进一步确认了这一点,意味着我们将深入探讨如何使用Java编写...
标签也进一步确认了这一点,同样显示为"Java code Java code"。下面我们将详细讨论Java编程语言的关键知识点,并可能在这些文件中找到的相应内容。 1. **Java基础知识**:Java是一种面向对象的、跨平台的编程语言,...
10. **Java集合框架中的`HashMap`**:虽然这里我们讨论的是自定义的链地址法实现,但Java标准库中的`HashMap`类也是采用链地址法处理哈希冲突的。`HashMap`提供了内置的高效哈希表实现,可以作为参考或与自定义实现...
12. **集合框架**:Java的`java.util`包提供了丰富的集合框架,如ArrayList、LinkedList、HashMap等,用于存储和操作对象。 了解并熟练掌握这些知识点是编写高效、可维护的Java程序的关键。通过学习和实践,你可以...
标签“代码”进一步确认了这一点,意味着我们将讨论与Java编程相关的知识点。 1. **Java基础知识**: - 类与对象:Java是面向对象的编程语言,所有程序都是通过类和对象来构建的。 - 变量与数据类型:Java支持...
描述 "Java Alguns projetos em Java" 简单地确认了这一点,指出包含了一些Java项目的具体内容。 标签 "Java" 明确了这个压缩包的主题,意味着所有内容都与Java编程语言相关。我们可以从这个标签中推断,接下来的...
深入一点,笔记可能还会讲解异常处理、集合框架(ArrayList、LinkedList、HashSet、HashMap等)以及接口与抽象类的区别。 在Java I/O流方面,笔记可能涵盖输入输出流的基本使用、文件操作、对象序列化和反序列化,...
2. **集合框架**:Java的集合框架(如ArrayList、LinkedList、HashMap等)在存储和操作图书数据时起到关键作用。例如,可以使用HashMap存储书籍信息,键为书号,值为书籍对象。 3. **多线程**:如果系统需要处理...
再深入一点,我们讨论Java的I/O流系统,它是进行输入输出操作的关键。Java的流分为字节流和字符流,又可分为输入流和输出流,还有缓冲流、转换流、对象流等,满足各种数据传输需求。 对于并发编程,Java提供了线程...
描述中提到的链接提供了更深入的资源,尽管在这里我们无法直接访问,但我们可以根据常见Java面试题来构建一个广泛的讨论框架。 首先,Java基础是任何面试的起点,包括但不限于变量、数据类型、运算符、流程控制语句...
这一点对于理解Java中如何处理空值非常重要。 ### 4. String 与 StringBuffer 的区别 文档还提到了`String`和`StringBuffer`的区别。`String`是不可变的对象,一旦创建就不能更改;而`StringBuffer`则支持在原有...
首先,我们要讨论Java编程基础。Java是一种面向对象的编程语言,它以其跨平台性、安全性和稳定性而著名。在这个项目中,你需要熟悉Java的基本语法,包括类、对象、变量、方法以及控制流程语句(如if条件判断、for...
此外,还可以讨论如何使用Java集合框架(如ArrayList、LinkedList、HashMap等)进行数据管理,以及如何利用IDE(如Eclipse、IntelliJ IDEA)进行调试和代码优化。 至于提供的压缩包"Teaching",由于没有具体文件...
"Java" 标签进一步确认了这一点。描述中的 "本次设计中使用的单片机是STC89C52" 提到的是微控制器应用,但通常Java不直接用于这类硬件编程,这可能意味着讨论的是Java在嵌入式系统或者通过某种方式(如Java ME)与...
2. **Java集合框架**:Adlister可能涉及到大量的数据存储和操作,因此理解ArrayList、LinkedList、HashSet、HashMap等集合类以及它们的使用场景至关重要。 3. **Java I/O与网络编程**:为了读写数据(如广告信息)...
对于Java编程来说,我们可以讨论以下几个关键知识点: 1. **基础语法**:Java是一种面向对象的语言,理解类、对象、封装、继承、多态等概念是必要的。同时,需要掌握变量、数据类型、运算符、流程控制语句等基本...
4. **集合框架**:List、Set和Map接口以及ArrayList、LinkedList、HashSet、HashMap等实现类是Java编程中常用的数据结构,理解它们的特性和用法至关重要。 5. **IO流**:输入/输出流在处理文件读写、网络通信等方面...
根据给定文件的信息,我们可以提炼出一系列针对2024年阿里、京东、蚂蚁等大厂面试的关键知识点。...以上仅为部分内容摘要,每一点都可以展开深入讨论。希望这些知识点能够帮助求职者更好地准备即将到来的大厂面试。
在IT行业中,Java是一种广泛应用的高级编程语言,以其“一次编写,到处运行”的特性而闻名。...不过,从上述讨论可以看出,Brian-Eric在Java编程方面具备相当的专业技能,他的项目可能涉及了Java语言的多个核心特性。
HashMap是Java中常用的数据结构,用于存储键值对。它基于哈希表实现,提供O(1)的平均查找时间。深入理解HashMap的内部工作,包括哈希函数、链表和红黑树的转换,对于提高代码效率有帮助。 5. **线程池和车间模式**...