【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类:常用日期处理对象,可以设置时区和国际化格式 抽象类

         定义了足够多的方法,让我们可以表述日历的规则

posted @ 2017-10-18 19:46  chain155  阅读(179)  评论(0)    收藏  举报