object类

int hashCode()

Object定义的hashCode方法能为不同对象返回不同的整数。实际上是把JVM给对象分配的地址转化为整数,确保了逻辑上的唯一性。而转化的散列算法,可能会把两个地址算出同一个值来(低概率),所以,hash值一样的对象不一定是同一个对象,但是地址相同的对象,肯定是同一个对象。

boolean equals(Object obj)

==和equals的区别

==对于基本类型来说,比较的是数值,对于引用类型来说比较的是引用的地址。

equals不能用来比较基本类型,比较引用类型默认比较的都是地址

在String中的equals比较过程,先比较地址、然后比较数据类型、再将字符串拆成字符数组,进行循环对比。只要有一个环节比较不匹配就直接输出false,结束比较。

String toString()

在输出的语句中,直接输出一个对象,默认输出方法就是toString方法。如果没有此方法,输出的只是对象的地址。父类Object的toString方法,并不满足所有子类。所以需要重写。当然基本的封装类,JDK里面都写好了。所以我们输出的时候不用写这个方法,系统默认自带toString。

protected Object clone()

克隆对象,克隆出来的对象是独立存在的,有自己的内存空间。

protected void finalize()

垃圾回收机制的调用,但是具体什么时候回收,就不确定了。随机回收。

String

String是一个final修饰的类,不可继承。并且“xyz”这样的字符串面值常量也是String对象,也可以使用String类的成员方法。String类创建好了,就是确定好了内存,不可再次修改,只能重新开辟内存空间重新引用。频繁的操作字符串,会在常量池累积大量的字符串,这样就使用字符串缓冲区。

字符串缓冲区【StringBuffer/StringBuilder】支持对字符的动态、可变操作。

String的构造方法

public String()

public String(String)

public String(char[] value)

public String(char[] value, int offset, int count)

public String(byte[] bytes)

public String(byte[] bytes,int offset,int length)

String类的成员方法

char charAt(int index)  将指定索引的字符,返回char类型

int indexOf(int ch)     int indexOf(String str)

int indexOf(int ch, int fromIndex)  int indexOf(String str, int fromIndex)

从开头、或者指定索引位置检索整型数值或字符串,并把索引值以int型返回,如果没有检索到,就会返回-1

int lastIndexOf()   用法,重载同上,不同的是检索顺序是逆序检索。

String substring(int start) String substring(int start,int end)  从指定索引位置或者指定索引区域开始截取字符串,返回一个String类型(就是截取的部分),注意截取区域是左闭右开原则。

int length()   返回一个int类型的字符串长度。

boolean isEmpty()  判断字符串是否为空

boolean equals(Object obj)  将指定字符串内容与指定对象比较,区分大小写。

boolean equalsIgnoreCase(String str)  将此字符串与另一个字符串str比较,忽略大小写。

boolean contains(String str)  判断字符串中是否包含方法传入的字符串。

boolean startsWith(String str)  判断字符串是否以某个指定的字符串开头

boolean endsWith(String str)  判断字符串是否以某个指定的字符串结尾

byte[] getBytes()  将字符串转化为字节数组。

char[] toCharArray()  将字符串转换为字符数组

static String valueOf(char[] chs)    static String valueOf(int i)   将字符数组类型和整数类型转型成字符串形式。用法String.valueOf(xxx)

String replace(char old,char new)   替换功能。

String replace(String old,String new)   替换功能。

String trim()  去除字符串两空格。

int compareTo(String str)   按字典顺序比较两个字符串。

int compareToIgnoreCase(String str)  按字典顺序比较两个字符串,忽略大小写。

public String[] split(String regex)  分隔字符串成字符数组。

StringBuffer()

构造一个没有字符的字符串缓冲区,初始容量为16个字符。

StringBuffer(CharSequence seq)

构造一个包含与指定的相同字符的字符串缓冲区 CharSequence 。

StringBuffer(int capacity)

构造一个没有字符的字符串缓冲区和指定的初始容量。

StringBuffer(String str)

构造一个初始化为指定字符串内容的字符串缓冲区。

增 :

StringBuffer append(String str) 将字符串str拼接到末尾

StringBuffer insert(int offset, String str)将字符串str拼接到指定位置

删 :

StringBuffer deleteCharAt(int index) 删除指定位置的字符

StringBuffer delete(int start, int end) 删除指定区域的字符(左开右闭)

改:

      public StringBuffer replace(int start,int end,String str)将指定区域的字符串替换成字符串str

其他:

public StringBuffer reverse() 颠倒字符串

public String substring(int start)从指定位置开始截取字符串

public String substring(int start,int end)截取指定区域的字符串

String,StringBuffer,StringBuilder三者的区别

三者本质都是字符序列,string字符序列不支持对字符直接修改,stringbuffer和stringbuilder是字符缓冲区,可变的字符序列。stringbuffer线程安全效率不高、stringbuilder线程不安全效率高。

String字符串类总结的更多相关文章

  1. C++自定义String字符串类,支持子串搜索

    C++自定义String字符串类 实现了各种基本操作,包括重载+号实现String的拼接 findSubStr函数,也就是寻找目标串在String中的位置,用到了KMP字符串搜索算法. #includ ...

  2. 17.C++-string字符串类(详解)

    C++字符串string类 在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低. 所以在C++标准库里,通过类string从新自定义了字符 ...

  3. Java String 字符串类细节探秘

    一. 字符串基本知识要点 字符串类型String是Java中最常用的引用类型.我们在使用Java字符串的时候,通常会采用两种初始化的方式:1. String str = "Hello Wor ...

  4. String字符串类的获取功能

    StringDemo.java /* * String类的获取功能: * int length():获取字符串的长度,其实也就是字符个数 * char charAt(int index):获取指定索引 ...

  5. 漫话C++之string字符串类的使用(有汇编分析)

    C++中并不提倡继续使用C风格的字符串,而是为字符串定义了专门的类,名为string. 使用前的准备工作 在使用string类型时,需要包含string头文件,且string位于std命名空间内: # ...

  6. String字符串类课后作业

    String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...

  7. C++常用的string字符串截断函数

    C++中经常会用到标准库函数库(STL)的string字符串类,跟其他语言的字符串类相比有所缺陷.这里就分享下我经常用到的两个字符串截断函数: #include <iostream> #i ...

  8. Java:字符串类String的功能介绍

    在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了. 它的主要功能有如下几种:获取.判断.转换.替换.切割.字串的获取.大 ...

  9. 设计一个字符串类String(C++练习题)

    要求:设计一个字符串类String,可以求字符串长度,可以连接两个串(如,s1=“计算机”,s2=“软件”,s1与s2连接得到“计算机软件”),并且重载“=”运算符进行字符串赋值,编写主程序实现:s1 ...

随机推荐

  1. 初学JSP

    一. 基本了解     JSP是应用最广泛的表现层技术,它和Servlet是Java EE的两个基本成员.JSP和Servlet本质是一样的,因为JSP最终编译成ServLet才能运行. 1.1 we ...

  2. 条件随机场CRF(二) 前向后向算法评估标记序列概率

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...

  3. csrf攻击与防范

    CSRF(Cross Site Request Forgeries)跨网站请求伪造,也叫XSRF,通过伪装来自受信任用户的请求来攻击利用受信任网站. 与对比 xss:本网站运行了来自其它网站的脚本 c ...

  4. 【NumberValidators】大陆身份证验证

    需要说明的是这里的大陆身份证识别并不是公安局联网的识别,而是按国标GB 11643进行的验证,所以其验证结果只能说符合国标规范,但不能保证该身份证一定真实存在,如果你实际需求是希望身份证一定真实存在, ...

  5. Azure Go Management SDK 中国版使用示例

    简介 刚学习go几天,尝试调用Azure的SDK进行管理API的操作,基本思路是基于注册的AD Application信息生成token,然后再使用Token生成serviceClient,然后再进行 ...

  6. 剑指Offer常见问题整理

    1 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.(来自牛客网,剑指offer) ...

  7. 监控与管理dubbo服务

    Dubbo是阿里多年前开源的一套服务治理框架,在众多互联网企业里应用广泛.本文介绍了一些如何监控与管理dubbo服务.使用的工具与<dubbox 的各种管理和监管>大致相同,本文更侧重于命 ...

  8. 基于.net core实现项目自动编译、并生成nuget包

    近期想对自己的项目增加自动编译并生成nuget包,网上资料不少.但总还有迷糊的时候.首先:此解决方案包含多种版本的项目,如:有编译必须是x86平台,以及还有传统的.net foramework项目,以 ...

  9. Volley 图片加载相关源码解析

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47721631: 本文出自:[张鸿洋的博客] 一 概述 最近在完善图片加载方面的 ...

  10. SQL Server 日志和代理的错误日志

    本文介绍的日志不是事务日志,而是SQL Server 日志和代理的错误日志,按照主体把错误日志分为SQL Server.SQL Server Agent.Database Mail,以及 Window ...