跳到主要内容
原创 JDK 源码

21、JDK 源码:Unsafe

接下来再看一个JDK中比较特殊的类Unsafe。一、概述Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。Unsafe类,全限定名是sun.misc.U
阅读全文
原创 JDK 源码

20、JDK 源码:Thread

一、概述此线程指的是执行程序中的线程。Java虚拟机允许应用程序同时执行多个执行线程。每个线程都有优先权。具有较高优先级的线程优先于优先级较低的线程执行。每个线程可能也可能不会被标记为守护程序。当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的
阅读全文
原创 JDK 源码

19、JDK 源码:Package

一、概述Package对象包含有关Java包的实现和规范的版本信息。该版本信息由加载该类的ClassLoader实例检索并提供。通常,它存储在与类分发的清单中。构成包的一组类可以实现特定的规范。在每个ClassLoader实例中,来自同一个java包的所有类都具有相同的Package对象。
阅读全文
原创 JDK 源码

18、JDK 源码:System

一、概述System是用的非常多的一个final类。它不能被实例化。System类提供了标准的输入输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库的方法;以及高效的拷贝数组中一部分元素的方法。二、类定义和属性publicfinalclassSystem三个流:publ
阅读全文
原创 JDK 源码

17、JDK 源码:Compiler

一、概述Compiler这个类被用于支持Java到本地代码编译器和相关服务。在设计上,这个类啥也不做,他充当JIT编译器实现的占位符。放JVM虚拟机首次启动时,他确定系统属性java.compiler是否存在(系统属性可以通过System类的getProperty(String)和getProp
阅读全文
原创 JDK 源码

16、JDK 源码:ClassLoader

一、概述![][nbsp]这个类的作用就是根据一个指定的类的全限定名,找到对应的Class字节码文件,然后加载它转化成一个java.lang.Class类的一个实例。二、类加载器介绍启动类加载器(BootstrapClassLoader):这个类加载器负责将\lib目录下的类库加载到虚
阅读全文
原创 JDK 源码

15、JDK 源码:Class

一、概述Class的实例代表着正在运行的Java应用程序的类和接口。枚举是一种类,而直接是一种接口。每一个数组也属于一个类,这个类b被反射为具有相同元素类型和维数的所有数组共享的类对象。八大基本树类型和void关键字也都有属于自己的类对象。Class没有public的构造器,由JVM虚拟机调用类
阅读全文
原创 JDK 源码

14、JDK 源码:Error、Exception

一、概述前面讲了Throwable,而Error和Exception都是Throwable的子类,Error代表出现的是严重错误,应用程序不应该用trycatch去捕获并且进行处理。绝大多数的Error都是非正常的,就根本不该出现的。Exception则设计被用来交由程序去处理。二、方法和属性
阅读全文
原创 JDK 源码

13、JDK 源码:Throwable

一、概述Throwable:被用来表示任何可以作为异常被抛出的类。有两个重要的子类Exception和Eerror。二者都是Java异常处理的重要子类,并且二者也包含许多重要的子类。通常用于指示发生了异常情况。类定义:publicclassThrowableimplementsSeria
阅读全文
原创 JDK 源码

12、JDK 源码:Enum

一、概述Enum是所有Jav中枚举类的基类。详细的介绍在Java语言规范中有说明。值得注意的是,java.util.EnumSet和java.util.EnumMap是Enum的两个高效实现,分别用于set和map。二、代码解析类定义:是个抽象类publicabstractclass
阅读全文