`
码王信息
  • 浏览: 5358 次
文章分类
社区版块
存档分类
最新评论

深入JDK源码,这里总有你不知道的知识点!

阅读更多
Java的基础知识有很多,但是我认为最基础的知识应该要属jdk的基础代码,jdk的基础代码里面,有分了很多基础模块,其中又属jdk包下面的lang包最为基础。

我们下面将总结和分析一下lang包下面最为基础和常用的几个部分。

1:常用的对象类型包

(1)其中最基础的类为Object,所有的对象都是继承于这个类的。我们知道所有的类如果没有显示的声明继承于哪个类的话,默认都会继承于Object类,这个类里面也有很多我们常用的方法的默认实现。

(2)然后就是字符串类了,我们常用的有String、StringBuilder和StringBuffer三个和字符串相关的类,在jdk1.8里面String类还增加了join静态方法用来结合多个字符串

(3)最好还有8种基本元素的包装类,里面对于每种不同类型的基本进行了包装,并提供了相应的操作方法。

2: 常用的异常类型包:

(1)异常全部继承于Throwable类,Throwable类是所有异常的基础类。

(2)Error类型是Throwable类的子类,这种异常表示的是一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等

(3)Exception类型是Throwable类的子类,这种异常表示程序可以处理、可以恢复的异常,对于这种异常应该在代码中进行处理,不应该被程序最终抛出。 Exception类又被分为两类,一类是需要检查的异常,是被强制要在代码中进行处理,另一类是运行时异常,是在代码运行的时候出错时出现。

3: 常用的接口包

(1)Comparable接口表示用于可以比较大小的类

(2)Runnable接口表示这个类是要被作为一个线程执行

(3)AutoCloseable接口表示类拥有资源,在销毁类的时候需要自动销毁拥有的资源。

(4)Iterable接口表示这个类可以执行foreach循环操作

4: 系统包

(1)System类,他里面包含了几个可以用于获得系统相关的有用方法。最常见的有获得系统时间,获得系统属性,获得系统0/1/2文件描述符,利用系统函数拷贝数组内容。

(2)Runtime类,他里面可以获得应用运行时的一些状态(主要包括使用的内存和cpu个数)和在应用运行时执行一些操作(程序退出、执行gc、设置退出时的钩子函数)。

(3)Thread类,他里面包括了线程相关的操作,主要有线程属性的设置(优先级、名称、类别)和改变线程运行状态(启动、睡眠、中断等)。

(4)ThreadLocal类主要是保存以线程级别的运行状态的类。

5: 注解包

这个系列的提供了可以用于自定义注解方法和一些常用的注解,其中最为重要的就是FunctionalInterface注解,一个接口如果使用了这个注解,则表示了具有lambda特性的接口。

6: 反射包

这个系列使得我们可以通过反射的方式得到对象的属性或者通过反射的方式执行对象的方法。主要常用的有Field、Method、Construct、Paramter、Array、Proxy几个类。

7: 其他包

其他类包括了一些不是太常用,但是在某些场景下特别有用的工具。

(1)Ref包提供了与 Java 垃圾回收器密切相关的引用类。这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Java 垃圾回收器对它们所指向的对象进行回收。其好处就在于使者可以保持对使用对象的引用,同时 JVM 依然可以在内存不够用的时候对使用对象进行回收。

(2)Management包提供提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。最常用的有MemoryMXBean、MemoryPoolMXBean、RuntimeMXBean、ThreadMXBean四个获得不同类型数据的MXBean。

(3)Instrument包提供了提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务,利用它提供的Instrumentation类和ClassFileTrasformation类,利用这两个类加上-javaagent命令,可以在程序运行之前,完成对字节码的修改,利用这个方法可以有效的对程序进行监控。

最后附上一个关于jdk里面lang包里面常用类和方法的思维导图:
[img]https://pic2.zhimg.com/v2-fa3863847a5b5534ddd799e96f27857d_r.png[img]

深入JDK源码,这里总有你不知道的知识点!

如果你觉得我们总结的知识可以帮到你,可以到加群: 632109190一起进行学习和讨论。
分享到:
评论

相关推荐

    jdk源码 jdk源码

    Java Development Kit (JDK) 源码是学习和理解Java平台核心机制的关键资源。...通过深入阅读JDK源码,开发者不仅可以增强对Java语言特性的理解,还能提高解决实际问题的能力,这对于成为一名优秀的Java开发者至关重要。

    深入浅出JDK源码

    通过深入研究JDK源码,开发者可以提升对Java语言的掌握程度,从而更好地优化代码、解决复杂问题。 本书可能涵盖了以下几个主要的知识点: 1. **Java虚拟机(JVM)**:JVM是Java程序的执行引擎,负责解释字节码并将...

    jdk源码-补充缺少sun包下的源码

    在Java开发过程中,理解JDK源码是提升技术深度的关键步骤。JDK1.7版本的源码提供了对Java语言核心库的深入洞察,而sun包下的源码更是其中的重要组成部分,因为它们包含了Java的核心实现和一些私有API。然而,标准的...

    JDK11源码 jdk-11.0.4 src源码

    本文将基于提供的jdk-11.0.4-src源码,对其中的关键知识点进行深入探讨。 1. **模块化系统(Project Jigsaw)**:JDK11引入了Java平台模块系统(JPMS),使得代码组织更加清晰,提高了可维护性和安全性。源码中的`...

    jdk1.8 sun源码

    源码分析是一个复杂的过程,通过阅读源码,开发者可以学习到以下关键知识点: 1. **Java虚拟机(JVM)的工作机制**:Sun JDK中的源码揭示了JVM如何加载类、执行字节码、垃圾收集等关键过程。例如,`java.lang....

    JDK源码选读

    这里我们将围绕JDK源码中的关键知识点进行深入探讨。 首先,JDK是Java Development Kit的缩写,它是开发Java应用程序的基础,包含了Java运行环境、编译器、调试工具和其他实用工具。源码分析是提高Java程序员技能的...

    JDK7底层C++源码及hotspot虚拟机源码

    总的来说,深入研究JDK7的C++源码和HotSpot虚拟机源码,不仅能够提高对Java语言的理解,还能让我们掌握JVM优化的技巧,从而在实际项目中编写出更高效、更稳定的代码。对于任何希望提升自身技术能力的Java开发者来说...

    jdk源码的另一部分

    在深入探讨JDK源码之前,我们先理解一下它的核心概念。JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的工具集合,其中包含了Java编译器、Java运行时环境(JRE)、Java类库以及各种实用...

    jdk8源码.zip

    在JDK 8中,以下是一些关键的知识点: 1. **Lambda表达式**:这是JDK 8最显著的特性之一,它引入了一种新的语法结构,用于表示匿名函数。Lambda允许将函数作为一个值传递,简化了对集合的操作,尤其是在使用Stream ...

    jdk1.8源码下载

    标题“jdk1.8源码下载”意味着我们可以获取到JDK 1.8的源代码,这对于深入学习Java语言和提升编程技能至关重要。源代码是以.java文件形式存在的,这是一种文本文件,包含了Java程序的完整结构和逻辑。IDEA(IntelliJ...

    openjdk8u60+jvm jdk源码+jvm源码

    在 OpenJDK 8u60 中,我们可以找到以下关键知识点: 1. **类加载器(Class Loaders)**:Java 类的加载是由不同的类加载器完成的,包括引导类加载器、扩展类加载器和应用程序类加载器。这些加载器协同工作,确保了...

    jdk1.8源码包含sun

    在Java开发领域,对JDK源码的深入理解是提升技术能力的关键步骤。JDK1.8作为广泛使用的版本,其源码包含了丰富的实现细节,特别是"sun"包,它承载了许多核心功能和内部实现。本文将围绕"sun"包,结合JDK1.8的源代码...

    jdk1.6源码Ecplise添加

    以下将详细介绍如何在Eclipse这款广泛使用的Java集成开发环境中添加JDK1.6的源码,并探讨一些相关的编程知识点。 首先,要添加JDK1.6源码到Eclipse,你需要确保已安装了JDK1.6版本,这是Eclipse能识别并加载源码的...

    jdk1.8源码+中文注释(chm格式)

    以上只是JDK1.8源码中部分重要知识点的概述,通过阅读源码和注释,开发者可以深入了解这些特性的实现细节,以及Java语言和JVM的底层机制。这份资源不仅对初学者是宝贵的资料,对经验丰富的开发者来说也是深入研究...

    java_jdk8源码

    对于任何希望提升Java技术水平,特别是对性能优化、并发编程或者想要成为一名更高级的Java开发者的人来说,研究JDK源码是不可或缺的一环。在这里,我们将探讨一些关键的知识点,帮助你更好地理解和利用这份宝贵的...

    jdk1.8源码

    本篇文章将围绕JDK1.8的源码,深入探讨其核心知识点。 1. **Lambda表达式**:JDK1.8最重要的特性之一,它简化了函数式编程,使得代码更加简洁。Lambda表达式可以被用来替代那些只有一行实现的匿名内部类,特别是在...

    java jdk 实例宝典源码

    下面,我们将详细探讨Java JDK源码中的关键知识点。 1. **基础类库**: - **Object类**:所有Java类的根类,包含了如`equals()`、`hashCode()`、`toString()`等基础方法。 - **String类**:Java中不可变的字符...

    JDK1.7源码

    JDK1.7源码是Java开发者深入了解Java平台工作原理的重要资源,它包含了Java开发工具集的核心组件和类库。这个源码包主要分为几个关键的包:com、java、javax、launcher、org、sun以及sunw。这些包分别对应了不同的...

    JDK动态代理源码

    下面将深入解析JDK动态代理的核心知识点及其在实际中的应用。 1. **Java.lang.reflect.Proxy**:这是JDK动态代理的关键类,它提供了创建动态代理对象的工厂方法`newProxyInstance()`。这个方法接收三个参数:`...

    jdk1.8 rt.jar 源码

    在`rt.jar`源码中,我们可以找到以下关键知识点: 1. **基础类库**:`java.lang`包是所有Java程序的基础,包含如`Object`、`String`、`Class`等核心类。通过源码,你可以看到它们的构造函数、方法实现,了解对象...

Global site tag (gtag.js) - Google Analytics