Java基础---常用API(应用程序编程接口)一

本文介绍了Java中的包的概念和管理,以及String、StringBuilder和StringBuffer的定义、构造方法和常见操作。强调了在不同场景下选择String、StringBuilder还是StringBuffer的依据。
摘要由CSDN通过智能技术生成

1. 包

定义

  • 包是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。

建包的语法格式

package com.itheima.javabean;

public class Student {

}

调用其他包下的程序的注意事项 

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。
    • (同一个包下的类,互相可以直接调用)
  • 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包, 才可以访问!
    • 导包格式:import 包名.类名;
  • 如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用;但是Java.lang包下的程序是不需要我们导包的,可以直接使用。
  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

2. String

定义

String代表字符串对象,可以用来封装字符串数据,并提供了很多操作字符串的方法。

String构造方法

构造方法说明
public String(byte[] bytes, int offset, int length)将指定的字节数组(的指定部分)转成字符串
public String(byte[] bytes, String charsetName)将指定的字节数组转成字符串(通过指定码表转换)
public String(byte[] bytes, int offset, int length, String charsetName)将指定的字节数组(一部分)转成字符串(通过指定码表转换)
public String(char[] value)将char数组通过默认字符集转成字符串
public  String(char[] value, int offset, int count)将char数组(一部分)转成字符串
public  String(StringBuffer buffer)将StringBuffer类型的对象转成字符串
public  String(StringBuilder builder)将StringBuilder类型的对象转成字符串

String两种创建对象方法的区别

  • 以“”方式给出的字符串,只要字符串相同,无论在程序代码中出现几次,JVM 都只会建立一个String对象,并在字符串常量池中维护
  • 字符串常量池(在堆空间里面): 当使用双引号创建字符串对象的时候,系统会检查该字符串是否存在字符串
    • 常量池中
      • 如果不存在:创建
      • 如果存在:不会重新创建,而是直接复用
  • 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
  • 注意:对于引用数据类型,一定要区分什么是值,什么是引用
  • new关键字代表的含义是在堆内存中开辟一个空间,每执行一次,都会开辟一个新的
  • null代表的是没有引用(没有引用内存地址)
  • 字符串在输出一个对象的时候,如果对象有值,则输出的是值,如果对象没有赋值,则输出默认的内容""(空字符)
    • ""!= null两个东西含义不同
    • "":内存地址已经存在(已经创建了对象,空间中没有存数据)
    • null:内存中没有地址,仅仅只是起了一个变量名称(没有创建对象)
  • 对于字符串来说:
    • 如果要比较内存地址使用:==
    • 如果要比较字符串的值(存储的数据): .equals()

String提供的常用方法

length​()获取字符串的长度返回(就是字符个数)
char charAt​(int index)获取某个索引位置处的字符(值)返回
 concat(String str)将指定的字符串连接到该字符串的末尾。(拼接两个字符串)
toCharArray​()将当前字符串转换成字符数组返回
equals(Object anObject)判断当前字符串与另一个字符串的内容一样(不忽略大小写,一样返回true
 equalsIgnoreCase(String anotherString)判断当前字符串与另一个字符串的内容是否一样(忽略大小写)
substring(int beginIndex, int endIndex)根据传入开始和结束索引进行截取,得到新的字符串(包前不包后)
substring(int beginIndex)根据传入开始的索引处截取,截取到末尾,得到新的字符串返回
 replace(CharSequence target, CharSequence replacement)使用新值将字符串中的旧值替换,得到新的字符串
contains(CharSequence s)判断字符串中是否包含了某个字符串,如果包含则返回true,否则返回false
startsWith(String prefix)判断字符串是否以某个字符串内容开头,开头返回true,反之false
endsWith(String suffix)判断字符串是否是以指定字符串结尾,如果包含则返回true,否则返回false
 split(String regex)把字符串按照某个字符串内容分割,并返回字符串数组回来
 index0f(int ch)获取指定字符串在原字符串中第一次出现(索引)的位置
lastIndex0f(int ch)获取指定字符串在原字符串中最后一次出现(索引)的位置
indexOf(String s)查找s在字符串中第一个出现的的索引位置,未查到返回-1
lastIndexOf(String s)查找s在字符串中最后出现的的索引位置,未查到返回-1
index0f(String str,int fromIndex)从指定的索引向后开始数,返回指定字符串的第一次出现的字符串中的索引,包含当前索引的位置出现的次数
 lastIndexOf(String str,int fromIndex)从指定的索引向前数开始,返回指定子串的第一次出现的字符串中的索引,如果前面没有出现指定的字符串将返回-1
toLowerCase()将所有在此字符 String使用默认语言环境的规则,以小写
toUpperCase()将所有在此字符 String使用默认语言环境的规则大写。
trim()去除字符串两端的空格或者留白,字符串中间的不会消除
isEmpty()判断字符串是否为空。 为空返回true  不为空范围 false

3. StringBuilder类和StringBuffer类

  • StringBuilder(叫可变字符序列):线程不安全,用于单个线程。
  • stringBuffer(也叫可变字符序列):线程安全,用于多个线程。
  • StringBuilder类和StringBuffer类在进行方法调用之后,改变的是对象自身的数据。
  • StringBuilder类和StringBuffer类方法几乎是一模一样,如果你学会了StringBuilder类的方法,则StringBuffer用法和StringBuilder完全一样。
  • StringBuilder类和StringBuffer类必须通过new关键字来创建对象,它们遵循面向对象的规则。

StringBuilder常用的构造方法 

方法名说明
public StringBuilder()构造一个没有字符的字符串构建器,初始容量为16个字符。
public StringBuilder(String str)构造一个初始化为指定字符串内容的字符串构建器。

StringBuilder的常用方法

方法名说明
length()获取长度
capacity()获取容器的长度
toString()将StringBuilder类型的变量转成String类型。
append​(String str)将指定的字符串追加到此字符序列中,直接在原对象上进行追加操作
charAt​(int index)获取指定索引处的字符。
delete(int start, int end)删除指定开始索引到结束索引之间的值。(包前不包后)
deleteCharAt(int index)删除指定索引处的值。
setCharAt(int index,char ch)修改指定位置的数据值
insert(int offset, String str)向指定索引位置处插入字符串。
replace(int start, int end, String str)用指定的String中的字符替换掉指定的开始索引到结束索引之间的字符串。(包前不包后)
reverse()翻转StringBuilder中的数据,反转字符串

4. StringBuilder类、StringBuffer类和String类什么时候使用?

String:最常用

  • StringBuilder:效率最高
  • StringBuffer:如果将来是在进行大批量的字符串拼接,则效率高于String ,如果是小批量的字符串拼接,String效率高于StringBuffer
  • 当我们如果字符串需要经常动态变化的时候由于String自身值不可变,所以通常会使StringBuilder或者StringBuffer
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值