String:字符串类型,是java中最常用的引用类型,String是不可变的,java.lang.String是由final修饰,此类不可被继承。

    String是不可变的,指的是字符串一旦创建,其对象不可改变,但是字符串引用是可以重新赋值的。

    java中的字符串在内存中采用unicode编码格式存储,任何一个字符对应两个字节的定长编码,不论中文还是英文。

    java中的静态字符串,即字面量、常量、常量连接的结果,是在常量池中创建的,并尽量使用同一个对象,重用静态字符串,提高性能。对于重复出现的字符串直接量,jvm会在常量池中查找,如果存在即返回该对象,否则在常量池中创建。

    使用new关键字创建字符串的时候,会直接创建新的对象,不会发生上边的重用。

    indexOf检索指定字符串在目标字符串中出现的第一次位置,java提供其他的重载方法,可以从指定位置开始检索,还可以指定检索的个数。lastIndexOf检索指定字符串在目标字符串中最后一次出现的位置。

    subString可以根据指定的位置截取子字符串,可以指定起始位置,如果只指定了一个位置,则默认从此位置截取到最后。

    trim可以用来去除字符串前后的空格,charAt返回字符串中指定位置的字符,startsWith检测一个字符串是否以指定字符串开头,endsWith检测一个字符串是否以指定字符串结尾。

    toUpperCase和toLowerCase来把小写字母转换成大写和把大写字母转换成小写,length方法获取字符串的长度。

    以上方法都是用对应的字符串后边加点加对应的方法和参数。

    valueOf把其他类型转换成字符串,用法是String.valueOf()。

    当我们用到的字符串需要改变时,就需要用到可变字符串类型,java提供了StringBuilder和StringBuffer两种,他们的用法几乎一样,区别是StringBuilder是非线程安全的,并发,性能稍快;而StringBuffer是线程安全的,同步,性能稍慢,通常会使用StringBuilder。

    他们几乎拥有基础字符串操作的所有常用方法,除此之外,还提供了append追加字符串,inser插入字符串,delete删除字符串,replace替换字符串,reverse字符串翻转等方法,其中delete和replace都可以指定开始和结束位置。

(十六)java中的String的更多相关文章

  1. Java学习笔记十六:Java中的构造方法

    Java中的构造方法 1.使用new+构造方法 创建一个新的对象: 2.构造方法是定义在Java类中的一个用来初始化对象的方法: 3.构造方法与类同名且没有返回值: 4.语法格式: public 构造 ...

  2. Java内存管理-探索Java中字符串String(十二)

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 一.初识String类 首先JDK API的介绍: public final class String extends O ...

  3. J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用

    J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用   spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修 ...

  4. (转)Java中的String为什么是不可变的? -- String源码分析

    背景:被问到很基础的知识点  string  自己答的很模糊 Java中的String为什么是不可变的? -- String源码分析 ps:最好去阅读原文 Java中的String为什么是不可变的 什 ...

  5. 再解java中的String

    今天看到一篇文章中,写了关于java中的String.我看了后,是我从学java来觉得是最好的一篇关于String类的文章.看了这篇文章你就会对String的认识会提高一个层次.故将原作者的文章特意转 ...

  6. (转)Java中的String为什么是不可变的

    转自:http://www.importnew.com/7440.html String是所有语言中最常用的一个类.我们知道在Java中,String是不可变的.final的.Java在运行时也保存了 ...

  7. 关于JAVA中的String的使用与连接(转)

    JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable).           String的不可变性是Ja ...

  8. Java中的String为什么是不可变的?

    转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那 ...

  9. Java中的String与常量池[转帖]

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

  10. Java中的String与常量池

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

随机推荐

  1. vsftp实现只能上传不能下载、删除权限配置

    vsftpd可以对每个用户特别限制.只要给那个用户建立一个设置文件,然后在文件里设置 在vsftpd.conf里加user_config_dir=/etc/vsftpd/vsftpd_user_con ...

  2. GreenDao 兼容升级,保留旧数据的---全方面解决方案

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  3. C# 语法学习整理

    1.协变与逆变的概念 文章地址:https://segmentfault.com/a/1190000007005115 **************************************** ...

  4. zlib库VS2015编译步骤

    [点击这里下载zlib1.2.8源码](http://zlib.net/zlib128.zip) [点击这里下载zlib1.2.8编译动态库](http://zlib.net/zlib128-dll. ...

  5. IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案

    在使用了pods之后首次编译加载时会出现错误 你的Pods存放目录/Pods/Target Support Files/Pods/Pods-resources.sh: Permission denie ...

  6. yii2 源码分析 Component类分析 (二)

    转载请注明链接http://www.cnblogs.com/liuwanqiu/p/6739538.html 组件(component),是Yii框架的基类,实现了属性.事件.行为三类功能,它集成自o ...

  7. 搭建简易的c语言与python语言CGI和Apache服务器的开发环境

    搭建简易的c语言CGI和Apache服务器的开发环境 http://www.cnblogs.com/tt-0411/archive/2011/11/21/2257203.html python配置ap ...

  8. Math.abs(~2018),掌握规律!

    Math.abs(~2018) 这要用到一些计算机的基础知识. Math.abs(x)指的是返回一个数的绝对值,而关键在"~2018",这是取反操作符,故取相反数得结果为-2018 ...

  9. 【netty这点事儿】ByteBuf 的使用模式

    堆缓冲区 最常用的 ByteBuf 模式是将数据存储在 JVM 的堆空间中. 这种模式被称为支撑数组(backing array), 它能在没有使用池化的情况下提供快速的分配和释放. 直接缓冲区 直接 ...

  10. 以kaggle-titanic数据为基础的完整的机器学习

    1. 引入所有需要的包 # -*- coding:utf-8 -*- # 忽略警告 import warnings warnings.filterwarnings('ignore') # 引入数据处理 ...