SystemDictionary正如它所暗示的那样,它是用来保存系统信息的一个字典,其实现基于Hash表。
它保存了系统已经加载了class信息。
下面是SystemDictionary保存class信息的变量。
static Dictionary* _dictionary;
static PlaceholderTable* _placeholders;
其中 _dictionary是存放已经加载的class的Hash表。
_placeholders是存放正在加载的class的Hash表。
同时对于最常用的系统class,SystemDictionary又专门定义了变量,起到了cache的作用,
避免了每次使用都去_dictionary中查询。
例如: static klassOop _object_klass;
static klassOop _string_klass; 等等
这些变量均在SystemDictionary::initialize中被初始化。
JNI_CreateJavaVM
|
|-->Threads::create_vm
|
|-->init_globals
|
|-->universe2_init
|
|-->Universe::genesis
|
|-->SystemDictionary::initialize
|
|-->SystemDictionary::initialize_preloaded_classes
其中SystemDictionary::initialize_preloaded_classes就是初始化SystemDictionary中最常用的系统class变量。
分享到:
相关推荐
1. 类加载器:在`hotspot/src/share/vm/classfile/systemDictionary.cpp`等文件中,可以看到类加载器的工作流程,包括双亲委派模型和自定义类加载器的实现。 2. 垃圾收集器:OpenJDK 8提供了多种垃圾收集器,如...
`Dictionary`类在系统命名空间`System.Collections.Generic`下,是用于存储唯一键及其关联值的对象。它的基本操作包括: 1. **初始化**:创建一个空的`Dictionary, TValue>`实例,或者根据指定的容量、比较器和初始...
词典添加管理系统(DAMS),开源翻译词典的集合。 这些文件与开放翻译引擎(OTE)兼容。 有关更多信息,请参见http://sourceforge.net/projects/ote/
System.Collections.Generic(程序集:mscorlib) Dictionary的描述 1、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成 2、任何键都必须是唯一的 3、键不能为空引用null...
`Dictionary, TValue>`是C#中非常重要的集合类之一,它属于.NET Framework的一部分,位于`System.Collections.Generic`命名空间内。此集合类提供了键值对的存储机制,其中键是唯一的,而对应的值则可以重复。本文将...
在.NET框架中,`System.Collections`命名空间提供了多种数据结构,其中包括`Dictionary, TValue>`,它是键值对的高效存储容器。然而,原生的`Dictionary, TValue>`在多线程环境下直接并发访问可能存在线程安全性问题...
在C#中,`System.Collections.Generic.Dictionary, TValue>`类提供了`Dictionary`的实现。创建一个`Dictionary`实例时,我们需要指定键和值的类型。例如,创建一个存储字符串键和整数值的字典可以这样写: ```...
System命名空间中的泛型类,如List和Dictionary, TValue>,提供了类型安全的数据容器。源码分析可以揭示泛型如何实现类型约束和编译时的类型检查。 七、线程安全与并发 .NET框架中的线程安全主要通过System....
SteapxImprovement Point for status of project, meeting, etc.When application stats, will load data of system dictionary and initialize global general-purpose data container(SystemDataHolder),then ...
本篇将详细讲解标题和描述中提到的`Dictionary`和`DataTable`的序列化与反序列化方法。 首先,让我们了解`Dictionary, TValue>`。`Dictionary`是.NET中的一个内置类,它实现了键值对的存储,通常用于创建关联数据...
- **BC430-ABAP Dictionary SAP AG R/3 System Release: 4.6A Version: January 2000 Material number: 50033691 SAP AG 2001**:这一段文字提供了更多关于文档版本的细节。它指出该文档适用于R/3系统,R/3是SAP企业...
`Dictionary, TValue>` 是C#中一种非常重要的集合类型,属于.NET Framework的一部分,位于`System.Collections.Generic`命名空间内。它允许我们存储键值对(Key-Value Pair),其中键是唯一的,并且可以通过键快速...
`Dictionary`类是.NET框架中System.Collections.Generic命名空间的一部分,它实现了`IDictionary, TValue>`接口,为开发者提供了存储和操作关联数据的强大工具。 `Dictionary, TValue>`的工作原理基于哈希表,这...
C#自定义可序列化的Dictionary类型 在C#中,Dictionary类型是非常常用的数据结构,但是.NET 2.0中的泛型Dictionary却不支持XML序列化。这是一种非常不便的限制,因为在实际应用中,我们经常需要将数据序列化到XML...
在C#编程中,List和Dictionary, TValue>是两种非常常用的数据结构,它们在处理各种数据操作时有着广泛的应用。在这个“c#list/dictionary实现平均成绩”的场景中,我们将探讨如何利用这两种数据结构来计算一组成绩的...
catch (System.Exception e) { Console.WriteLine("Error: {0}", e.Message); } } 用法 2:Dictionary 的 Value 为一个数组 在某些情况下,Dictionary 的值可能是一个数组。在这种情况下,我们可以使用泛型 ...
Dictionary, SortedDictionary, SortedList 是 .NET Framework 中三个支持泛型和关键字查找的类,它们都属于 System.Collections.Generic 命名空间。这些类在名字和功能上非常相似,以至于实际运用的时候我们会经常...
`List<T>`是.NET框架中`System.Collections.Generic`命名空间下的一个类,它实现了`IList<T>`接口,提供了一个动态数组的功能。这意味着你可以像操作数组一样操作它,同时还能方便地添加、删除和查找元素。例如,你...
System.Collections命名空间下的ArrayList、HashTable、Dictionary等类是.NET中常见的集合类型。通过源码,我们可以看到这些集合是如何实现动态扩展、查找和存储元素的。同时,Generic命名空间中的泛型集合如List、...
- `System.Collections`:包含泛型和非泛型集合类,包括 `Dictionary, TValue>`。 - `System.IO`:用于文件和流的操作。 ##### 2. 文件操作 ```csharp FileStream fs = new FileStream("c:\\message.txt", File...