【Java高级】1.工具类
应用程序接口:API(Application Programming Interface)
Java中的API指JDK提供的各种功能的Java类、接口、方法等
System类:包含一些有用的类字段和方法,不能被实例化(System.out.println())
String类:位于lang包下,代表字符串,lang包下的类可以直接引用
JavaX代表Java的扩展包
JDK(Java的软件开发工具包)中常用的包:lang、util、awt、io
Object类:是所有类的超类,Java中唯一没有父类的类,Java中每一个类都是从Object扩展而来的
一个类可以不是Object的直接子类,但一定是Object的子类
Object中的方法,在所有类中都可以使用
常用方法:equals() 比较两个对象引用的值是否相等(比较地址)
子类会覆盖equals方法,有的类中该方法比较地址,有的类中该方法比较内容
hashCode()返回对象的哈希码,哈希码是一个代表对象的十六进制整数
程序执行期间,哈希码一定相同,多次执行同一程序,哈希码不一定相同
哈希码默认是通过将对象的内存地址转换得到的,所以不同对象哈希码可能不同
如果equals方法返回的两个对象相等,则两个对象调用的hashCode方法返回值也必须相等,否则,使用Hash类型集合时会出错,所以覆盖重写equals方法是,也要覆盖重写hashCode方法;如果equals方法返回的整数不同,hashCode方法也可以返回相同的整数,但Hash类集合的性能会下降
toString()返回类名@hashCode,没有意义,一般子类会重写该方法

包装类:Java语言不把基本数据类型当做对象,但提供包装类将基本类型包装成对象
功能上包装类能完成数据类型(除了boolean)的转换,尤其是String和基本数据类型的转换
包装类中包含了对应基本数据类型的值,封装了String和基本数据类型转换的方法
还有一些处理这些基本数据类型十分有用的属性和方法
Boolean、Byte、Character、Double、Float、Integer、Long、Short
包装类字符串转换成基本数据类型:XXX.parsexxx(字符串) xxx:基本数据类型 XXX:包装类
获取包装类中的值:XXX.xxxValue()
//两种转换方式 Integer t=new Integer(13); int t1=t.intValue(); int t2=Integer.parseInt(t);
//字符串不能通过该方法转换成Character
自动装箱和拆箱:在进行基本数据类型和对应的包装类转换时,系统将自动进行
JDK从5.0版本后引入,方便程序编写
String类:String类一旦被初始化不能被改变,StringBuffer和StringBuilder可以改变,String类是final类型的类
创建方式:静态 String s=“abc” 动态String s=new String(“abc”)

空字符串表示String对象内容为空,null表示String对象不知想任何String对象
连接操作符+:可以将各种类型数据转换成字符串,并前后连接成新字符串(其他类型数据将会转换成(int)
String常用方法:equals(String)比较两个字符串内容是否相等
equalsIgnoreCase(String) 判断两个字符串内容是否相等,忽略大小写
toUpperCase() toLowerCase()大小写转换
charAt(int)返回指定索引处的char值
subString(int begin) subString(int begin,int end)返回子字符串
indexOf(char) lastIndexOf(char)返回指定字符第一次/最后一次出现的索引
indexOf(char,int) lastIndexOf(char,int)同上,从指定位置开始 char可以替换为String
trim()返回新字符串,忽略前后空格
length()返回字符串长度
StringBuffer类:用于内容可以改变的字符串,可以对字符串内容进行动态操作,不会产生额外对象
初始容量为16 当创建时指定空间容量大小,默认空间初始容量不会加16
StringBuffer常用方法:capacity()返回当前容量 length() 同上 charAt(int)同上 toString()同上
reverse()将字符串顺序反转
setCharAt(int ,char)将指定索引处字符设置为char
delete(int begin,int end)删除序列的子字符串中的字符
append(String/int/Object)拼接字符串、int参数字符串、Object参数字符串
insert(int index,String/char/Object)将字符串、字符、Object参数字符串插入字符序列
注意:判断连个StringBuffer变量内容是否相等,应使用toString()将他们转换成String对象
StringBuffer节省内存开销
Math类:提供了大量用于数学运算的方法,是final类,不能偶从Math中继承
方法都是static静态方法,不必创建Math类的对象,可以直接调用
Math类方法:abs(int/double) 绝对值 ceil(double) 向上取整 floor(double)向下取整
max(...)取较大值 min(...)取较小值 random()在0.0~1.0之间取随机数 round(double)四舍五入
sin/cos/tan(double)三角函数 sqrt(double)返回平方根
Date类:util包下 获取当前时间 许多方法过时了
更多时候在使用Calendar日历类,实现日期与时间的转换;使用DateFormat类来格式化和分析日期
Date类方法:after(Date)测试此日期是否在指定日期之后 before(Date)同上
compareTo(Date anotherDate)比较两个日期顺序
equals(Object)比较两个日期是否相等
Calendar类:常用日期处理对象,可以设置时区和国际化格式 抽象类
定义了足够多的方法,让我们可以表述日历的规则

浙公网安备 33010602011771号