黑马程序员----JAVA----常用类----

来源:互联网 发布:百度网盘软件 编辑:程序博客网 时间:2024/06/06 07:40

----------------------------------android培训、java培训、期待与您交流!------------------------------

 

StringBuffer概述
          等待使用的数据存放在缓冲区中。

 

StringBuffer的好处(与String的不同之处)


                 String是不可变的,而StringBuffer是可变的!
                 如果一个字符串需要在计算过程中不断的发生变化,能使用应该先使用StringBUffer,然后在从StringBuffer中把计算后的String提取出来。

StringBuffer与数组的不同之处
                 数组长度是不可变的,而StringBuffer长度是可变的;
                 数组只能存放一种数据类型,StringBuffer中可以添加任何类型的数据,但是提取出来后的就都编程字符串了。

StringBuffer():创建空缓冲区,容量默认是16个字符位置。
StringBuffer(int capacity):容量为capacity
StringBuffer(String str):创建包含指定字符串str的缓冲区,容量为str.lenght()+16;

 

StringBuffer 常用方法:
                   StringBuffer append(type data):把参数转换成String类型,追加到缓冲区的尾部。
                   StringBuffer insert(int offset,type data):将指定数据插入到指定的位置。
                   StringBuffer delete(int start,int end):删除缓冲区中指定区间的字符,包含头,不包含尾。
 
StringBuffer 其他功能:
                   StringBuffer replace(int start,int end,String str):将指定位置替换成指定的字符串,但是他返回一个替换后的新串,而原串没有改变。
                   StringBuffer substring(int start):截取字符串,与String类的这个功能相同! 不改变本身,只是返回一个子串,而本事没有被截取。
                   StringBuffer subsring(int start,int end):从指定位置,截取到指定的位置。
 StringBuffer reverse():反转,讲一个字符串反转。
 
StringBuilder与StringBuffer的比较:
                   StringBuffer是线程安全的!但是效率低。
                   StringBuilder是线程不安全的!但是效率高。

Integer的常量与进制转换方法
                      static String toBinaryString(int i):二进制
                      staiic String toOctalString(int i):八进制
                      static String toHexString(int i):十六进制
                      static String toString(int i,int radix):前面的是指定的数据,后面指定的数据是要转换的进制。

Math:都是静态方法类
                     static double abs(double):返回参数的绝对值
                     static double max(double d1,double d2):返回参数d1和d2中的大者
                     static double min(double d1,double d2):返回参数d1和d2中的小者
                     static double sqrt(double):求参数的平方根
                     static double cbrt(double):求参数的立方根
                     static double pow(double a,double b): 求a 的b的次方
                     static double ceil(double):返回大于等于参数的最小整数。
                     static double floor(double):返回小于等于参数的最大参数。
                     static long round(double):四舍五入
                     static int round(float):四舍五入
                     static double random():返回一个0-1之间的随机数

常用类
Date类的构造器:
 Date()
 Date(long):-new Date(0)表示(1970年1月1日,00:00:00).但因为中国是东八区,所以表示(1970年1月1日,08:00:00);其中参数可以是负数,表示"基准时间"之前。

Date类的方法:
                  boolean after(Date when):当前时间是否在参数时间之后。d1.after(d2);
                  boolean before(Date when):当前时间是否在参数时间之前
                  int compareTo(Date date):比较两个日期,如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;
                  boolean equals(Date date):比较当前时间和参数时间是否相等
                  long getTime():获取当前时间毫秒值
                  void setTime(long time):设置当前时间毫秒值
                  String toString():把此Date对象转成字符串打印。

日期格式化:
           DateFormat的子类:SimpleDateFormat

           String format(Date date):将一个Date格式化为日期/时间字符串
           DateFormat getDateInstance():获取日期格式器,该格式器具有默认语言环境的默认格式化风格。


Carlendar :抽象类
        Carlendar c=Carlendar.getInstance();
        getInstance() 方法返回的是:Carlendar子类的实例对象。
  
Calendar 的获取方法:
           get(int field):获取属性;
           get(Calendar.YEAR):获取年
           get(Calendar.MONTH):注意当前月份是1,那么返回是0;
           get(Calendar.DATE):获取日
           get(Calendar.DAY_OF_WEEK):注意,如果当前是星期日,那么返回1
           get(Calendar.HOUR_OF_DAY);获取小时。
           get(Calendar.MINUTE):获取时钟。
           get(Calendar.SECOND):获取秒钟

Calendar 的设置方法:
          set(int field,int value):详细看API

Carlendar:的add方法
            add(int field,int value):这个方法用来对当前时间设置属性的。

与Date之间的转换
            setDate(Date):使用Date对象设置当前Calendar对象
            Date getDate():把当前对象转换成Date对象、

获取最大值:int getActualMaxiMum(int field):获取指定字段的真实最大值。例如:c.getActualMaximum(Calendar.DATE);如果当前日历为2月,那么返回的就是28。既2月的最大天数。

练习:打印这个小日历

public class RiLi_2Demo {
                public static void main(String[] args) {
                         //打印星期头
                     System.out.println("日        一        二        三         四        五        六");
                        //创建日历对象
                    Calendar c=Calendar.getInstance();
                       //定义一个变量用来接受,这个月中的天数,days=31
                    int days=c.getActualMaximum(Calendar.DATE);
                     //获取当前日期
                    int today =c.get(Calendar.DATE);
                     //将当前日期设置为一号
                    c.set(Calendar.DATE, 1);
                    //获取当前是星期几   循环 条件  等于星期日,小于获取的星期几,每次打印4个空格
                    int day1=c.get(Calendar.DAY_OF_WEEK);
                   //  System.out.print(day1);
                    for(int i=Calendar.SUNDAY;i<day1;i++){
                            System.out.print("    ");
                 }
                    //定义一个循环变量这个月的天数
                   for(int i=1;i<=days;i++){
                             / /获取每周的星期六
                             int week=c.get(Calendar.DAY_OF_WEEK);
                             //获取当前日期
                             int day=c.get(Calendar.DATE);
                             if(day<10){
                                   System.out.print(" ");
                        }
                           System.out.print(i);
                           //如果这个日期等于当前日期就打印一个*号和一个空格 否则就打印两个空格
                            if(day==today){
                                   System.out.print("* ");
                                }else{
                                        System.out.print("  ");
                          }
   
                               //判断,如果week等于星期六的话 就换行
                                if(week==Calendar.SATURDAY){
                                            System.out.println();
                  }
   
                              //每次循环日期就加一次。
                               c.add(Calendar.DATE, 1);
                   }

          }
}

 

----------------------------------android培训、java培训、期待与您交流!------------------------------

原创粉丝点击