zoukankan      html  css  js  c++  java
  • java学习笔记(day21)

    0x00 Calendar类

    1.概述

    java.util.Calendar类:日历类
    Calendar类是一个抽象类,里面提供了很多操作日历字段的方法。

    Calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。

    static Calendar getInstance() 使用默认失去和语言环境获得一个日历。

    2.Calendar类常用的成员方法

    1. public int get(int field):返回给定日历字段的值。
    2. public void set(int field,int value):将给定的日历字段设置为给定值。
    3. public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
    4. public Date getTime():返回一个表示次Calendar类的静态成员变量获取。

    成员方法的参数跟DateFormat相同。

    0x01 System类

    概述

    java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

    System类的常用方法

    1. public static long currentTimeMillis:返回以毫秒为单位的当前时间。
    2. public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组中。

    练习:public static long currentTimeMillis

    该方法可以用来验证程序的效率
    验证for循环打印数字1-9999所需要使用的时间(毫秒)

    package day21;
    public class ForDemo01 {    
          // 验证for循环打印数字1-9999所需要使用的时间(毫秒)    
          public static void main(String[] args) {        
                long s = System.currentTimeMillis();        
                for (int i = 1; i <=9999 ; i++) {            
                      System.out.println(i);        
                }        
                long e = System.currentTimeMillis();        
                System.out.println("程序总耗时"+(e-s)+"毫秒");    
          }
    }
    

    练习:public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

    public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
    参数:
    src - 源数组
    srcPos - 源数组中的起始位置(起始索引)
    dest - 目标数组
    destPos - 目标数组中的起始位置
    length - 要复制的数组元素的数量

    将src数组的前三个元素,复制到dest数组的前三个位置上。
    src数组{1,2,3,4,5}
    dest数组 {5,6,7,8,9}

    package day21;
    import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
    import java.util.Arrays;
    public class ArrayDemo02 {    
          public static void main(String[] args) {        
                int src[] = {1,2,3,4,5};        
                int dest[] = {5,6,7,8,9};        
                System.out.println("复制前的dest数组"+ Arrays.toString(dest));        
                System.arraycopy(src,0,dest,0,3);        
                System.out.println("复制后的dest数组"+Arrays.toString(dest));    
          }
    }
    

    0x02 StringBuilder类

    String类
    字符串是常量;它们的值在创建之后不能更改。
    字符串的底层是一个被final修饰的数组,不能改变,是一个常量。
    private final byte[] value;

    进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下。

    StringBuilder类
    字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
    底层也是一个数组,但是没有被final修饰,可以改变长度。
    byte[] value = new byte[16]

    StringBuilder在内存中始终是一个数组,占用空间少,效率高。
    如果超出了StringBuilder的容量,会自动的扩容。

    常用构造方法

    1. StringBuilder():构造一个不带任何字符的字符串生成器,其初始容量为16个字符。
    2. StringBuilder(Sting str):构造一个字符串生成器,并初始化为指定的字符串内容。

    代码演示

    package day21;
    public class StringDemo03 {    
          public static void main(String[] args) {        
                StringBuilder bu1 = new StringBuilder();        
                System.out.println("bu1:"+bu1);        
                StringBuilder bu2 = new StringBuilder("abc");        
                System.out.println("bu2:"+bu2);    
          }
    }
    

    常用成员方法

    1. public StringBuilder oppend(...):添加任意类型数据的字符串形式,并返回当前对象自身。
      代码演示
    package day21;
    public class AppendDemo04 {    
          public static void main(String[] args) {        
                StringBuilder bu1 = new StringBuilder();        
                StringBuilder bu2 = bu1.append("abc");        
                System.out.println(bu1);        
                System.out.println(bu2);        
                System.out.println(bu1 == bu2);    
          }
    }
    

    使用append方法无须接受返回值。

    1. public String toString():该方法可以让StringBuilder对象转变成String对象
      代码演示
    package day21;
    public class ToStringDemo05 {    
          public static void main(String[] args) {        
                String str = "hello";        
                System.out.println("str:"+str);        
                StringBuilder bu = new StringBuilder(str);        
                bu.append("word"); 
                //往StringBuilder里添加数据        
                System.out.println("bu:"+bu);        
                //进行转换        
                String s = bu.toString();        
                System.out.println("s:"+s);    
          }
    }
    

    StringBuilder和String可以相互转换;
    String -> StringBuilder
    使用StringBuilder的构造方法。

    0x03 包装类

    概念:
    基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据。可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类,我们可以使用类中的方法来操作这些基本类型的数据。

    装箱和拆箱

    装箱:把基本类型的数据,包装到包装类中。(基本类型的数据 -> 包装类)

    构造方法:
    Integer(int value)构造一个新分配的Integer对象,它表示指定的Int值。
    Integer(String s)构造一个新分配的Integer对象,它表示String参数所指示的int值。(传递的字符串必须是基本类型的字符串。)

    静态方法:
    static Interger valueOf(int i)返回一个表示指定的int值的Integer实例。
    static Integer valueOf(String s)返回保存指定String的值的Integer对象。

    拆箱:在包装类中取出基本类型的数据(包装类 -> 基本类型的数据)

    成员方法:
    int intValue() 以 int类型返回该Integer的值。

    自动装箱和自动拆箱

    基本数据类型的数据和包装类之间可以自动的相互转换

    package day21;
    public class IngeterDemo06 {    
          public static void main(String[] args) {        
                /*        
                自动装箱:直接把int类型的整数赋值到包装类。        
                Integer in = 1;相当于Integer in = new Integer(1)         
                */        
                Integer in = 1;                
                /*        
                自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算。        
                in + 2;就相当于in.intValue() + 2 = 3        in = in.intValue() + 2 = 3 又是一个自动装箱         
                */                
                in = in + 2;    
          }
    }
    

    基本类型与字符串之间的相互转换

    基本类型 -> 字符串

    1. 基本类型的值+“”
    2. 包装类的静态方法toString(参数)
    3. String类的valueOf(参数)

    字符串 -> 基本类型

    1. 包装类的静态方法parseXXX("数值类型的字符串")
      Integer类:static int parseInt(String s)
      Double类:static double parseDouble(String s)
    文章未经本人允许,禁止转载。 有技术问题,可加好友讨论。 联系方式:QQ:MjgxMjMxODAzNQ== 微信:bzNycjByLVhpYW9taW5n
  • 相关阅读:
    Cocos2d-x教程(26)-Cocos2d-x + Lua脚本实现大地图缩放功能
    【C语言】不使用大小于号,求出两数最大值
    软件project—思考项目开发那些事(一)
    linux下误删数据文件恢复
    C++中stringstream ostringstream istringstream使用方式
    谈谈c++纯虚函数的意义!
    CountDownTimer完整具体演示样例
    Flex 正則表達式 电话、邮箱验证
    DIV+CSS两种盒子模型(W3C盒子与IE盒子)
    图论--欧拉路,欧拉回路(小结)
  • 原文地址:https://www.cnblogs.com/Xiaoming0/p/13853949.html
Copyright © 2011-2022 走看看