黑马程序员——JAVA学习整理笔记——常用类库

来源:互联网 发布:若风淘宝店 编辑:程序博客网 时间:2024/06/05 13:33

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1. StringBuffer 类

1.1 与String比较:

      当使用一个字符串内容需要频繁修改时,使用StringBuffer类可以提升操作性能,其原因为:使用String进行“+”修改字符串是其真正改变的是字符串的引用(地址),而不是改变堆内存中的内容,而使用StringBuffer定义可以改变其内容。

1.2  StringBuffer类中的一些常用方法:

     append()------>与String中“+”类似,此方法可以添加任何数据类型;

     insert()------>在指定位置上为其添加内容;

     reverse----->将一个指定字符串逆向,如“Hello”变为“olleH”;

     replace()----->对指定范围的内容进行替换;在String中用replaceAll();

     substring()----->可以直接从StringBuffer的指定范围中截取内容;

     delete()------->删除指定范围的内容

     indexOf()------>可以查找指定的内容是否存在。注:如果存在返回内容的具体位置,如果不存在返回-1.

举例:            

  public class StringBufferTest{

                                   publicstatic void main(Sting args[]){

                                   StringBuffer  sbf=new   StringBuffer();

                                   sbf.append("world!!");

                                   System.out.println("当前sbf为:"+sbf);

                                   sbf.insert(0,"hello");

                                   System.out.println("当前sbf为:"+sbf);

                                   Stringstr1=sbf.reverse().toString();

                                   System.out.println("反转sbf后为:"+str1);

                                   sbf.replace(6,11,"JAVA");

                                   System.out.println("当前sbf为:"+sbf);

                                   Stringstr2=abf.substring(6,11);

                                   System.out.println("截取的内容为:"+str2);

                                   Stringstr3=sbf.delete(6,11).toString();

                                   System.out.println("删除的内容为:"+str3);

                                   if(sbf.indexOf("hello")==-1){

                                   System.out.println("没有查找到指定的内容");

                            }else{

                                   System.out.println("查找到指定的内容");

                                   }

}

}

运行结果:


2. Runtime类

2.1概念:

Runtime类表示运行时操作类,是一个封装了JVM进程的类,每一个JVM都对应着一个Runtime类的实例,次实例由JVM为其实例化。

       如果想获取一个Runtime实例,则只能通过以下方式:

              Runtimerun=Runtime. getRuntime();

2.2  Runtime类中的常用方法:

       Public static Runtime getRuntime()  -------->取得Runtime类的实例

       Public long freeMemory()         -------->返回虚拟机中的空闲内存量

       Public long maxMemory()        -------->返回JVM中的最大内存

       Public void gc()                -------->执行垃圾回收,释放内存空间

       PublicProcess exec(String command)throws IOException -------->执行本机命令

实例:

Publicclass RuntimeTest

{

    public static void main(String[] args)

    {

         Runtime run=Runtime.getRuntime();

        System.out.println("JVM的空闲内存:"+run.freeMemory());

        System.out.println("JVM的最大内存:"+run.maxMemory());

        StringBuffer sbr=new StringBuffer();

        for(int i=1;i<100;i++){

           sbr.append("i");

        }

       System.out.println("JVM的空闲内存:"+run.freeMemory());

           run.gc();

       System.out.println("JVM的空闲内存:"+run.freeMemory());

    }

}

运行结果:



3 .System类

 

3.1概念:

    指的是一些与系统相关属性和方法的集合。

3.2常用方法:

           exit(int status)   ------>当status为非0时表示系统退出;

           gc()           ------>调用Runtime的gc方法

           currentTimeMillis()  ------>获取以毫秒为单位的当前时间

           arraycopy(Object src ,int srcPos,Object dest, int destPos, int length) ------>数组复制操作

           getProperties()  ------>取得当前系统的全部属性

           getProperty(String key)  ------>根据键值取得属性的具体内容

举例:class Test6

{

    public static void main(String[] args)

    {

       longcurrenttime=System.currentTimeMillis();

           System.out.println(currenttime);

           System.out.println("系统版本为:"+System.getProperty("os.name"));

           System.gc();

    }

}

运行结果:



3.3 对象的生命周期:



一个类加载后进行初始化,然后就可以进行对象的实例化,对象实例化时会调用构造方法完成,当一个对象不再使用时就要等待被垃圾收集,然后对象终结,最终被程序卸载。


4. 日期操作类

4.1Date类

    得到当前系统时间,但是此日期格式并不是我们日常生活中的格式:

如:public classTest2 {

    publicstatic void main(String[] args) {

        Date day = new Date();

        System.out.println("当前时间为:" + day);

    }

}

运行结果:


4.2Calendar类

    可以取得的时间精确到毫秒;

    Calendar类本身是一个抽象类,故此需通过其子类GregorianCalendar类实例化:

Calendar calendar=newGregorianGcalendar();

  常用的一些变量,为static  final变量:

              YEAR       取得年

              MONTH       取得月

              DAY_OF_MONTH  取得日

              HOUR_OF_DAY    取的小时,24小时制

              MINUTE     取得分

              SECOND     取得秒

              MILLISECOND  取得毫秒

 

提供的方法:

 Public static Calendar getInstance()   ---------->根据默认的时区实例化对象

 Public boolean after(Object when)    --------->判断一个日期是否在指定之后

Public boolean before(Objectwhen)    --------->判断一个日期是否在指定之前

Public int get(intfield)              --------->返回给定日历字段值

 

举例:

import java.util.Calendar;

importjava.util.GregorianCalendar;

class Test6

{

   public static void main(String[] args)

   {  

      Calendar calendar = new GregorianCalendar();

      System.out.println("年:" + calendar.get(Calendar.YEAR));

      System.out.println("月:" + calendar.get((Calendar.MONTH) +1));

      System.out.println("日:" +calendar.get(Calendar.DAY_OF_MONTH));

      System.out.println("时:" +calendar.get(Calendar.HOUR_OF_DAY));

      System.out.println("分:" + calendar.get(Calendar.MINUTE));

      System.out.println("秒:" + calendar.get(Calendar.SECOND));

      System.out.println("毫秒:" +calendar.get(Calendar.MILLISECOND));

   }

}

运行结果:


注意:此时取得的月份初始值为0,所以应当在这个基础上+1;

4.3 DateFormat类

   可以取得一个非常正确的时间;但是其格式不是国人的习惯要求;但是可以进行格式化操作,使其按照自己喜欢的格式显示(打印);

 具体使用方法与Date相似

具体代码:

import java.text.DateFormat;

import java.util.Date;

class Test6

{

   public static void main(String[] args)

   {  

      DateFormat df1 = DateFormat.getDateInstance();

      DateFormat df2 = DateFormat.getDateTimeInstance();

      System.out.println("日期为:" + df1.format(new Date()));

      System.out.println("精确时间为:" + df2.format(new Date()));

   }

}

运行结果:


DateFormat类可以用其默认的显示风格进行格式化;

如下代码:

import java.text.DateFormat;

import java.util.Locale;

import java.util.Date;

class Test6

{

   public static void main(String[] args)

   {  

      DateFormat df1 =DateFormat.getDateInstance(DateFormat.YEAR_FIELD,newLocale("zh","CN"));

      DateFormat df2 =DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,newLocale("zh","CN"));

      System.out.println("日期为:" + df1.format(new Date()));

      System.out.println("精确时间为:" + df2.format(new Date()));

   }

}

运行结果:


4.4 SimpleDateFormat类

   可以把2015-03-19   22:12:49.345 变为:2015年3月19日22时12分49秒345毫秒

   使用SimpleDateFormat类就是定义一个日期模版,让对应的时间按照模版样编辑输出;

其中日期格式化模版标记如下:

                 yyyy------->表示年,为4位数

                  MM------->表示月,为2位数

                 dd------->表示天数,为2位数

                 HH------->表示小时,为2位数

                 mm------->表示分,为2位数

                 ss------->表示秒,为2位数

                 SSS------->表示毫秒,为3位数

常用方法:publicSimpleDateFormat(String pattern)   通过一个指定的模版构造对象

          Public Date parse(String source) throws ParseException 

          Public final String format(Date date)      将一个Date类型按照指定的格式为String类型

操作代码:

importjava.text.SimpleDateFormat;

import java.util.Date;

import java.text.*;

class Test6

{

   public static void main(String[] args)

   {  

       String str =new String("2015-03-19 22:12:49.345");

       String pat1 = "yyyy-MM-dd HH:mm:ss.SSSS";

       String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSSS毫秒";

       SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);

       SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);

       Date day = null;

       try {

           day = sdf1.parse(str);

       } catch (ParseException e) {

           e.getStackTrace();

       }

       System.out.println(sdf2.format(day));

   }

}

运行结果:


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

0 0