点击上方“罗晓胜”,马上关注,您的支持对我帮助很大
/ 前言 /
什么是工具类?
都看到这了,这种低级的问题还问的出来。
一个项目不可能没有工具类,Java的核心库提供了大量的现成的类供我们使用。
/ 正文 /
工具类
要点
-
Java API
-
理解API的概念
-
-
Object 类
-
包装类
-
String类与StringBuffer类
-
String类的常用方法
-
StringBuffer类的常用方法
-
StringBuilder类的常用方法
-
String与StringBuffer的区别
-
StringBuffer与StringBuilder的区别
-
-
Math 类
-
日期类型
Java API简介
-
API的概念
-
API (Application Programming Interface) 应用程序接口
-
Java中的API,就是JDK提供的各种功能的Java类
-
JDK帮助文档
-
-
API的概念
-
API (Application Programming Interface) 应用程序接口
-
Java中的API,就是JDK提供的各种功能的Java类
-
JDK帮助文档
-
Object介绍和方法
-
Object类
-
Object类是所有类的超类, Object是Java语言中唯一一个没有父类的类。
-
一个类可以不是Object类的直接子类,但一定是Object类的子类,Java中的每一个类都是从Object扩展来的。
-
在Object类中定义的方法,在所有类中都可以使用。
-
-
Object 类常用方法 示例:ObjectSample.java
-
返回 类名@hashcode
-
返回十进制整数,唯一标识一个对象
-
比较两个对象引用的值是否相等(比较哈希地址)
-
public boolean equals(Object obj)
-
public int hashCode()
-
public String toString()
-
包装类
-
包装类
-
基本数据类型不是对象层次结构的组成部分。有时需要像处 理对象一样处理这些基本数据类型,可通过相应的“包装类” 来将其“包装”。
-
数据类型 | 封装类 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
基本类型转换包装类型
-
基本数据类型通过构造器转换为包装类
int pInt = 500;
Integer wInt = new Integer(pInt);
-
字符串通过构造方法转换为包装类
String sInt = “500”;
Integer wInt = new Integer(sInt);
-
字符串通过包装类的valueOf(String s)转换为包装类
String sInt = “500”;
Integer wInt = Integer.valueOf(sInt);
注意:字符串不能通过以上两种方式转换为Character
基本类型转换包装类类型
-
包装类通过xxxValue()方法转换为基本数据类型
Integer wInt = new Integer(500);
int pInt = wInt.intValue();
-
包装类通过toString()方法转换为字符串
Integer wInt = new Integer(500);
String sInt = wInt.toString();
字符串转换为基本数据类型
-
字符串通过parseXXX(String s)方法转换为基本数据类型
String sInt = “500”;
int pInt = Integer.parsetIInt(sInt);
自动的装箱和自动拆箱
-
自动的装箱和自动拆箱 示例:TestWrapper.java
-
在进行基本数据类型和对应的包装类转换时,系统将自动进行
-
JDK自从5.0版本后引入
-
方便程序的编写
-
int pInt = 500;
Integer wInt = pInt;
int n = wInt;
String类
-
String类
-
代表一组不可改变的unicode字符序列。
-
String类用于比较两字符串、查找和抽取串中的字符或子串、字符 串与其他类型之间的转换等。
-
String类对象的内容一旦被初始化就不能再改变。
-
-
String对象的创建
-
初始化一个新创建的 String 对象,它表示一个空字符序列。String 变量名 = new String () ;
-
初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列 String 变量名 = new String (String value) ;
-
分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。String 变量名 = new String (StringBuffer buf) ;
-
String类的构造方法
-
字符串文字常量本身是一个String对象 String 变量名 = “hello” ;
-
-
“ + ”字符串连接运算符
-
连接操作符“+”,可以将其它各种类型的数据转换成字符串,并 前后连接成新的字符串
-
String str1 = “hello ”;
String str2 = “world”;
String str = str1 + str2; //str为“hello world”
-
String类的性质 示例 StringDemo.java
-
连接、获得子串和改变大小写等操作,如果返回值同原字符串不同,实际上是产生了一个新的String对象
-
任何一个String对象在创建之后都不能对它的内容作出任何改变 (immutable)
-
在程序的任何地方,相同的字符串字面常量都是同一个对象
-
String类重置了equals方法,用于比较两个字符串的内容
-
String str1 = “hello ”;
String str2 = new String(“hello”);
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
String类常用方法
方法 | 含义 |
---|---|
boolean equals(String) | 判断两个字符串对象的内容是否相等 |
boolean equalsIgnoreCase(String) | 比较两个字符串的内容是否相等,忽略大小写 |
String toUpperCase( ) | 将String对象中的所有字符都转换为大写 |
String toLowerCase( ) | 将String对象中的所有字符都转换为小写 |
char charAt(int) | 返回指定索引处的char 值 |
String subString(int begin) | 返回一个新字符串,该字符串是从begin开始的字符串的内容 |
String subString(int begin,int end) | 返回一个新字符串,该字符串是从begin开始到end结束的字符串的内容 |
int indexOf/lastIndexOf(char) | 返回指定字符在此字符串中第一次/最后一次出现处的索引。 |
int indexOf/lastIndexOf(char,int) | 从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符处的索引 |
int indexOf/lastIndexOf(String) | 返回第一次出现的指定子字符串在此字符串中的索引 |
int indexOf/lastIndexOf(String,int) | 从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符串处的索引 |
String trim( ) | 返回新的字符串,忽略前导空白和尾部空白 |
int length( ) | 返回此字符串的长度 |
StringBuffer类
-
StringBuffer类
-
StringBuffer类用于内容可以改变的字符串
-
可以使用StringBuffer来对字符串的内容进行动态操作,不会产生 额外的对象
-
-
StringBuffer对象的创建
-
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符
-
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
-
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
-
-
StringBuffer类的常用方法
方法 | 含义 |
---|---|
int capacity( ) | 返回当前容量 |
int length( ) | 返回长度(字符数) |
StringBuffer reverse( ) | 将此字符序列用其反转形式取代 |
void setCharAt(int,char) | 将给定索引处的字符设置为ch |
void delete(int begin,int end) | 移除此序列的子字符串中的字符 |
char charAt(int) | 返回此序列中指定索引处的char 值 |
String toString( ) | 将StringBuffer对象转换成相应的String |
StringBuffer append(String str) 将指定的字符串追加到此字符序列 | |
StringBuffer append(int num) 将int 参数的字符串表示形式追加到此序列 | |
StringBuffer append(Object o) 追加Object 参数的字符串表示形式 | |
StringBuffer insert(int index,String str) 将字符串插入此字符序列中 | |
StringBuffer insert(int index,char ch) 将字符插入此字符序列中 | |
StringBuffer insert(int index,Object o) 将Object 参数的字符串表示形式插入此字符序列中 |
-
StringBuilder类
-
StringBuilder类是一个可变的字符序列。
-
JDK自从5.0版本后引入。
-
StringBuilder类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候 。
-
-
StringBuilder对象的创建
-
构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。StringBuilder 变量名 = new StringBuilder () ;
-
构造一个不带任何字符的字符串生成器,其初始容量由 capacity参数指定。StringBuilder 变量名 = new StringBuilder (int capacity ) ;
-
构造一个字符串生成器,并初始化为指定的字符串内容 StringBuilder 变量名 = new StringBuilder(String str) ;
-
-
StringBuilder类的常用方法
方法 | 含义 |
---|---|
int capacity( ) | 返回当前容量 |
int length( ) | 返回长度(字符数) |
StringBuilder reverse( ) | 将此字符序列用其反转形式取代 |
void setCharAt(int index,char ch) | 将给定索引index处的字符设置为ch |
void delete(int begin,int end) | 移除此序列的子字符串中的字符 |
char charAt(int index) | 返回此序列中指定索引处的char 值 |
String toString( ) | 将StringBuilder对象转换成相应的String |
StringBuilder append(String str) | 将指定的字符串追加到此字符序列 |
StringBuilder append(int num) | 将int 参数的字符串表示形式追加到此序列 |
StringBuilder append(Object o) | 追加Object 参数的字符串表示形式 |
StringBuilder insert(int index,String str) | 将字符串插入此字符序列中 |
StringBuilder insert(int index,char ch) | 将字符插入此字符序列中 |
StringBuilder insert(int index,Object o) | 将Object 参数的字符串表示形式插入此字符序列中 |
StringBuffer类与StringBuilder 类的异同
-
StringBuffer类与StringBuilder 类的异同
-
StringBuffer类是线程安全的;
-
StringBuilder类是线程不安全的。
-
StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。
-
StringBuilder的一些方法实现要比StringBuffer快些
-
String类对象中的内容初始化不可以改变
-
StringBuffer类对象中的内容可以改变
-
Java中定义了String与StringBuffer两个类来封装对字符串的各种操作
-
String类与StringBuffer类都被放到了java.lang包中
-
两者的主要区别在于
-
StringBuffer和StringBuilder都是长度可变的字符串。
-
两者的操作基本相同。
-
两者的主要区别在于
-
Math 类
-
Math 类
-
Math类提供了大量用于数学运算的方法
-
Math类是final类,因此不能从Math类继承
-
Math类中的方法都是static方法,因此不必创建Math类的对象就 可以直接使用该类的方法
-
-
Math 类中的常量
public static final double PI
public static final double E -
Math 类中的常用方法
方法 | 含义 |
---|---|
static int abs(int) | 返回参数的绝对值,返回值类型与参数类型相同 |
static double abs(double) | 返回参数的绝对值 |
static double ceil(double) | 返回大于所给参数的最小的整数值 |
static double floor(double) | 返回不大于所给参数的最大的整数值 |
static int max(int a,int b) | 返回两个int值中较大的一个 |
static double max(double,double) | 返回两个double值中较大的一个 |
static int min(int a,int b) | 返回两个int值中较小的一个 |
static double min(double,double) | 返回两个double值中较小的一个 |
static double random( ) | 返回在0.0~1.0之间的随机的double值 |
static int round(double) | 返回同所给值最接近的整数,采用4舍5入法 |
static double sin/cos/tan(double) | 返回给定的弧度值对应的三角函数值 |
static double sqrt(double) | 返回所给值的平方根,若所给值为负数则返回NaN |
Math 类
-
Date 类
-
java.util.Date。
-
Date 类表示指定的时间信息,可以精确到毫秒。
-
不支持国际化。
-
该类的许多方法已过时。
-
获取当前系统时间:new Date();
-
-
Date类中的常用方法 示例:
方法 | 含义 |
---|---|
boolean after(Date when) | 测试此日期是否在指定日期之后 |
boolean after(Date when) | 测试此日期是否在指定日期之前 |
int compareTo(Date anotherDate) | 比较两个日期的顺序。如果参数Date 等于此Date,则返回值 0;如果此Date 在Date 参数之前,则返回小于 0 的值;如果此Date 在Date 参数之后,则返回大于 0 的值。 |
boolean equals(Object obj) | 比较两个日期的相等性。 |
Calendar 类
-
Calendar 类
-
java.util.GregorianCalendar
-
java.util.Calendar。
-
常用的日期处理的对象。可以设置自己的时区和国际化格式。
-
是一个抽象类。
-
Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则 。
-
-
Calendar 类的使用:
-
获取Calendar对象的实例 Calendar c = Calendar.getInstance();
-
-
Calendar 类的使用:
-
获取Calendar对象的实例:
Calendar c = Calendar.getInstance(); -
设置Calendar实例所表示的时间:
c.set(2011,6,16); -
获取指定的时间属性
c.get(Calendar.YEAR);
-
-
Calendar 类中的常用属性
方法 | 含义 |
---|---|
static int HOUR | 小时时间 |
static int MINUTE | 分时间 |
static int SECOND | 秒时间 |
static int DATE | 日期的Date部分 |
static int MONTH | 日期的Month部分 |
static int YEAR | 日期的年部分 |
/ 总结 /
本文主要讲了java开发中常用的工具类,在开发中会经常用到这些工具类取帮助我们高效的开发软件程序。
往期推荐:
关注我的公众号,学习技术或投稿
长按上图,识别图中二维码即可关注