java/04/String类的特点,String的常用方法,this关键字

String 是一个字符串类型的类,使用“"”双引号定义的内容都是字符串,但是String类本身会有一些特殊。

String类的两种实例化方式

在之前使用过String,最早使用的是直接采用了“String 变量 = “字符串”;”这种直接赋值的方法。
第二种是构造方法实例化:
public String(String str)
在构造方法里仍要接收一个本类对象;
例:String str =new String(“Hello World”);

在String 上也可以使用“”比较,但“”比较的其实是内存地址(栈内存),而非内容(堆内存)。

“==”比较的内存分析如下:

面试题:请解释在字符串相等的判断中“”与“equals()”的区别。
“"是java提供的关系运算符,主要功能是进行数值相等判断的,如果用在字符串上,则比较的是地址数值;
而”equals()“是由String类提供的一个方法,此方法专门负责进行字符串内容的比较,比较的是字符串的内容

字符串常量就是Sting的匿名对象

实际上任何的语言都没有提供字符串这一概念,很多的语言里面使用了字符数组,所有的开发都不可能离开字符串的应用,最终Java自己创造了字符串。
所谓的直接赋值实际上相当于将一个匿名对象设置了一个名字而已,但是匿名对象是系统自动生成的,不再同用户自己直接创建。


在开发中,要送判断输入的内容是否是某一字符串,请一定要将字符串放在equals方法前面,而equals方法处理了输入为空的情况。


对字符串的操作,所谓的字符串的内容实际上根本就没有改变(java就定义好了String的内容不能改变),对于字符串对象内容的改变,是利用了引用关系的变化而实现的(改变内存指向),但每次改变都会产生垃圾。
字符串内容的变化实际上是如何操作的,如下:(改变内存指向)

总结String类的特点:

String类对象的相等判断使用equals()方法完成,“==”实现的是地址数值的比较;
字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的改变。
String类有两种实例化方式 ,使用直接赋值可以不产生垃圾空间,并且自动入池,不要使用构造方法完成。

String类的常用方法(重点)

可以查看文档
jdk文档常常由以下部分组成:
类中的成员组成;
类中所提供的构造方法;
类中所提供的普通方法;
类成员,构造方法,普通方法的详细说明。

字符与字符串



如果写的某个方法返回的内容是boolean,那么习惯性的做法是将此方法以“isXxx”命名。

字节与字符串



字节和字符串之间的关系与后面内容的io流,乱码转换有关

字符串的比较

java是严格区分大小写的
public boolean equals(String anObject) 普通方法用于进行相等比较且区分大小写
public boolean equalsIgnoreCase(String anotherString) 普通进行相等比较但不区分大小写
public int compareTo(String anotherString) ** 普通方法用于判断两个字符串的大小(按照字符编码比较),此方法的返回值有如下三种结果:
=0 :表示要比较的两个字符串相等;
>0 :表示大于0的结果;
<0 :表示小于0的结果。
现在
只有String类的对象才具有大小的关系判断**。

字符串查找





在Java里面,contains已经成为了一个查询的代名词,且它基本返回boolean值。

字符串的替换

public String replaceAll(String regex,String replacement)
为普通方法用于让新的内容替换全部旧的内容;
public String replaceFirst(String regex,String replacement)
为普通用于替换首个满足条件的内容。

字符串截取

从一个完整的字符串之中可以截取部分的子字符串数据,支持的方法如下:
public String substring(int beginIndex)
为普通方法用于从指定的索引截取到末端;
public String substring(int beginIndex,int endIndex)
为普通方法用于从指定的开始索引(不包括)截取到指定结束索引(包括)之间的内容。

字符串拆分

public String[] split(String regex)
为普通方法用于按照指定的字符串进行全部拆分;
public String[] split(String regex,int limit)
为普通方法用于按照指定的字符串进行部分拆分,最后的数组长度就是由limit决定的(如果能拆分的结果很多,数组长度才会由limit决定),即:前面拆,后面不拆,作为整体。
例:

String类的其它方法

public String concat(String str)
为普通方法用于字符串的连接与“+”相似
public String toLowerCase()
为普通方法用于字符串转小写(自动针对字母);
public String toUpperCase()
为普通方法用于字符串转大写(自动针对字母);
public String trim()
为普通方法用于去除字符串两边的空格,中间空格保留;

各种对象长度获取:
数组对象.length
String对象.length()

this关键字

1,this调用属性;
2,this调用方法;
3,利用this表示当前对象。
this调用属性
在Java程序里面它是以“{}”为界限,如果属性名称与参数名称出现了重名,当没有加入任何的限制,指的都是最近的“{}”内的变量名称。
为了加以区分,只要是访问类中的属性前面必须加上“this.”
this调用方法
所谓的this实际上指的就是明确的标记本类的结构,类中除了成员之处还有方法(普通方法和构造方法);形式:this(参数,参数);
限制:
1,使用“this()”调用构造方法形式的代码只能够放在构造方法的首行;
2,进行构造方法互相调用的时候,一定要保留调用的出口(不要让全部的构造方法使用this调用方法防止其出现递归调用错误);
this调用表示当前对象
所谓的当前对象指的就是当前正在调用类中方法的对象。

@沉木

java/04/String类的特点,String的常用方法,this关键字相关推荐

  1. Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】

    Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...

  2. String类比较,String类运算比较,String运算

    String类比较,String类运算比较 >>>>>>>>>>>>>>>>>>>&g ...

  3. java中string类_Java中String类浅谈

    1)String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下:      String s = "abc&qu ...

  4. java string类api_JAVA中String类的常用方法API

    @[toc] 前言 String 类是我们日常经常使用的Java类,以下是对该类的信息汇总,类的关系图如下 String类关系图 创建: String s="hello!";//使 ...

  5. java 实现 string类_java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  6. java string类api_java基础—String类型常用api

    1.字符串比较 equals equalsIgnoreCase  忽略大小写做比较 2.字符串拆分(切片) split String a = "lemon:python:Java" ...

  7. Java之String类

    2019独角兽企业重金招聘Python工程师标准>>> ‍String类‍ 1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java ...

  8. Java里的字符串, String类简单介绍.

    String类在java面试中也是1个常见的问题点. 所以也是写在这里方便以后查阅了. 大家都知道c语言里是没有String 字符串这个数据类型的. 只能用字符数组的1个特殊形式来表示一个字符串, 就 ...

  9. 第三次学JAVA再学不好就吃翔(part47)--String类的构造方法

    学习笔记,仅供参考 文章目录 String类 String类概述 String类的构造方法 String类 String类概述 String是java.lang包下的一个类,使用String类时不需要 ...

  10. java实用教程——常用实用类——String类(字符串类)

    JAVA把String类定义为final类(因此用户不能扩展String类,即String类不可以有子类) String对象可以用"+"进行并置运算 identityHashCod ...

最新文章

  1. 20181113-3 Beta阶段贡献分配规则
  2. MyEclipse10的正确破解方法
  3. java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果
  4. 03-09 toast 控件识别
  5. 使用值类型LazyString分析字符串
  6. 【爬虫剑谱】二卷7章 实战篇-搭建IP代理池绕过反爬检测
  7. CentOS 6.3下NFS安装配置
  8. python动态爱心曲线_使用matplotlib动态刷新指定曲线实例
  9. simplex字体下载cad_CAD字体大全【资料下载】
  10. JESD204B时钟网络
  11. 密码学-->buuctf49~60
  12. 【第三方互联】14、Github授权第三方登录
  13. mac 10.13.6 升级至10.14.6再升级至12.4
  14. 输入网址自动跳转到域名纠错系统-解决办法:(北京网通:现在称为垃圾廉通)...
  15. 杰理AC692X---简介(1)
  16. 华东政法大学教学管理系统_华东政法大学研究生教学管理信息系统入口
  17. Statement.execute() 返回值
  18. homeassistant中通过SSH安装zerotier步骤
  19. 【面试总结】小灰灰求职进行曲(二)C++语言方向
  20. Certificate verification failed: The certificate is NOT trusted.解决方案

热门文章

  1. 弹框alertView
  2. LED植物照明原理、推广难题与研究进展-徐志刚
  3. iOS开发那些事-Git在Xcode中的配置与使用
  4. PL/SQL 结构与实例
  5. 利用ipsec配置tcp/ip用于安全连接
  6. 将本地已经存在的代码跟github上新建的仓库建立关联,解决“fatal: 'origin' does not appear to be a git repository...”
  7. Machine Learning System Design的一道题
  8. 在eclipse中安装jadclipse的反编译插件
  9. Hibernate5-1对多(1:n)-级联删除-cascade=delete-orphanl
  10. Xcode调试项目时取消弹出框提示授权