JAVASE基础知识三——数组、字符串、包装类

一、Arrays工具类
java.util.Arrays类中提供的操作数组的方法
在这里插入图片描述
二、java.lang.String
1、构造方法

方法描述
String()无参构造
String(byte[] bytes)根据字节数组创建String对象
String(byte[] bytes, int offset, int length)根据字节数组bytes中从offset开始的length个字节生成String对象
String(byte[] bytes, int offset, int length, String charsetName)指定charsetName编码格式
String(byte[] bytes, String charsetName)把bytes字节数组中的字节根据charsetName编码格式转换为String对象
String(char[] value)根据字符数组创建String对象
String(char[] value, int offset, int count)把value数组从offset开始的count个字符生成 String对象
String(String original)根据已有的String创建新的String对象
String(StringBuffer buffer)根据StringBuffer对象创建String对象
String(StringBuilder builder)根据StringBuidler对象创建String对象

2、常用方法

方法返回值方法与描述
charcharAt(int index) 返回指定索引值对应的字符
intcompareTo(String anotherString) String类实现了Comparable接口, 重写Comaprable接口的方法,实现字符串大小的比较, 逐个字符比较,遇到第一个不相等的字符, 码值相减,如果第一个字符串大返回正数,第二个字符串大返回负数,相等返回0
intcompareToIgnoreCase(String str) 忽略大小写比较
Stringconcat(String str) 字符串的连接,在当前字符串的后面连接str
booleancontains(CharSequence s) 判断当前字符串中是否包含s子串
booleanendsWith(String suffix) 判断当前字符串是否以suffix结尾
booleanequals(Object anObject) 重写equals(),判断两个字符串的内容是否一样
booleanequalsIgnoreCase(String anotherString) 忽略大小写
static Stringformat(String format, Object… args) 字符串的格式化
byte[]getBytes() 返回当前字符串在默认编码格式下对应的字节数组
byte[]getBytes(String charsetName) 返回当前字符串在指定编码格式charsetName下对应的字节数组
voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把当前字符串[srcBegin,srcEdn)范围的字符复制到dst数组的dstBegin位置
inthashCode()
intindexOf(int ch) 返回字符ch在当前字符串第一次出现的位置,字符在计算机中存储的字符的码值, int num = ‘中’
intindexOf(int ch, int fromIndex) 返回字符ch在当前字符串从fromIndex开始第一次出现的位置
intindexOf(String str) 返回字符串str在当前字符串第一次出现的位置
intindexOf(String str, int fromIndex)
Stringintern() 返回当前字符串对应的字符串字面量
booleanisEmpty() 判断字符串是否为空串
intlastIndexOf(int ch) 返回字符ch在当前字符串最后一次出现的位置
intlastIndexOf(int ch, int fromIndex)
intlastIndexOf(String str) 返回字符串str在当前字符串最后一次出现的位置
intlastIndexOf(String str, int fromIndex)
intlength() 返回字符串中字符的个数
booleanmatches(String regex) 判断当前字符串是否匹配指定的正则表达式
StringreplaceAll(String regex, String replacement)把当前字符串中符合 regex正则表达式的字符替换为replacement
String[]split(String regex) 使用正则表达式regex分隔当前字符串
booleanstartsWith(String prefix)判断是否以指定的prefix开始
Stringsubstring(int beginIndex, int endIndex) 返回[beginIndex, endIndex)范围内的字符串
Stringsubstring(int beginIndex) 返回从beginIndex开始的字符串
char[]toCharArray() 把字符串转换为字符数组
StringtoLowerCase() 把大写字母转换为小写字母
StringtoString()
StringtoUpperCase() 小写转大写
Stringtrim() 去掉字符串前后的空白字符
static StringvalueOf(int i) 把基本类型转换为String对象
static StringvalueOf(Object obj) 把引用类型转换为字符串

3、字符串相关
String字符串对象是不可变的,每次进行字符串操作都会生成新的String对象
String类的value数组是final修饰的,不能修改, value数组的大小根据字符串的个数创建

  •  String  s1 = "hello"; 		s1字符串的value数组长度为5
    

当频繁进行字符串操作时,不建议使用String对象,而使用StringBuilder/StringBuffer

    1. StringBuilder/StringBuffer中的value数组没有final修饰符,可变的字符串, 可以修改它的value数组, 对sb对象进行操作,不会生成新的sb对象,不仅可以向value数组中添加字符,还可以对value数组扩容
    1. 最常用的方法是 : append()
    1. 默认初始化容量: 16
    1. 默认扩容: value.length * 2 + 2
    1. StringBuffer提供的操作都使用了synchronized修饰, 它是线程安全的,StringBuilder不是线程安全的

三、包装类
1、Java为每一个基本类型都提供了一个对应的包装类

基本类型对应的包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

2、包装类的常用方法

Integer(int)
Integer(String)
byteValue()/shortValue()/intValue()/longValue()/floatValue()/DoubleValue()
compareTo() / equals() 根据它的基本类型的值进行比较大小
parseXXX(String) 把数字字符串转换为基本类型
valueOf(String)/ valueOf(int) 把字符串/基本类型转换为包装类对象
toBinaryString()/ toOctalString()/toHexString() 转换为二进制/八进制/十六进制

以Integer为例

返回值方法与描述
bytebyteValue() 把包装类对象转换为byte基本类型数据
intcompareTo(Integer anotherInteger) 实现了Comparable接口, 每个包装类都有一个value字段对应的基本类型的数据, 根据基本类型数据value的值比较大小
booleanequals(Object obj) 重写equals(), 根据value字段的值判断
static intparseInt(String s) 把字符串转换为基本类型
static StringtoBinaryString(int i) 把整数i转换为二进制字符串
static StringtoHexString(int i) 把整数i转换为16进制字符串
static StringtoOctalString(int i) 八进制
StringtoString()
static StringtoString(int i) 把整数i转换为字符串
static IntegervalueOf(int i) 把基本类型转换为包装类对象
static IntegervalueOf(String s) 把字符串转换为包装类对象

3、装箱与拆箱
把基本类型转换为包装类对象就是装箱
把包装类对象转换为基本类型就是拆箱
在Java中,装箱与拆箱可以自动进行
注意:-128~127范围的整数装箱时,采用享元模式
-128~127范围内的整数装箱后生成的包装类对象存储在方法区的常量池中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值