08 2018 档案
摘要:注 :文中所说的 Class 文件并不是特指存在于具体磁盘中的文件,而是一串二进制字节流,无论是以何种形式存在的都可以。 1. 引言 java 类被虚拟机编译之后成为一个 Class 的字节码文件,该字节码文件中包含各种描述信息,最终都需要加载到虚拟机中之后才能运行和使用。那么虚拟机是如何加载这些
阅读全文
摘要:1. 引言 垃圾回收器主要需要完成 3 件事: 哪些内存需要回收 什么时候回收 如何回收 在 "上一篇" 博客已经介绍了 java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈 3 个区域随线程而生,随线程而灭。在这几个区域内就不用考虑回收的问题,因为方法结束或线程结束时,内存自然
阅读全文
摘要:1. 概述 对于从事 C、C++ 程序开发的人员来说,在内存管理领域,他们既是拥有最高权力的「皇帝」又是从事基础工作的「劳动人民」 既拥有每个对象的「所有权」,又担负着每一个对象生命开始到终结的维护责任。 但是对于 java 程序员来说,在虚拟机自动内存管理机制的帮助下,不需要再为每一个 new 操
阅读全文
摘要:以下内容摘自 "这个教程 " ,对于异步编程和文件锁部分暂时还未接触。 1. 为什么要使用 NIO NIO 的创建目的是为了让 java 程序员可以实现高速 I/O 而无需编写自定义的本机代码。NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。 2. 核心
阅读全文
摘要:以下内容摘自《java编程思想》第十三章。 1. 不可变 String String 对象是不可变对象,String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象,以包含修改后字符串的内容,而最初的 String 对象丝毫未动。看如下的代码: 2.
阅读全文
摘要:1. 引言 在牛客网上看到这样一道题目,判断一下打印的结果 刚开始看到是,是这样来判断的:因为 Integer i1 = 128 这条语句,Integer 会启用自动装箱功能,调用 Integer.valueOf 方法返回一个 Integer 对象,因此这四个对象应该指向不同的地址,所以打印的结果是
阅读全文
摘要:作者: "dreamcatcher cx" 出处: http://www.cnblogs.com/chengxiao/ 1. 引言 ConcurrentHashMap 是 java 并发包中提供的一个线程安全且高效的 HashMap 实现,ConcurrentHashMap 在并发编程的场景中使用频
阅读全文
摘要:title: HashSet源码解析 date: 2018 08 09 16:00:26 tags: java 1. 引言 HashSet 实现了 Set 接口,底层的数据结构是一个 (实际上是一个 HashMap 实例),所以,要了解 HashSet,最主要的还是要了解 HashMap,有关 Ha
阅读全文
摘要:1. 引言 上个月去一家公司面试 java 实习生,面试官说的一句话我记得很清楚 虽然后面由于种种原因把实习给辞了,不过面试官给的建议我认为是有用的,从今天开始了解一下 JDK 中集合框架的源码,以此提升自己。 查看 JDK 版本为 1.8。另外,由于本人只是水平有限,因此博客中有问题欢迎大家指出。
阅读全文
摘要:1. 底层数据结构 在 LinkedList 中,定义了一个内部类 来保存每个节点的信息。在这个内部类中,有一个 E 类型的变量,用于存储该节点的值; 和 变量存储着前后两个节点的地址,也是这两个变量是每个前后两个节点存在联系。 在 LinkedList 这个类中,定义了 first 和 last
阅读全文
摘要:作者:纯洁的微笑 出处:www.ityouknow.com 版权所有,欢迎保留原文链接进行转载:) 1. 前言 Map 这样的 key value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要谈一谈 HashMap 存储结构以及其常用 API 的实现。 众所周知 HashMap 底
阅读全文
摘要:1. 类定义 这个从源码中可以直接看出来,HashMap 继承自 AbstractMap,而 Hashtabl 继承自 Dictionary。 2. 线程安全性 Hashtable 在很多方法定义时都会加上 关键字,说明 Hashtabl 是线程安全的,而 HashMap 并不能保证线程安全。 3.
阅读全文

浙公网安备 33010602011771号