从0到1学java:工具类

点击上方“罗晓胜”,马上关注,您的支持对我帮助很大

 

/   前言   /

 

什么是工具类?

 

都看到这了,这种低级的问题还问的出来。

一个项目不可能没有工具类,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()

包装类

  • 包装类

    • 基本数据类型不是对象层次结构的组成部分。有时需要像处 理对象一样处理这些基本数据类型,可通过相应的“包装类” 来将其“包装”。

数据类型封装类
booleanBoolean
byteByte
charCharacter
doubleDouble
floatFloat
intInteger
longLong
shortShort

基本类型转换包装类型

  • 基本数据类型通过构造器转换为包装类

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开发中常用的工具类,在开发中会经常用到这些工具类取帮助我们高效的开发软件程序。

 

 

往期推荐:

如何入门做软件开发

为什么我不推荐入行程序员

做全栈开发很难吗

 

关注我的公众号,学习技术或投稿

 

 

长按上图,识别图中二维码即可关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值