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

码王信息 码王信息     2022-08-30     797

关键词:

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包里面常用类和方法的思维导图:

技术分享

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

这里有你不知道的关于linux中权限的知识(代码片段)

  ☀️我们在平常玩电脑的时候,经常会遇到这样的情况,系统报错:您无权限访问该资源。☀️  这就是因为权限的原因而导致的问题,不仅在windows系统中会遇到这样的问题,在我们Linux系统中我们也... 查看详情

推荐10个java学习神器网站分享给大家肯定有你不知道的哦

...找大厂出来的同学同事觉得好用的网站分享给大家,如果这里有你没收藏还不知道觉得还蛮有用的网站可以给我点个赞,大家一起进步,一起学习,同时也可以分享你觉得好用实用的网站,分享快乐0.0好了,废话不多说,咋们上... 查看详情

聊聊javastring.intern背后你不知道的知识

...用该方法也会导致别的问题,本文从该方法的实现入手,深入分析了可能出现的问题和解决方案。Java的String类有个有意思的public方法:publicStringintern()返回标准表示的字符串对象。String类维护私有字符串池。调用 查看详情

推荐10个java学习神器网站分享给大家肯定有你不知道的哦

...找大厂出来的同学同事觉得好用的网站分享给大家,如果这里有你没收藏还不知道觉得还蛮有用的网站可以给我点个赞,大家一起进步,一起学习,同时也可以分享你觉得好用实用的网站,分享快乐0.0好了,废话不多说,咱们上... 查看详情

推荐10个java学习神器网站分享给大家肯定有你不知道的哦(代码片段)

...找大厂出来的同学同事觉得好用的网站分享给大家,如果这里有你没收藏还不知道觉得还蛮有用的网站可以给我点个赞,大家一起进步,一起学习,同时也可以分享你觉得好用实用的网站,分享快乐0.0好了,废话不多说,咋们上... 查看详情

关于ip,这里有你想知道的一切!

...个IP干了什么?看似简单的问题,但每个都需要投入巨大深入研究的代价。同盾科技在IP画像研发过程中,我们接触了 查看详情

对,飞哥就是做安全建设的,内网安全有你不知道的事儿

...务基础,在网络安全层面,传统防护则是侧重的是外网,这里说的外网就是通常大家 查看详情

java策略模式之总有你想不到的知识(代码片段)

文章目录策略模式概念代码示例优缺点策略模式优点策略模式缺点应用场景综合实战:多个算法切换策略模式概念策略模式(StrategyPattern)也叫政策模式,是一种比较简单的模式。它的目的是定义一组算法,... 查看详情

java单例模式之总有你想不到的知识

文章目录Java单例模式单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式单例模式确保在一个应用程序中某一个类只有一个实例,而且自行实例化并向整个系统提供... 查看详情

java责任链模式之总有你想不到的知识(代码片段)

文章目录责任链模式概念代码案例:优缺点优点缺点应用场景应用案例:多级处理责任链模式概念责任链模式(ChainofResponsibilityPattern)是一种常见的行为模式,它的目的是使多个对象都有机会处理请求,... 查看详情

java单例模式之总有你想不到的知识(代码片段)

文章目录Java单例模式概念满足条件两种形式设计要求饿汉模式懒汉方式懒汉式多线程解决方案synchronized双检查锁方式静态内部类枚举(别瞎用)Java单例模式概念单例模式是Java中最简单的设计模式之一。这种类型的设计... 查看详情

java观察者模式之总有你想不到的知识(代码片段)

文章目录观察者模式概念代码案例:优缺点优点缺点应用场景观察者模式概念观察者模式(ObserverPattern)也称发布订阅模式,它的目的是定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则... 查看详情

java和c#中的接口对比(有你不知道的东西)

1.与Java不同,C#中的接口不能包含字段(Field)。在java中,接口中可以包含字段,但是这些字段隐式地是static和final的。而C#不允许接口中有字段,编译器在编译时就会提示错误(如下代码所示)。interfaceIInterface{inta;//编译器错误... 查看详情

《你不知道的javascript》整理——作用域提升与闭包

...基础性的概念。可以更全面深入的理解JavaScript深层面的知识点。 一、函数作用域1)函数作用域就是作用域在一个“Function”里,属于这个函数的全部变量都可以在整个函数的范围内使用及复用。functionfoo(a){varb=2;function... 查看详情

常用的jmeter参数化技巧总结,总有一个你不知道

说起接口测试,相信大家在工作中用的最多的还是Jmeter。JMeter是一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协... 查看详情

你不知道的javascript(下卷)pdf

...的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。本书是其下卷,主要介绍了JavaScript入 查看详情

你不知道的javascript(上中下)全册

...的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。本书是其下卷,主要介绍了JavaScript 查看详情

jdk源码那些事儿之并发concurrenthashmap上篇(代码片段)

...ashMap,说实话,还是比较复杂的,笔者在这里也不会过多深入,源码层次上了解一些主要流程即可,清楚多线程环境下整个Map的运作过程就算是很大进步了,更细的底层部分需要时间和精力来研究,暂不深入前言jdk版本:1.8JDK7... 查看详情