堆栈的了解以及String的方法和正则方法

来源:互联网 发布:安卓数据加密 编辑:程序博客网 时间:2024/05/05 11:02
CurrentTimeMillis

//得到1970-01-01到当前时间的毫秒数
//        long x = System.currentTimeMillis();
//        System.out.println(x);


Finalize()是object中定义的。表示在垃圾回收器回收当前对象之前,自动调用的方法。如果重写了该方法,可以做一些清理工作。


package Lerner9_20;

public class MyTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Integer a1=2;
        Integer a2=2;


        Integer b1=200;
        Integer b2=200;

        //将整型变量直接赋值给包装类变量时,如果在-128~127,是指向同一个对象。
        //查过这个范围,会新建对象
        System.out.println(a1 == a2);
        System.out.println(b1 == b2);
    }

}





堆 存放的new(对象)
栈存放的局部变量
数据段存放的类变量、常量
代码段存放方法的定义

安生命周期规律来进行存放!



String a ="abc";
String b ="abc";
String c =new String ("abc");
String d =new String ("abc");

System.out.println(a == b);
System.out.println(b == c);
System.out.println(c == d);

System.out.println(a .equals( b));
System.out.println(b .equals (c));
System.out.println(c.equals (d));

true
false
fasle
true
true
true
因为“==”比较的是地址,而.equals也是比较抵制,但是如果进行了String重写,就是变成了比较他们的内容!!!!!!!!!



String c =new String("abc");
c变量指向堆中的字符串对象,但是产生堆中的字符串对象之前,会先在常量区中,产生字符串常量对象。然后以常量对象为模板,考入堆中的字符串对象。




正则表达式:
String rex="[a-zA-Z0-9]{3,20}@[A-Za-z0-9]{2,10}[.](com|cn|net)";
[]:表示[]中描述的任意字符,表示只能匹配一个字符
列子:[3000-4000]其实是这么看的3,0,0,0-4,0,0,0
{3,20}:表示前一个规则最少出现3次,最多出现20次。
{3,}:表示最少出现3次,没有上限
{3}:表示只能出现3次,不能多不能少
|:表示或者
*:等价于{0,},可以出现,可以不出现,如果出现,没有上限限制
+:等价于{1,},至少出现一次,没有上限限制。
?:等价于{0,1},可以出现,可以不出现。如果出现,最多一次
. :表示任意字符
\d:表示[0-9],表示数字
\s:表示空格或回车
\w:等价于[a-zA-Z0-9_],表示合法标识符

[wb](ad|eed) 匹配wad,wwed,bad和beed
(pro|anti)-OOP 匹配pro-OOP and anti-OOP

(AZ|CA|CO)

\u4e00-\9fa5表示汉字
列子String rex="[a-zA-Z\\u4e00-\\9fa5]{2,}"

//将数字替换掉
String x="asdasd4121gqgq2415";
        x=x.replaceAll("\\d+", "");





字符串具有长度不可变化的特性,当对字符串进行添加、替换、删除是,不会改变字符串的内容,而是产生一个新字符串。
例如
String x ="afafasfa";
x.replace("af","*")
输出仍然是afafasfa
只有x=x.replace才是替换后的结果


StringBuffer是缓冲区的对象,当对StringBuffer做添加、替换、删除时,直接改变StringBuffer的内容,不会产生新对象。
如果需要对字符串做频繁操作时,一般先转化为StringBuffer。操作完成后,再通过调用toString()转化为字符串。
0 0
原创粉丝点击