Java学习笔记之---API的应用
(一)Object类
java.lang.Object
类 Object
是类层次结构的根类。每个类都使用 Object
作为超类。所有对象(包括数组)都实现这个类的方法
- 常用方法
1.equals(Object obj) 指示其他某个对象是否与此对象“相等”。
2.hashCode() 返回该对象的哈希码值
3.toString() 返回该对象的字符串表示
4.getClass() 返回此 Object
的运行时类
- 实例
public class bbb { public static void main(String[] args){ String b=new String("String类型的数据");//创建一个String对象 String b1=new String("String类型的数据2");//创建一个String对象 String b2=b.toString();//以字符串的形式返回对象的文本信息 int b3=b.hashCode();//以整型的形式返回对象的哈希值 Class<?> b4=b.getClass();//返回对象的类的类型 boolean b5=b.equals(b1);//比较两个对象是否相等,返回Boolean类型的数据 System.out.println(b+" ,"+b1+" ,"+b2+" ,"+b3+" ,"+b4+" ,"+b5); } }
运行结果:
String类型的数据 ,String类型的数据2 ,String类型的数据 ,128940929 ,class java.lang.String ,false
(二)包装类
以Byte为例
java.lang.Byte
Byte
类将基本类型 byte
的值包装在一个对象中。一个 Byte
类型的对象只包含一个类型为 byte
的字段。
此外,该类还为 byte
和 String
的相互转换提供了几种方法,并提供了处理 byte
时非常有用的其他一些常量和方法
- 实例
public class aaa { public static void main(String[] args) { byte n=1;//基本数据类型 Byte m=new Byte(n);//装箱,将基本数据类型转换为Byte对象 Byte y=n;//自动装箱 byte x=new Byte(m);//拆箱,将Byte对象转换为byte数据类型 System.out.println(x); System.out.println(m); } }
运行结果:
1
1
(三)Number类
java.lang.Object
java.lang.Number
抽象类 Number
是 BigDecimal
、BigInteger
、Byte
、Double
、Float
、Integer
、Long
和 Short
类的超类。
Number
的子类必须提供将表示的数值转换为 byte
、double
、float
、int
、long
和 short
的方法。
- 常用方法
1. compareTo() 在数字上比较两个 Integer 对象
2. valueOf(int) 返回一个表示指定的 int 值的 Integer 实例
3. decode() String 解码为 Integer
4. valueOf(String) 返回保存指定的 String 的值的 Integer 对象
- 实例
public class ccc { public static void main(String[] args){ Integer c=new Integer(1);//构造一个新分配的 Integer 对象,它表示指定的 int 值 System.out.println(c); Integer c1=new Integer("2");//构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值 System.out.println(c1); //如果c=c1,返回0;如果c>c1,返回大于0,;如果c<c1,返回小于0 int c2=c.compareTo(c1);//在数字上比较两个 Integer 对象 System.out.println(c2); Integer c3=Integer.valueOf(c);//返回一个表示指定的 int 值的 Integer 实例 System.out.println(c3); Integer c4=Integer.valueOf("5");//返回保存指定的 String 的值的 Integer 对象 System.out.println(c4); String cc="cc"; Integer c5=Integer.decode("5");//将 String 解码为 Integer System.out.println(c5); } }
运行结果:
1
2
-1
1
5
5
(四)Character类
java.lang.Character
Character
类在对象中包装一个基本类型 char
的值。Character
类型的对象包含类型为 char
的单个字段。
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
- 常用方法
- valueOf() 返回一个表示指定 char 值的 Character 实例
- toString() 返回一个表示指定 char 值的 String 对象
- isDigit() 确定指定字符是否为数字
- isLetter() 确定指定字符是否为字母
- isUpperCase() 确定指定字符是否为大写字母
- isLowerCase() 确定指定字符是否为小写字母
- toUpperCase() 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写
- toLowerCase() 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
- 实例
public class ddd { public static void main(String[] args){ Character d=new Character('d');//构造一个新分配的 Character 对象,用以表示指定的 char 值 System.out.println(d); Character d1=Character.valueOf(d);//返回一个表示指定 char 值的 Character 实例 System.out.println(d1); String d2=Character.toString(d);//返回一个表示指定 char 值的 String 对象 System.out.println(d2); boolean d3=Character.isDigit(d);//确定指定字符是否为数字 System.out.println(d3); boolean d4=Character.isLetter(d); //确定指定字符是否为字母 System.out.println(d4); boolean d5=Character.isUpperCase(d);//确定指定字符是否为大写字母 System.out.println(d5); boolean d6=Character.isLowerCase(d);//确定指定字符是否为小写字母 System.out.println(d6); char d7=Character.toUpperCase(d);//使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写 System.out.println(d7); char d8=Character.toLowerCase(d7);//使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写 System.out.println(d8); } }
运行结果:
d
d
d
false
true
false
true
D
d
(五)String类
java.lang.Object
java.lang.String
String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享
Ø 常用方法
1. length() 返回此字符串的长度
2. charAt() 返回指定索引处的 char 值
3. contains() 当且仅当此字符串包含指定的 char 值序列时,返回 true
4. endsWith() 测试此字符串是否以指定的后缀结束
5. startsWith() 测试此字符串是否以指定的前缀开始
6. indexOf() 返回指定子字符串在此字符串中第一次出现处的索引
7. lastIndexOf() 返回指定子字符串在此字符串中最右边出现处的索引
8. isEmpty() 当且仅当 length() 为 0 时返回 true
9. replace(char oldChar, char newChar
) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
10. split() 根据给定正则表达式的匹配拆分此字符串
11. substring(int beginIndex, int endIndex
) 返回一个新字符串,它是此字符串的一个子字符串
12. toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写
13. toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写
14. trim() 返回字符串的副本,忽略前导空白和尾部空白
15. valueOf() 返回 char 参数的字符串表示形式
16. toCharArray() 将此字符串转换为一个新的字符数组
- 实例
public class eee { public static void main(String[] args){ String e=new String("zhangaaa"); System.out.println(e); int e1=e.length();//返回此字符串的长度 System.out.println("字符串的长度:"+e1); char e2=e.charAt(3);//返回指定索引处的 char 值 System.out.println("返回索引值为3的字母:"+e2); boolean e3=e.contains("aa");//当且仅当此字符串包含指定的 char 值序列时,返回 true System.out.println("此字符串中是否有aa:"+e3); boolean e4=e.endsWith("a");//测试此字符串是否以指定的后缀结束 System.out.println("此字符串是否以a结尾:"+e4); boolean e5=e.startsWith("h");//测试此字符串是否以指定的前缀开始 System.out.println("此字符串是否以h开始:"+e5); int e6=e.indexOf("ha");//返回指定子字符串在此字符串中第一次出现处的索引 System.out.println("ha在字符串中第一次出现的索引值:"+e6); int e7=e.lastIndexOf("a");//返回指定子字符串在此字符串中最右边出现处的索引 System.out.println("ha在字符串中最后一次出现的索引值:"+e7); boolean e8=e.isEmpty();//当且仅当 length() 为 0 时返回 true System.out.println("此字符串是否为空:"+e8); String e9=e.replace("aaa","bbb");//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的 System.out.println("替换后的新字符串为:"+e9); String[] e10=e.split("g");//根据给定正则表达式的匹配拆分此字符串 for(String e11:e10){ System.out.println("拆分后的新字符串为:"+e11); } String e12=e.substring(0,2);//返回一个新字符串,它是此字符串的一个子字符串 System.out.println("截取后的新字符串为:"+e12); String e13=e.toUpperCase();//使用默认语言环境的规则将此 String 中的所有字符都转换为大写 System.out.println("变为大写后的新字符串为:"+e13); String e14=e13.toLowerCase();// 使用默认语言环境的规则将此 String 中的所有字符都转换为小写 System.out.println("变为小写后的新字符串为:"+e14); String ee=" aa "; String e15=ee.trim();//返回字符串的副本,忽略前导空白和尾部空白 System.out.println("清空空白后的新字符串为:"+e15); String e16=String.valueOf('a');//返回 char 参数的字符串表示形式 System.out.println("字符变为字符串后为:"+e16); char[] e17=e.toCharArray();//将此字符串转换为一个新的字符数组 System.out.println("字符串变为数组后输出为:"); for(char e18:e17){ System.out.print(e18+" "); } } }
运行结果:
zhangaaa
字符串的长度:8
返回索引值为3的字母:n
此字符串中是否有aa:true
此字符串是否以a结尾:true
此字符串是否以h开始:false
ha在字符串中第一次出现的索引值:1
ha在字符串中最后一次出现的索引值:7
此字符串是否为空:false
替换后的新字符串为:zhangbbb
拆分后的新字符串为:zhan
拆分后的新字符串为:aaa
截取后的新字符串为:zh
变为大写后的新字符串为:ZHANGAAA
变为小写后的新字符串为:zhangaaa
清空空白后的新字符串为:aa
字符变为字符串后为:a
字符串变为数组后输出为:
z h a n g a a a
(六)日期类
Data类
java.lang.Object
java.util.Date
类 Date
表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date
有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar
类实现日期和时间字段之间转换,使用 DateFormat
类来格式化和解析日期字符串。Date
中的相应方法已废弃。
Calendar类
java.util.Calendar
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected
。
与其他语言环境敏感类一样,Calendar
提供了一个类方法 getInstance
,以获得此类型的一个通用的对象。Calendar
的 getInstance
方法返回一个 Calendar
对象,其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
Calendar
对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语-传统日历。Calendar
定义了某些日历字段返回值的范围,以及这些值的含义。例如,对于所有日历,日历系统第一个月的值是 MONTH == JANUARY
。其他值是由具体子类(例如 ERA
)定义的。有关此内容的细节,请参阅每个字段的文档和子类文档
Format类
java.lang.Object
java.util.Formatter
printf 风格的格式字符串的解释程序。此类提供了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。支持诸如 byte、BigDecimal
和 Calendar
等常见 Java 类型。任意用户类型的受限格式化定制都是通过 Formattable
接口提供的。
Formatter 对于多线程访问而言没必要是安全的。线程安全是可选的,它对此类中的方法用户负责。
Java 语言的格式化输出在很大程度上受到 C 语言 printf 的启发。虽然一些格式字符串与 C 类似,但已进行了某些定制,以适应 Java 语言,并且利用了其中一些特性。此外,Java 的格式比 C 的格式更严格;例如,如果转换与标志不兼容,则会抛出异常。在 C 中,不适用的标志会被忽略。这样,便于 C 程序员识别这些格式字符串,而又不必与 C 中的那些标志完全兼容。
DateFormat类
java.text.DateFormat
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date
对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。
DateFormat 提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用这些风格的更多细节和示例。
DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关