关于Java的一些小总结-正则表达式、包装类、日期操作、Object类型

一:包装类

    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:判断传进来的参数是不是本类型
                如果是同一类型,再去比较属性。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页