黑马程序员技术交流社区

标题: 【济南中心】JAVA编程阶梯:基础篇之第十三章 [打印本页]

作者: 小鲁哥哥    时间: 2016-9-6 19:36
标题: 【济南中心】JAVA编程阶梯:基础篇之第十三章
本帖最后由 小鲁哥哥 于 2016-9-6 19:35 编辑

【济南中心】JAVA编程阶梯:基础篇之第十三章
StringBuffer类的概述:
StringBuffer是字符串变量,它的对象是可以扩充和修改的。
它是线程安全的可变字符序列
StringBuffer和String的区别:
String是一个不可变的字符序列
StringBuffer是一个可变的字符序列
StringBuffer类的构造方法:
[Java] 纯文本查看 复制代码
public final class StringBuffer extends AbstractStringBuilder implements
        Appendable, Serializable, CharSequence {
                        public StringBuffer(){}//无参构造方法
                        public StringBuffer(int capacity){
                                //指定容量的字符串缓冲区对象
                                super(capacity);
                        }                        
                        public StringBuffer(String str){
                                //指定字符串内容的字符串缓冲区对象
                                super(str)
                        }
                }
Stringbuffer方法的使用:
        public int capacity():返回当前容量。        理论值(不掌握)
        public int length():返回长度(字符数)。 实际值
例子:
[Java] 纯文本查看 复制代码
StringBuffer stringBuffer = new StringBuffer();//创建一个StringBuffer对象
stringBuffer.length();//获取StringBuffer的长度
StringBuffer的添加功能:
* public StringBuffer append(String str):
                * 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
        * public StringBuffer insert(int offset,String str):
                * 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer的删除功能:
public StringBuffer deleteCharAt(int index)://删除指定位置的字符,并返回本身
public StringBuffer delete(int start,int end)://删除从指定位置开始指定位置结束的内容,并返回本身
StringBuffer的替换和反转功能:
A:StringBuffer的替换功能
        public StringBuffer replace(int start,int end,String str)://从start开始到end用str替换
B:StringBuffer的反转功能
        public StringBuffer reverse()://字符串反转
StringBuffer的截取功能及注意事项:
A:StringBuffer的截取功能
        public String substring(int start)://从指定位置截取到末尾
        public String substring(int start,int end)://截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
B:注意事项
        注意:返回值类型不再是StringBuffer本身
StringBuffer和String的相互转换:
A:String -- StringBuffer
        * a:通过构造方法
        * b:通过append()方法
B:StringBuffer -- String
        * a:通过构造方法
        * b:通过toString()方法
        * c:通过subString(0,length);
把数组转成字符串:
案例演示
        * 需求:把数组中的数据按照指定个格式拼接成一个字符串
[Java] 纯文本查看 复制代码
public static void main(String[] args){
String[] strings = { "a", "b", "c", "d" };
StringBuffer stringBuffer = new StringBuffer();
for (String string : strings){
stringBuffer.append(string);
}
System.out.println(stringBuffer.toString());
}

StringBuffer和StringBuilder的区别:
StringBuffer 字符串变量(线程安全)

StringBuilder 字符串变量(非线程安全)

java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同
冒泡排序:
[AppleScript] 纯文本查看 复制代码
public class bubbleSort {  
public  bubbleSort(){  
      int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};  
     int temp=0;  
     for(int i=0;i<a.length-1;i++){  
         for(int j=0;j<a.length-1-i;j++){  
         if(a[j]>a[j+1]){  
             temp=a[j];  
             a[j]=a[j+1];  
             a[j+1]=temp;  
         }  
         }  
     }  
     for(int i=0;i<a.length;i++)  
         System.out.println(a);     
}  
}  
选择排序:
[Java] 纯文本查看 复制代码
public void SelectSort(int[] array) {
        int i, j, k;// 分别为有序区,无序区,无序区最小元素指针
        for (i = 0; i < array.length; i++) {
            k = i;
            for (j = i + 1; j < array.length; j++) {
                if (array[j] < array[k])
                    k = j;
            }
            if (k != i)// 若发现最小元素,则移动到有序区
            {
                int temp = array[k];
                array[k] = array;
                array = array[temp];
            }
        }
    }

二分查找:
[Java] 纯文本查看 复制代码
public static int branchSearch(int[] array, int searchNum) {
        if (array == null)
            throw new NullPointerException("Null Referrence");
        if (array.length == 0)
            throw new IllegalArgumentException("Array Length is Zero");
        int low = 0, high = array.length;
        int middle = (high + low) / 2;
        int index = -1;
        if (searchNum < array[0] || searchNum > array[array.length - 1])
            return index;
        while (middle >= 0) {
            if (array[middle] == searchNum) {
                index = middle;
                break;
            }
            if (searchNum > array[middle]) {
                low = middle;
            } else {
                high = middle;
            }
            middle = (low + high) / 2;
        }

        return index;

    }
Arrays类的概述和方法使用:
A:Arrays类概述
        * 针对数组进行操作的工具类。
        * 提供了排序,查找等功能。
B:成员方法
        * public static String toString(int[] a)
        * public static void sort(int[] a)
        * public static int binarySearch(int[] a,int key)
基本类型包装类的概述:
A:为什么会有基本类型包装类
        * 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
B:常用操作
        * 常用的操作之一:用于基本数据类型与字符串之间的转换。
C:基本类型和包装类的对应
                byte                         Byte
                short                        Short
                int                                Integer
                long                        Long
                float                        Float
                double                        Double
                char                        Character
                boolean                        Boolean
Integer类的概述和构造方法:
A:Integer类概述
        * 通过JDK提供的API,查看Integer类的说明

        * Integer 类在对象中包装了一个基本类型 int 的值,
        * 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,
        * 还提供了处理 int 类型时非常有用的其他一些常量和方法
B:构造方法
        * public Integer(int value)
        * public Integer(String s)
C:案例演示
        * 使用构造方法创建对象
String和int类型的相互转换:
A:int -- String
        * a:和""进行拼接
        * b:public static String valueOf(int i)
        * c:int -- Integer -- String(Integer类的toString方法())
        * d:public static String toString(int i)(Integer类的静态方法)
B:String -- int
        * a:String -- Integer -- int
        * public static int parseInt(String s)
JDK5的新特性自动装箱和拆箱:
A:JDK5的新特性
        * 自动装箱:把基本类型转换为包装类类型
        * 自动拆箱:把包装类类型转换为基本类型
B:案例演示
        * JDK5的新特性自动装箱和拆箱
        
        * Integer ii = 100;
        * ii += 200;
C:注意事项
        * 在使用时,Integer  x = null;代码就会出现NullPointerException。
        * 建议先判断是否为null,然后再使用。


锦绣齐鲁.jpg (77.76 KB, 下载次数: 56)

锦绣齐鲁.jpg

作者: fanglingfei    时间: 2016-9-7 11:49
好东西,支持.{:3_46:}
作者: 秋冬    时间: 2016-9-7 21:26
fanglingfei 发表于 2016-9-7 11:49
好东西,支持.

嗯 不错
作者: 顾祯杰    时间: 2016-9-7 21:32
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: cao791203348    时间: 2016-9-7 22:53
好东西!赞赞赞
作者: 许华洋    时间: 2016-9-7 23:33
赞!!!!!!!!!!!!
作者: 你好吗520666    时间: 2016-9-7 23:36
66666666666666666666666
作者: 稻香灬    时间: 2016-9-7 23:36
赞赞!!!!!
作者: 稻香灬    时间: 2016-9-7 23:43
赞赞赞赞赞
作者: 小胖妞    时间: 2016-9-8 00:11
整理的不错,喜欢
作者: lijuntao    时间: 2016-9-8 12:27
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
作者: taozhihui    时间: 2016-9-8 21:43
这笔记不错啊{:3_46:}
作者: cao791203348    时间: 2016-9-9 00:35
66666666666666顶起
作者: HelloKHM    时间: 2016-9-9 00:40
好东西系
作者: 其实我是黑马    时间: 2016-9-9 11:05
学Android会同步更新Android7课程吗/
作者: 小鲁哥哥    时间: 2016-9-9 11:46
其实我是黑马 发表于 2016-9-9 11:05
学Android会同步更新Android7课程吗/

现在课程正在出,以后会有的
作者: 小鲁哥哥    时间: 2016-9-9 11:46
其实我是黑马 发表于 2016-9-9 11:05
学Android会同步更新Android7课程吗/

现在课程正在出,以后会有的
作者: 其实我是黑马    时间: 2016-9-9 19:50
小鲁哥哥 发表于 2016-9-9 11:46
现在课程正在出,以后会有的

{:2_36:}看往期学安卓用eclipse 现在更新课程用 Android Studio 了吗?
作者: 愿望变美    时间: 2016-9-9 23:31
支持一下,图片也美啊
作者: 小东姐姐    时间: 2016-9-10 11:24
给力!!值得一看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2