码迷,mamicode.com
首页 > 其他好文 > 详细

StringBuffer类、Arrays工具类、包装类、Character类

时间:2021-04-05 12:40:44      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:折半查找   类类型   通用   技术   arch   调用   拼接   定义   数字   

StringBuffer类、Arrays工具类、包装类、Character类

StringBuffer

  • 是一个可变的字符串,是线程安全的字符串(效率低)用于拼接字符串;

构造方法

  • pubilc StringBuffer(String str); 指定字符串内容的字符串缓冲区对象

添加功能

  • pubilc StringBuffer append(String str):可以把任意类型数据,添加到字符串缓冲区里面,并返回字符串缓冲区本身;

技术图片

StringBuffer 可以把任意类型数据添加到字符串缓冲区中,开辟的是一块空间,长度是可变的

翻译:在A方法中,如果要将一个字符串到B方法中做添加功能,则直接调用B方法,无需接收返回参数;因为地址值是一个,B方法中更新了字符串内容。A方法按照地址值去找,找到就是最新的内容;

  • public StringBuffer inser(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身;

StringBuilder类

StringBuilder类:一个可变的字符串,不同步(不安全,效率高)。

此类提供一个与StringBuffer兼容的API,但不保证同步,也就是不安全,但是效率高;

StringBuilder的使用与StringBuffer一模一样:

StringBuilder和StringBuffer类的 构造方法 和 方法通用

面试题

1、String类和StringBuffer、StringBuilder 的区别?

A:String类的内容时不可变的,StringBuffer和StringBuilder的内容时可变的

B:StringBuffer是同步的线程安全的,效率低的; StringBuilder是不同步的线程不安全的,效率高的

2、StringBuffer和数组有什么区别?

二者都可以看做一个容器,装其他的数据;

但是:StringBuffer的数据最终是一个字符串数据。

而数组可以放置多种数据,但必须是同一种数据类型的;

3、形式参数问题

形式参数:

? 基本类型:形式参数的改变不影响实际参数;

? 引用类型:形式参数的改变直接影响实际参数;

  • String作为参数传递:
    • 注意:String作为参数传递,效果和基本类型作为参数传递是一样的;
  • StringBuffer作为参数传递
    • StringBuffer作为参数传递时,形式参数的改变直接影响实际参数;因为改变的是地址值;

数组高级

冒泡排序

原理:
相邻元素,两两比较。大的往后放。第一次完毕后,最大值就出现在了最大索引处。
同理,继续,即可得到一个排好序的数组。

规律:
1、两两比较,大的往后放。
2、每一次比较完毕后,下一次比较的时候就会减少一个元素的比较。
3、第一次比较,有0个元素不比
第二次比较,有1个元素不比
第三次比较,有2个元素不比
....
4、总共需要比较数组长度 - 1次

选择排序

原理:
从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处

规律:
1、第一次从0索引开始和其他的进行比较
第二次是从1索引开始和其他的进行比较
......
2、最后一次是数组长度-2的索引元素和数组长度-1的索引元素进行比较。

基本查找

  • 适合数组元素无序 - 从头找到尾(数组遍历!)

二分查找

  • 折半查找:当数组元素有序时(集合有序时,可以使用)

思想:每次都猜中间的那个元素,比较大或者小,就能减少一半的元素

思路:
A:定义最小索引,最大索引
B:计算出中间索引
C:拿中间索引的值和要查找的元素进行比较
				相等:就直接返回中间的索引
				不相等:
							大了,往左边找
							小了,往右边找
D:重新获取最小索引或者最大索引
							大了,往左边找
											max = mid(中间值)-1;
							小了,往右边找
											min = mid+1;
E:回到B的位置

Arrays工具类:针对数组进行操作的工具类

此类包括操作数组的各种方法;比如排序和查找

常用方法

1、static String toString(int[] a) :把数组转换成字符串
2、static void sort(int[] a) 对数组进行排序
3、static int binarySearch(int[] a, int key) 使用二分法查找,返回索引

基本包装类

为了对基本数据类型 进行更多的操作,更方便的操作,JAVA就针对每一种基本数据类型提供了对应的类类型。-->包装类类型

技术图片

Integer类

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

技术图片

自动拆箱 装箱

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

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

技术图片

Character类

Character 类在对象中包装一个基本类型 char 的值。

Character 类型的对象包含类型为 char 的单个字段。

**此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。 **

判断方法

static boolean isLowerCase(int codePoint) 确定指定字符(Unicode 代码点)是否为小写字母。
static boolean isUpperCase(char ch) 确定指定字符是否为大写字母
static boolean isDigit(char ch) 确定指定字符是否为数字。

转换方法

static char toUpperCase(char ch) 把给定的字符转换为大写字符
static int toLowerCase(int codePoint) 把给定的字符转换为小写字符

StringBuffer类、Arrays工具类、包装类、Character类

标签:折半查找   类类型   通用   技术   arch   调用   拼接   定义   数字   

原文地址:https://www.cnblogs.com/hellokaid/p/14613939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!