(十六)java中的String

     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都可以指定开始和结束位置。

时间: 2024-10-25 09:21:09

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

对象-Java中关于String输出

问题描述 Java中关于String输出 我有点搞不懂什么时候输出了对象地址,什么时候才输出了对象的值 解决方案 关键看你输出对象的类中对toString方法有没有进行重载,重载成什么样,默认没有重载就是输出object的toString方法,就是hashcode.也就是自己对类的toString进行重写,输出你想要的格式. 解决方案二: 一楼正解.toString本质上是多态,调用实际对象的该方法.默认Object类中的toString是数出对象地址的. 解决方案三: 地址好像是没法输出的,不

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

什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是,不能改变对象内的成员变量,包括 基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: String s = "ABCabc";

string-关于Java中 源代码 String 类中的 equals

问题描述 关于Java中 源代码 String 类中的 equals public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length)

解析Java中的String对象的数据类型

  解析Java中的String对象的数据类型     [摘要] 本文将全面解析Java中的String对象的数据类型.[关键字] Java 技巧   1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String str="

Java中的String与常量池

string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String st

JAVA中new String[0] 和 new String[1]是怎么分配内存的?

问题描述 JAVA中String[]s1=newString[0]和String[]s2=newString[1]是怎么分配内存的?我的理解:1.栈空间分配s1,s2:2.s1指向堆空间某个地址,内容为null:s2指向堆空间某个地址s2[0],然后s2[0]指向某个堆空间,内容为null;不知道这个理解对否,望指点. 解决方案 解决方案二:很简单,您可以直接打印s1和s2,如果按你的理解应该会输出null和一串地址,但其实应该2个都是有地址的就都不是空的解决方案三:指向堆没问题.不过不是nul

Java中的String不再纠结

先分享一下java中string的一些小专题吧,这部分比比较基础,但是也非常的有用.我发现很多面试官像中了邪一样就爱问这个..string的种种,纠结,希望这篇文章让大家不再纠结.. string是我们经常用到的一个类型,其实有时候觉得写程序就是在反复的操作字符串,这是C的特点,在java中,jdk很好的封装了关于字符串的操作.今天主要讲的是三个类String .StringBuffer . StringBuilder .这三个类基本上满足了我们在不同情景下使用字符串的需求. 先说,第一个Str

java笔记十:java中的反射

Java中,反射是一种强大的工具.它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接.反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码.这使反射成为构建灵活的应用的主要工具.但需注意的是:如果使用不当,反射的成本很高. Java的类反射所需要的类并不多,它们分别是:Field.Constructor.Method.Class.Object,下面我将对这些类做一个简单的说明.Field类:提供有关类或接

全面理解Java中的String数据类型

数据|数据类型 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String str="kvill": String str=new String ("kvill");的区别: 在这里,我们不谈