黑马程序员——基础知识——基本数据类型包装类

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

Day13   

13.01 StringBuffer类的概述

       1、通过JDK提供的API,查看StringBuffer类的说明(属于lang包下,用final修饰,是一个类似与String的字符串缓冲区,但不能通过+号连接修改,但通过调用方法可以改变该序列的长度和内容)

              线程安全的可变字符序列,安全导致效率较低

       2、StringBuffer和String的区别

              String是一个不可变的字符序列,一旦初始化就不可改变

              StringBuffer是一个可变的字符序列,通过方法对其进行改变

 

13.02 StringBuffer类的构造方法

       1、public StringBuffer():无参构造方法:构造一个不带字符的字符串缓冲区,其初始容量为16个字符,如果内部缓冲区溢出,则此容量自动增大。从1.5开始,补充了一个单线程的等价类StringBuilder,功能相同,但不执行同步,速度更快。

              public StringBuffer(int capacity):指定容量的字符串缓冲区对象,给一个缓冲区大小

              public StringBuffer(String str):指定字符串内容的字符串缓冲区对象,直接传个字符串

              StringBuffer(CharSequence seq)含有与CharSequence相同的字符,而CharSequence的子类包括String,StringBuffer,StringBuilder

       2、StringBuffer的方法

              public int capacity():返回当前容量   理论值   不掌握

              public int length():返回长度(字符数)  实际值

       3、案例演示:构造方法和长度方法的使用


13.03 StringBuffer的添加功能

publicStringBuffer append(String str):

       可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

publicStringBuffer insert(int offset,String str):

       在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身



13.04 StringBuffer的删除功能

       Public StringBuffer deleteCharAt(intindex):

              删除指定位置的字符,并返回本身

       Public StringBuffer delete(int start ,int end):

              删除从指定位置开始指定位置结束的内容,并返回本身



13.05 StringBuffer的替换和反转功能

publicStringBuffer replace(int start,int end,String str):从start开始到end用str替换

publicStringBuffer reverse():字符串反转



13.06 StringBuffer的截取功能及注意事项

Public Stringsubstring(int start)从指定位置截取到末尾

Public Stringsubstring(int start,int end)包含头,不包含尾截取

注意事项:返回值类型不再是StringBuffer本身,而是字符串



13.07 StringBuffer和String的相互转换

       String – StringBuffer

              1、通过构造方法

              2、通过append()方法

       StringBuffer --String

              1、通过构造方法

              2、通过toString()方法   

              3、通过substring(0,length);



13.08 把数组转成字符串

       1、案例演示

       需求:把数组中的数据按照指定格式拼接成一个字符串

       


13.09 字符串反转

       1、案例演示

       需求:把字符串反转



13.10 StringBuffer和StringBuilder的区别

       1、StringBuilder的概述,通过API了解

       2、面试题

              StringBuffer和StringBuilder的区别

              StringBuffer是jdk1.0版本的,是线程安全的,效率低

              StringBuilder是jdk1.5版本的,是线程不安全的,效率高

             

              String和StringBuffer、StringBuilder的区别

              String是一个不可变的字符序列

              StringBuffer和StringBuilder是可变的字符序列

              作为参数传递的时候,也不同

 

13.11 String和StringBuffer分别作为参数传递

       1、形式参数问题

              String作为参数传递

              StringBuffer作为参数传递

       2、案例演示



所以,这也算一个区别,做参数类型传递的时候,String算基本数据类型,StringBuffer和StringBuilder是引用数据类型

 

13.12 数组高级冒泡排序原理图解

       数组元素{24,69,80,57,13}

       请对数组元素进行排序

       第一次:比较4次;第二次:比较3次;第三次:比较2次;最后比较1

      

       冒泡排序:相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处(冒最大的泡),第二次比较,最大索引位不参与比较,第二大值又出现在了最后….

 

13.13 数组高级冒泡排序代码实现


13.14 数组高级选择排序原理图解

       对数组元素进行排序

 

       选择排序:

              用一个索引位置上的元素,依次与其他索引位置上的元素比较,小的在前面,大的放后面。从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处,和冒泡排序相反的排序

 

13.15 数组高级选择排序代码实现



13.16 数组高级二分查找原理图解


       1、二分查找也叫折半查找,查找元素所对应的索引

       就是猜数字游戏,1-100,喊个中间数,然后缩小范围,继续喊中间数,提高了寻找的效率,比挨个查找效率高很多

       前提:数组元素有序

       最小值min 固定是 0

       最大值max = arr.length -1

       中间值mid = (min + max) / 2



13.17 数组高级二分查找代码实现及注意事项

       1、案例演示

       2、注意事项

              如果数组无序,就不能使用二分查找

              因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引



13.18 Arrays类的概述和方法使用

       1、概述:

针对数组进行操作的工具类工具类方法一般都是静态的,构造方法私有

提供了排序、查找等功能

       2、成员方法

              Public static StringtoString(int[] a)

              Public static void sort(int[] a)

              Public static intbinarySearch(int[] a,int key)



13.19 基本类型包装类的概述

       1、为什么会有基本类型包装类

              将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

       2、常用操作

              常用的操作之一:用于基本数据类型与字符串之间的转换

      

3、基本类型和包装类的对应

              Byte             byte

              Short             short

              Integer         int   final修饰Integer不能被继承,静态的

              Long             long

              Float             float

              Double          double

              Character    char

              Boolean        Boolean




13.20 Integer类的概述和构造方法

       1、通过JDK提供的API,查看Integer类的说明

              Integer类在对象中包装了一个基本类型int的值

              该类提供了多个方法,能在int类型和String类型之间互相转换

              还提供了处理int类型时非常有用的其他一些常量和方法

       2、构造方法

              Public Integer(int value)

              Public Integer(String s)

       3、案例演示

              使用构造方法创建对象



13.21 String和int类型的相互转换

       int-----String

              1、和“”进行拼接

              2、public static String valueOf(int i)

              3、int ---- Integer ---- String  (Integer类的toString方法)

              4、public static String toString(int I )(Integer类的静态方法)

       String --- int

              1、String ---- Integer ----int

                     Public static int parseInt(Strings)



13.22 JDK5的新特性自动装箱和拆箱

       1、jdk5的新特性

              自动装箱:把基本类型装换为包装类型

              自动拆箱:把包装类型转换为基本类型

       2、案例演示

              Integer ii = 100;

              Ii += 200;

       3、注意事项

              在使用时,Integer x = null;代码就会出现NullPointerException

              建议先判断是否为null,然后再使用



13.23 Integer的面试题




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值