黑马程序员---2015.6.19java笔记---String--StringBuffer--基本数据类型

来源:互联网 发布:mac返回桌面 编辑:程序博客网 时间:2024/06/07 19:15

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.String类

    字符串是一个特殊的对象。字符串一旦初始化就不可以被改变。
    
    String str1 = "abc"; //str1是一个类类型变量,"abc"是一个对象。
                                        //字符串最大的特点:字符串一旦初始化就不可以被改变。
                str1 = "aa"    //str1重新指向了新的对象,而对象"abc"还在内存中,并没改变。                    
                
    String str2 = new String("abc");
    str1和str2有什么区别?
        str1在内存中有一个对象。
        str2在内存中有两个对象,new一个,"abc"一个    
2. str1 == str2;//false;
     str1.equals(str2);//true String类重写了Object类中的equals方法
3.String s1 = "abc"    ;
    String s2 = "abc";
    s1 == s2;true//因为字符串存在于常量池中,s2创建时会在常量池中查看是否已存在,已存在就不在创建新的对象。
                             //所以s2也指向同一个对象"abc";
4.方法区,静态变量,常量池是在同一片内存中
5.String s = "hello java";
    String s1 = s.replace('a','n');
    输出:s:hello java   //一旦初始就不能被改变
                s1:hello jnvn
    如果 String s1 = s.replace('p','n');            
                因为s中没有p,所以s1输出: hello java
6.StringBuffer是字符串缓冲区
    是一个容器.
        特点:
            1.长度可以变化。
            2.可以直接操作多个数据类型
            3.最终会通过toString方法变成字符串            
    a.存储
            StringBuffer append();将指定数据添加到已有对象的后面。
            StringBuffer insert(index,数据);可以将数据插入指定index
    b.删除
            清空缓冲区。sb.delete(0,sb.length());
            删除特定的字符。sb.deleteCharAt(2);
    c.获取
    d.修改
            StringBuffer replace(start,end,string);//不包含end位
            sb.setCharAt(2,'a');返回void
    e.翻转reverse        
    f.将字符串指定开始到结束段的字符,放入字符数组dst中,从dstBegin位置开始存放
        getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
7.在JDK1.5版本之后出现了StringBuilder
    StringBuffer是线程同步 多线程用方便
    StringBuilder是线程不同步        单线程方便
8.JDK升级三个因素
    a.提高效率
    b.简化书写
    c.提高安全性
9.基本数据类型对象包装类    
            基本数据类型对象包装类的最常见作用?!
            就是用于基本数据类型和字符串类型之间做转换。
            a.基本数据类型转换成字符串
                基本数据类型+""
                基本数据类型.toString(基本数据类型值);
                如: Integer.toString(34);
            b.字符串转换成基本数据类型
                xxx a = Xxx.parseXxx(String s); //必须传入数字格式的字符串
                long l = Long.parseLong("123");//将字符串转成long型 方式一
                
                Long l =  new Long("123"); //将字符串转成long型 方式二
                long l = l.longValue();
                
            c.十进制转其他进制
                toBinaryString(int i); 转成 2进制
                toOctalString(int i) ;转成 8进制
                toHexString(int i) ;转成 16进制
            d.其他进制转化成十进制
                int x = Integer.parseInt("110,10");                    
10.
    1.5版本以后特性
    
        Integer x = 4;//自动装箱        
        x = x +5;//进行了自动拆箱。先,拆箱将Integer变成int,然后再求和,最后再将int装箱成Integer
        
        Integer m = 128;
        Integer n = 128;
        System.out.println(m == n);//false
        
        Integer a = 127;
        Integer b= 127;
        System.out.println(m == n);//true 因为a和b指向了同一个Integer对象
                                                         //因为在数值byte范围内,对于新特性,如果该数值已经存在,则不会开辟新的空间
                                                         //byte范围 -128---127
       
0 0
原创粉丝点击