一:包装类

    1.意义:把基本数据类型转换成引用数据类型操作。


               jdk5.0以后支持自动拆装箱操作。


    2.拆箱:引用数据类型转换成基本数据类型


      int a = new Integer("4");//自动拆箱


    3.装箱:  把基本数据类型转换成引用数据类型


       Double a = 3.14F;//编译错误


       Float  b = 3.14F;//编译正确


    4.编译器在检查基本数据类型变量的方法时,


        先检查是否有本身或者是自动转换的基本数据类型的方法


        如果有,就调用。


        如果没有,检查本身包装类的方法。


        有,就调用,没有就编译错误。

public static void main(String[] args) { 

 byte num = 5; 

 show(num);// 输出的short:5 

  

     } 

     public static void show(int a){ 

 System.out.println("int:"+a); 

     } 

     public static void show(short a){ 

 System.out.println("short:"+a); 

     } 

     public static void show(Byte a){ 

 System.out.println("Byte:"+a); 

     } 

     public static void show(Long a){ 

 System.out.println("Long:"+a); 

     } 

     public static void show(float a){ 

 System.out.println("float:"+a); 

     } 

     public static void show(Double a){ 

 System.out.println("Double:"+a); 

     }



    5.包装类提供将字符串转换成相应的基本数据类型


        parseXXX(String str);


        XXX:对应的是基本数据类型名


        reg:


        int num = Integer.parseInt("123");


            //结果为int类型的123


        String str = "3.14";


        double d = Double.parseDouble(str);


        double d = Double.parseDouble("3.14a");


        //上述代码会报异常


        NumberFormatException,数字格式异常。


    6.提供了其他方法


       ①:提供将基本数据类型转成二进制以字符串的形式。


          int num = 5;


          String str = Integer.toBinaryString(num);


       ②:提供将基本数据类型转成16进制以字符串的形式。


          int num = 5;


          String str = Integer.toHexString(num);



二、日期操作

    1:日期类型:


      Date:java.util包下的类型


        获取当前系统时间的方式:


            Date now = new Date();


            //获取的是日期格式的当前系统时间


             方法:


           getTime():获取毫秒数。long类型


           setTime(long time)


           System.currentTimeMillis();


           //获取的是距1970年1月1日时间点的毫秒数


    2:日期格式化类型:


       SimpleDateFormat:


          定义格式,


          ①:可以格式化日期,将日期变成字符串


             format(Date date)


          ②:可以将字符串转换成日期


                parse(String date)


                可能会出现ParseException异常


               常用的格式字符:


               y:年


               M:月


               d:日


               H:时,24制


               h:时,12制


               m:分


               s:秒


               E:星期


               a:上下午


    3:日历类型:Calendar,是一个接口,不能实例化。有很多子类型


           最常用的是格力高里历法(大多数国家通用的历法,即我们说的阳历)


               1:作用是更方便的计算日期分量。


               2:获取子类型的方法


                    getInstance():获取子类型,会自动划分时区,是静态方法



三、正则表达式:

         什么是正则表达式?


         是一个有规律的,有特定意义的一串字符,通常用来


         进行匹配,查找等操作。


         常用符号:


         *:任意字符。


         [abc]:表示abc中的任意一个字母


         [^abc]:表示除了abc之外任意字符


         [0-9]:表示0-9中的任意一个数字


         [a-z]:表示a-z中的任意一个字母


         [0-9a-zA-Z_]:表示这些字符中的任意一个     


         [a-z&&[^abc]]:表示a-z中除了abc之外的任意一个字母


         


         [\d]:表示0-9中的任意一个数字


         [\D]:表示非数字中任意一个字符


         [\w]:表示单词字符中任意一个 相当于[0-9a-zA-Z_]


         [\W]:除了单词字符外的任意一个  


         \s:表示[\n\t\r\f],空白


         \S:非空白


    


         \d*:表示有0个或0个以上数字


         \d?: 表示没有或者有1个的数字


         \d+:表示有1个或者是1个以上的数字


         \d{n}:标有有n个数字


         \d{n,}:表示有n个或n个以上的数字


         \d{n,m}:表示有n-m个数字


    


         用()进行分组


         ():表示分组


        "(186)|(137)\d{8}":


         表示匹配186的手机号,或者137的手机号


        "^":表示从头开始检查字符串是否匹配正则表达式


        "$": 表示检查字符串的结尾是否匹配正则表达式


        "^[\d]{8}$":表示从头到尾检查字符串是否完全匹配


        在写字符串时,想表达"\"这个字符,必须在前面添加转义字符


        转义字符:\


        有一些特殊字符都需要被转义,才行。






        String支持正则表达式:


             1:matchs(String  reg):


                  参数为正则表达式,用来判断字符串是否匹配正则表达式


                  匹配:返回true


                  不匹配:返回false


             2:split(String reg):


                   用来拆分字符串:用符合正则表达式的子字符串拆分成字符串数组。


                   返回值类型是字符串数组。 


     


                   如果字符串的首位就符合正则表达式,会拆出一个空字符串""元素


                   在字符串的末尾如果符合了,不会拆分出一个空字符串元素。


             3:replaceAll(String reg,String new):


                   作用是使用new这个字符串替换字符串中符合reg的子串


Object类型:


      是所有引用类型的父类,在引用类型的顶端。


      它的引用变量可以指向任何类型的一个对象


        Object obj = "aaaa";


           obj = new int[3];


           obj = new Scanner(System.in);


        面试题:怎么使用数组存一些类型不同的数据


            用Object定义一个数组


            Object[] arr = new Object[3];


             arr[0] = "aaa";


             arr[1] =  new int[3];


             arr[2] =  new Scanner(System.in); 


        Object类型中的常用方法:


           1:toString():


           在Object类型中,方法的返回为"类全名@散列码"


     


          在自定义类型时,如果不手写继承Object,系统会默认提供继承Object


           toString()方法就会被继承。


         继承后的方法返回的字符串没有意义。我们应该重写toString():


         用来描述new出来的对象的信息。


         重写toString():默认规则如下:


         "类全名[属性名=属性值,属性名=属性值]" 


           toString():当想输出显示对象信息时,会默认调用这个方法


          2:equals():


         在Object类型中,equals()相当于==,比较的是地址,是不是同一个对象。


         在大多数情况下,我们不比较是不是同一个对象,而应该比较


         这两个对象的内容是否一样。


         自定义的类继承过来的方法就不满足要求了。


         应该重写equals()


         重写规则:


         public boolean equals(Object obj){


         


         }


          1:应该判断传进来的参数是不是null          


          2:判断传进来的参数是不是自己


          3:判断传进来的参数是不是本类型


                如果是同一类型,再去比较属性。