一、常用包
Packages
包名 | 说明 | 列举 |
java.lang | 核心包,由Java虚拟机自动导入 | String、System、Thread |
java.util | 工具包,该包提供大量工具所在的包 | Scanner、Random、Arrays、Collections |
java.io | IO包,该包提供有关输入输出类的信息 | FilelnputStream、FlleOutputStream |
java.net | 网络包,该包提供网络编程类的信息 | ServerSocket、Socket、DatagramSocke |
二、方法
(一)Object类
1、java.lang.Object类是所有类层次结构中的根类。
2、当我们所创建的类,没有继承与任何类时,会默认继承于0bject。
(二)equals方法
1、equals方法在非空对象引用上实现等价关系:自反性、对称性、传递性、一致性、对于任何非空的参考值x,x.equals (null)应该返回false。
2、当没有在某个实体类内部重写equals方法时,使用的是父类的equals方法。
3、当在某个实体类内部重写equals方法时,使用的是重写的equals方法。
4、使用equals方法时,需要注意调用对象是谁,使用的就是谁的equals方法。
(三)hashCode方法
@0verride
public int hashcode() {
return Objects.hash(name , age );
}
(四) toString方法
如果不用toString方法会显示:包名+类名+@ + 对象的哈希码值无符号十六进制数
1、返回对象的字符串表示形式。
2、tostring方法通常也会在实体类中进行重写,目的是为了打印对象时显示对象的内容,而不是一串数字。
三、包装类
1、在某些场合(集合)中要求所有的数据内容都是对象,但java中的8种基本数据类型定义的变量并不是对象,为了满足该场合的需求就需要对变量进行对象化处理,此时借助包装类。
2、常用的包装类:
基本数据类型 | 包装类 |
byte | java.lang.Byte类 |
short | java.lang.Short类 |
int | java.lang.Integer类包装 |
long | java.lang.Long类 |
float | java.lang.Float类 |
double | java.lang.Double类 |
boolean | java.lang.Boolean类 |
char | java.lang.Character类 |
3、装箱与拆箱:
装箱就是指从int类型向Integer类型的转换。
拆箱就是指从lnteger类型向int类型的转换。
从JDK1.5以后,编译器提供自动装箱和拆箱的机制。
4、 Integer类内部的成员方法:
将调用对象的Integer数据转换成int类型数据 intValue();
将调用对象的Integer数据转换成float类型数据 floatValue();
将字符串形式的参数转换成int类型数据 Integer.parseInt();
转换成二进制 Integer.toBinaryString();
转换成十六进制 Integer.toHexString();
将参数字符串转换成Integer类型 Integer.value0f();
四、String类
1、java.lang.String类由final关键字修饰,表示该类不能被继承。
该类用于描述字符串,使用该类创建的对象可以描述java中的所有字符串字面值,如: “abc",“123"。
2、初始化方式创建byte数组:
byte[ ] bytes = {97,98,99,100,101,102,103};
String s2 = new String(bytes);//将参数字节数转换成字符串的形式
System.out.println(s2);
3、将数组中一部分内容转换成字符串:
//位置的起始点为0
String s3 = new String(bytes,offset: 2,length: 4);
System.out.println(s3);
五、字符串常量池
1、定义:
Java为了避免产生大量相同字符串对象,设计了字符串常量池,通过初始化方式创建的字符串都会存储在字符串常量池中,且字符串不能重复,以便共同使用,提高存储效率。
2、初始化方式构造字符串
(初始化方式构造字符串,会存在于字符串常量池中。)
String str01 = "Hello";
//首次存储,先先检查字符串常量池中是否有相同的对象的引用存在
//没有,则创建对象,将对象的引用存储到字符串常量池中,并将引用返回给str01
String str02 = "Hello";
//再次存储,同样先检查字符串常量池中是否有相同的对象的引用存在
//有,直接将字符串常量池中相同对象的引用返回给str02
System.out.println(str01==str02);
//true
3、使用new的方式构造对象,会在堆中开辟新的空间,有新的地址。
4、String类的成员方法:详情见JDK参考。
5、String类与StringBuilder的区别。
String类型与StringBuffer、StringBuilder类型主要区别在于String类构造对象是不可变的,因此每次对String类型进行改变内容都相当于创建了一个新的对象,而StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。
String | 值不可变,修改就创建新的对象,占用内存空间大 |
StringBuffer | 值可变,不会创建新的对象,占用内存空间小,线程安全,速度慢,多线程 |
StringBuilder | 值可变,不会创建新的对象,占用内存空间小,线程不安全,速度快,单线程 |
6、字符串常量池内存图:
六、其他类
(一)、Date类
1、构造方法:
Date () 构造方法使用当前系统日期和时间来初始化对象
Date ( long date) 构造方法根据参数指定的毫秒数来构造对象。
2、常用方法:
long getTime ( ) 用于获取当前对象距离1970年...之间的毫秒数。(unix系统生日)
void setTime ( long time) 用于根据参数指定的毫秒数来设置时间。
(二)、SimpleDateFormat类
1、基本概念:
java.text.SimpleDateFormat类用于格式化和解析日期,通俗来说就是调整日期格式。
2、常用方法:
SimpleDateFormat (String pattern) 根据参数指定的格式来构造对象。
参数格式 y年,M月,d日,H时,m分,s秒
public final String format (Date date) 用于将参数指定的日期对象按照调用对象格式转换成字符串。
public Date parse (String source) 用于将参数字符串按照调用对象格式转换成日期类型对象。
(三)、Math类
方法名 | 说明 |
static int abs (int a) | 返回参数的绝对值。 |
static double ceil (double a) | 方法可对一个数进行上舍入,返回值大于或等于给定的参数 |
static double floor(double a) | 方法可对一个数进行下舍入,返回值小于或等于给定的参数 |
static int round(doublea) | 返回一个四舍五入的值 |
static int min (int a, int b) | 返回两个参数的最小值 |
static int max (int a, int b) | 返回两个参数的最大值 |
(四)、Scanner文本扫描器
Scanner sc = new Scanner(System.in);//构造文本扫描器对象
System.out.println("请输入整数类型数据:");
int i = sc.nextInt();
System.out.println(i);
(五)、Random随机类
用来生成随机数的类
用法:导包、new对象