1、常用的包(熟悉)
1.1、包的名称和功能
java.lang包 - 该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。
如:System类、String类、...
java.util包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类等。
如:Scanner类、Random类、List集合、...
java.io包 - 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类等。
如:FileInputStream类、FileOutputStream类、...
java.net包 - 该包是Java语言中的网络包,里面提供了大量网络编程相关的类等。
如:ServerSocket类、Socket类、...
java.sql 包 - 该包是Java语言中的数据包,里面提供了大量操作数据库的类和接口等。
如:DriverManager类、Connection接口、...
... ...
Java程序员在编程时可以使用大量类库,因此Java编程时需要记的很多,
对编程能力本身要求不是特别的高。
1.2 、Object类的概述(重点)
1.2.1、 基本概念
java.lang.Object类是Java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接子类。
如果定义一个Java类时没有使用extends关键字声明其父类,则其父类为 java.lang.Object 类。
Object类定义了“对象”的基本行为, 被子类默认继承。
1.2.2、 常用的方法
方法声明 | 功能介绍 |
---|
Object() | 使用无参方式构造对象 |
boolean equals(Object obj) | 用于判断调用对象是否与参数对象相等。 该方法默认比较两个对象的地址是否相等,与 == 运算符的结果一致 若希望比较两个对象的内容,则需要重写该方法。 若该方法被重写后,则应该重写hashCode方法来保证结果的一致 性。 |
int hashCode() | 用于获取调用对象的哈希码值(内存地址的编号)。 若两个对象调用equals方法相等,则各自调用该方法的结果必须相 同 若两个调用对象equals方法不相等,则各自调用该方法的结果应该 不相同。 为了使得该方法与equals方法保持一致,需要重写该方法。 |
String toString() | 用于获取调用对象的字符串形式 该方法默认返回的字符串为:包名.类名@哈希码值的十六进制 为了返回更有意义的数据,需要重写该方法 使用print或println打印引用或字符串拼接引用都会自动调用该方法 |
Class<?> getClass() | 用于返回调用对象执行时的Class实例,反射机制使用 |
案例题目:
编程实现Student类的封装,特征:学号(id)和姓名,要求提供打印所有特征的方法。
编程实现StudentTest类,在main方法中使用有参方式构造两个Student类型的对象并打印特征。
题目扩展:
如何实现以姓名作为基准判断两个对象是否相等?以及以学号和姓名同时作为基准判断两个对象是否相等?
1.3 包装类(熟悉)
1.3.1 包装类的概念
通常情况下基本数据类型的变量不是对象,
为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,
而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装类。
如:
Person p = new Person(); int num = 10;
1.3.2 包装类的分类
![在这里插入图片描述](https://img-blog.csdnimg.cn/efda85d0ebb7468c84c93d9f5d47a8c3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3.3 Integer类的概述
(1)基本概念
java.lang.Integer类内部包装了一个int类型的变量作为成员变量,
主要用于实现对int类型的包装并 提供int类型到String类之间的转换等方法。
(2)常用的常量
![在这里插入图片描述](https://img-blog.csdnimg.cn/a354fe1589af4634832c79669a51a02a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
(3)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/b4e075b60cfa4da599c5f7a9cc460bda.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
(4)装箱和拆箱的概念
在Java5发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作;
即运算前先将 包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。
从Java5开始增加了自动拆箱和自动装箱的功能。
(5)自动装箱池
在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经装箱完毕,
当程序中使用 该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率。
1.3.4、Double类的概述
(1)基本概念
java.lang.Double类型内部包装了一个double类型的变量作为成员变量,
主要用于实现对double 类型的包装并提供double类型到String类之间的转换等方法。
(2)常用的常量
![在这里插入图片描述](https://img-blog.csdnimg.cn/5b317e4de7934f40a2b1d0f892b67a54.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
(3)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/7876f55d0c564878b6c586b135dbc773.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
扩展:
java.lang.Number类是个抽象类,是上述类的父类来描述所有类共有的成员。
1.3.5、Boolean类的概述
(1)基本概念
java.lang.Boolean类型内部包装了一个boolean类型的变量作为成员变量,
主要用于实现对 boolean类型的包装并提供boolean类型到String类之间的转换等方法。
(2)常用的常量
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c91eeca887747189e9373aa5c052785.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
(3)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/6cce271c914c48139d3e67980559f61a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3.6 Character类的概述
(1)基本概念
java.lang.Character类型内部包装了一个char类型的变量作为成员变量,
主要用于实现对char类型的包装并提供字符类别的判断和转换等方法。
(2)常用的常量
![在这里插入图片描述](https://img-blog.csdnimg.cn/f55f94dd4f024a97a7c4bb97407b88d2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
(3)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/8eac5a227bcd4d38bd69e1c417e78a85.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3.7 包装类(Wrapper)的使用总结
基本数据类型转换为对应包装类的方式 调用包装类的构造方法或静态方法即可
获取包装类对象中基本数据类型变量数值的方式 调用包装类中的xxxValue方法即可
字符串转换为基本数据类型的方式 调用包装类中的parseXxx方法即可
1.4 数学处理类(熟悉)
11.4.1 Math类的概述
(1)基本概念
java.lang.Math类主要用于提供执行数学运算的方法,如:对数,平方根。
(2)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/88ad3585b0ce479a8990bf46d46d3c45.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
1.4.2 BigDecimal类的概述
(1)基本概念
由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助
java.math.BigDecimal类型加以描述。
(2)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/ed9f7e786003484fbed380e620e847b9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)
1.4.3 BigInteger类的概念
(1)基本概念
若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。
(2)常用的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/e727d50de55e4b20929915dcb92ebdeb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5o6S6aqo546J57Gz5rGk,size_20,color_FFFFFF,t_70,g_se,x_16)