JDK-源码阅读_java.lang包详解

    上一篇写了jdk源码阅读开端,这篇开始详细介绍一下核心包。

     java.lang包是Java开发的基础包,lang包根目录下面放的是包装类,异常类,线程类等,lang包下面还有几个包:

java.lang.annotation:放置元注解

java.lang.instrment:java.lang.instrument包的最大功能就是可以在已有的类上附加(修改)字节码来实现增强的逻辑

java.lang.invoke:提供了与Java虚拟机交互的低级原语

java.lang.management:提供提供管理接口,用于监视和管理Java虚拟机以及Java虚拟机在其上运行的操作系统

java.lang.ref:提供了与Java垃圾回收器密切相关的引用类

java.lang.reflect:这个系列使得我们可以通过反射的方式得到对象的属性或者通过反射的方式执行对象的方法

      lang包下面内容也不少,我这里着重研究几个常用的类,没涉及到的类以后有需要再补充:

(1).object 类

这个类是所有类的父类,Java面向对象编程,如果你对面向对象理解比较深,那就很好理解了,object是所有类的父类,它里面的方法,其它类也都继承了,我们常用的有hashCode(),equals(),clone(),toString().

(2).八种基本元素的包装类(Integer,Long,Short,Byte,Double,Float,Char,Boolean)

为什么需要包装类

      java并不是纯面向对象的语言,java语言是一个面向对象的语言,但是java中的基本数据类型却不是面向对象的,但是我们在实际使用中经常将基本数据类型转换成对象,便于操作,比如,集合的操作中,这时,我们就需要将基本类型数据转化成对象!

TODO 基本类型数据怎么转化成对象

(3).字符串类 (String 类和 StringBuffer ,StringBuilder)

都继承AbstractStringBuilder

从这几个方面来做比较

可变与不可变,是否线程安全

使用总结:

》如果要操作少量的数据用 : String

》单线程操作字符串缓冲区 下操作大量数据 :StringBuilder

》多线程操作字符串缓冲区 下操作大量数据:StringBuffer

(4).数学类 (Math)

这个类实现了很多数学方面的计算,调用的StrictMath类的的native方法

(5).线程类(Thread,Runnable)

(6).系统及运行类 (System 类和 Runtime 类 )

(7).错误和异常处理类 (Throwable 、 Exception 、 Error)

Throwable类是java中所有错误或者异常的超类,只有当对象是此类(或者其子类之一)的实例时,才能通过JVM或者Java的throw语句抛出。

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

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

(8).过程类 (process)

总结:以上抽着讲解了一点东西,写博客之前觉得自己能出一篇内容完整的博文,越写着越发现这块东西还是挺多的,等自己研究深入了一点再过来做些补充,内容做到尽量完善吧,大家如果读到这篇文章希望多提建议,一起做些有内容的东西出来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值