DAY01

  1. .JDK API

JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好、可供直接调用的功能(在Java语言中,这些功能以类的形式封装)。

JDK API 包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等

JDK包结构:

   JDK中经常使用的包有:

        

功能

java.lang

Java程序的基础类,如字符串、多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用

java.util

常用工具类,如集合、随机数产生器、日历、时钟等

java.io

文件操作、输入/输出操作

java.net

网络操作

java.math

数学运算相关操作

java.security

安全相关操作

java.sql

数据库访问

java.text

处理文字、日期、数字、信息的格式

 

        

  1. 文档注释

以/**开头,以*/结尾

通常加在类和方法的上方,用于说明作者,时间,版本,要实现功能的详细描述等信息;

用法:

  1. 通过javadoc视图查看
  2. 将整个项目的api文档导出

 

  1. .String

3.1 String是不可变的对象,本质是字符数组

3.2 String对象的创建 – 2种方式

String对象的创建方式一:

String str = new String();  //空字符

String str = new String(“abc”)  //此对象的值为abc

 

 

String对象创建的方式二:

   String str = “hello”;  //创建了一个String对象

  

   “”:叫做字符串直接量

 

   对象的存储位置:

   字符串常量池  -- JDK1.7之前在方法区,之后在堆中

   字符串常量池保存字符串直接量:

         特点:

               字符串常量池中保存的是字符串直接量,保存的对象是唯一存在的。创建String直接量对象时先去找这个值是否存在,如果存在,直接让引用指向,如果不存在,再开辟空间。

  

3.3  常用方法:

---构造方法
   ---方法:
         length()
         indexOf() –练习:统计一个子串在父串中出现的次数
         substring()—练习:截取域名
         trim()
         charAt()  - 练习:回文判断
         startsWith()
         endsWith()
         toUpperCase()
         toLowerCase()
         valueOf()

 

  1. .StringBuilder

StringBuilder提供了一个可变的字符数组,所以字符串内容的修改都是在这个数组中进行,而不会每次修改都创建一个新对象.

 

使用:

  1. 构造方法
  2. 方法:
    1. append(String str)
    2. toString()
    3. insert(int destOffSet,String str)
    4. delete(int start,int en
    5. replace(int strat,int end,String str)
    6. reverse()

     

     

    注意点:

    StringBuilder的很多方法的返回值均为StringBuilder类型。这些方法的返回语句均为:return this。

    java的字符串连接的过程是利用StringBuilder实现的

     

     

     

     

    Striuffer和StringBuilder

    1. .日期操作
    1. Date

    方法:getTime,setTime

    1. SimpleDateFormat
    2. Calendar

    Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。

     

    得到Calendar对象 – 2种方式

    1. 创建实现类对象
    2. 调用静态方法getInstanceof()
    1. getInstance()-会根据系统当前时区来创建子类对象(有可能会创建当地历法对象),但是一般创建的都是GregorianCalendar对象

     

     

    Calendar类中定义了一些日历字段(字段摘要)

     

    • 使用Calendar提供的get方法及一些常量可以获取日期及时间分量
    • static  int  YEAR  指示年份的字段数字
    • static  int   MONTH 指示月份的字段数字
    • static  int   DATE  指示一个月份中的第几天
    • static  int   DAY_OF_WEEK  指示一个星期中的某天,1为星期日

     

     

    方法:

        GET方法:

    get(int Field)
              getTime()
              getTimeInMills()
              getActualMaximum(int field)

        SET方法:

    set(int Field,int value)
       setTime(Date date)
      add(int field,int amount)

     

     

    练习:

       查看3年2个月零5天以后的那周的周一?

                    

        获取任意一年的二月有多少天

                    

        计算出你到今天活了多少天?

     

     

    作业:

             1.有一个字符串:“abcdef我爱java”,需求:将字符串逆序输出。    

             2.用StringBuilder判断字符串是否是回文(对称字符串)

     

             3.   

    String s = " abc abc Abc ";
                   System.out.println(s);
                  
                   System.out.println(s.charAt(1));
                   System.out.println(s.charAt(2)); 
                   System.out.println(s.indexOf("bc"));
                   System.out.println(s.indexOf("bc",3));
                   System.out.println(s.lastIndexOf("bc"));
                   System.out.println(s.indexOf("xxx"));
                   System.out.println(s.substring(5)); 
                   System.out.println(s.substring(5, 10));
                   System.out.println(s.trim());

                  

             4.class A{

    main(String[] args){
                   String s = "good";
                   char[] ch = {g,h,f};
                   A a = new A();
                   a.change(s,ch);
                   System.out.println(s);  //good
                   System.out.println(ch); //khf
             }
            
             public void change(String s1,char[] chs){
                   s1 = "mm";
                   chs[0] = "k";
            
             }
      
       }

      

       写出输出结果,并画出内存示意图