Java的基础知识有不少,可是我认为最基础的知识应该要属jdk的基础代码,jdk的基础代码里面,有分了不少基础模块,其中又属jdk包下面的lang包最为基础。java
咱们下面将总结和分析一下lang包下面最为基础和经常使用的几个部分。编程
1:经常使用的对象类型包数组
(1)其中最基础的类为Object,全部的对象都是继承于这个类的。咱们知道全部的类若是没有显示的声明继承于哪一个类的话,默认都会继承于Object类,这个类里面也有不少咱们经常使用的方法的默认实现。编程语言
(2)而后就是字符串类了,咱们经常使用的有String、StringBuilder和StringBuffer三个和字符串相关的类,在jdk1.8里面String类还增长了join静态方法用来结合多个字符串函数
(3)最好还有8种基本元素的包装类,里面对于每种不一样类型的基本进行了包装,并提供了相应的操做方法。工具
2: 经常使用的异常类型包:学习
(1)异常所有继承于Throwable类,Throwable类是全部异常的基础类。ui
(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一块儿进行学习和讨论。