包装类、字符串方法、时间处理、正则表达式

来源:互联网 发布:远程协助软件steam 编辑:程序博客网 时间:2024/06/02 13:33
一、
包装类:
为什么需要包装类:并不是纯粹面向对象的语言,至少基本数据类型并不面向对象,但是为了操作,也要把他们写成对象,然后就有了包装类
装箱:把基本数据类型转换成包装类对象
             Integer i=new Integer(100);
    Integer i=200;自动装箱jdk5.0之后对编译器赋予的功能
拆箱:把包装类对象转换成基本数据类型
             int i=new Integer(300).intValue;手动拆箱
    int i=new Integer(400);自动拆箱,编译器赋予的功能
包装类中的parseInt等等方法需要捕获异常,否则会出现数字格式异常


Integer i 1=123;
Integer i2=123;
i1==i2  true;在Integer类中的对象的值在【-128,127】之间的时候,把比较对象看作比较值是否相等。(把这之间的地址看作是一个地址)
好处:提高效率
Integer i3 =1234;
Integer i4=1234;
i3==i4 false;
i3.equals(i4);true
二、
字符串的三种表达:
String  StringBuilder  StringBuffer
计算机之父:图灵
java字符串是由Unicode编码组成的字符序列
String类型的表现形式:把内容用双引号括起来
char类型的表现形式:把内容用单引号括起来
String类型的字符串长度是不可变的//在源码中是这样表现的:private final char value【】;
原因:1、final常量,只能赋值一次,说明char数组引用值不会改变
             2、他是私有的,然后没有提供公共的修改方式,所以其中数组的元素也不能改变
String s =“hello”;
s=s+"world";这个时候s引用指向的地址就改变了
String在底层就是对char类型数组的操作
char和String之间的转换是靠的Ascll码
//String重写了equals方法,比较两个String的值是否相同,相同为true,否则false
在堆内存中有一个常量池
String.里的equalsIgnorecase():不区分大小写判断值
String里的.startsWith("  qee"); 判断是否以指定字符串开头的
String.里的endsWith(" das");判断是否以指定字符串结尾的
String里的toUpperCase();转换大小写
String里的valueOf( );是把其他形式的数据转换成字符串形式


区别:
StringBuilder:可变的字符序列,线程不安全,效率高
StringBuffer:可变的字符序列,线程安全,效率低
字符串多用于局部变量,不涉及到线程,所以我们要选择效率高的


1、char [ ] value--------------》就是字符串序列可变的原因。
2、数组的扩容:expandCapacity


;默认default修饰符,只在同一个包中有效
StringBuilder s = new StringBuilder();编译器已经创造了长度为16的char型数组
Stringbuilder能形成方法链的原因:是因为返回的是他本身对象
数组的插入很不方便,但是查询很方便
indexOf("f");返回字符串所在字符的索引位置
reverse将字符串翻转


总结:String   StringBuilder   StringBuffer区别
面试题(常考):
1、判断几个对象
2、为什么是可变的字符序列


三、
时间处理相关的类:
1、java.util.Date类
      表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示
      Date对象调用getTime()方法,得到的是当前时间的毫秒值
      System.getCurrentTimeMillis()也是得到当前时间的毫秒值,得到的都是long型
      //after before getTime()  构造函数


       DateFormat和SimpleDateFormat
       DateFormat df=new DateFormat("yyyy-mm--dd  hh:mm:ss");
       //将时间对象按照格式化字符串,转化成对应的字符串
        Date d =new Date(99328793734);
        String s=df.format(d);
      
       //将字符串转化成时间对象
        String t2=“1977-7-7”;

        DateFormat df=new DateFormat("yyyy-mm--dd ");

       也可以用SimpleDateFormat

         try{
         Date d =df.parse(t2);
         }catch( ){ }
2、java.util.Calendar       
3、java.util.


四:
正则表达式:字符串的处理利器
正则法则常见功能:
1.匹配: matches()
2.替换:replaceAll( )
3.获取:Match Pattern
Pattern p=Pattern.compile(regex);
 Matcher m = p.matcher("str");
 boolean b = m.matches();


0 0
原创粉丝点击