`
DanielHan
  • 浏览: 57394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7377
社区版块
存档分类
最新评论

Java源码-String

阅读更多
public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence


Serializable
序列化接口:主要用于io传输,暂不做研究。

Comparable
详情请看博文http://danielhan.iteye.com/blog/2015449

CharSequence
字符序列接口

    /**
     * Allocates a new {@code String} so that it represents the sequence of
     * characters currently contained in the character array argument. The
     * contents of the character array are copied; subsequent modification of
     * the character array does not affect the newly created string.
     * @param  value
     *         The initial value of the string
     */
    public String(char value[]) {
        this.value = Arrays.copyOf(value, value.length);
    }

这属于String类的其中一个构造方法,作用是将参数char数组复制一份作为String的value属性,这样一旦参数char数组改变,此方法生成的String对象的值不变。设想:如果此方法如下:
public String(char value[]) {
    this.value = value;
}

这样String类的value属性指向参数,参数一旦改变,它也跟着变。

补充
类定义时修饰符是final,表示String对象不可改变
说的String类型不能修改是因为String存在于heap区,是一个常量
只要是new 出来的都会放在这个区域里的
str="fdfds";
str+="hghg";
这样的话就生成了三个字符串了,知道吗?其实在堆栈中"fdfds"这个字符串现在并没有改变
只是str的指向改变了。
现在存在的三个字符串是:"fdfds"  "hghg" "fdfdshghg"这三个。这样来说就比较占用内存了
分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    积分java源码-java-data-types-string-apis-java-se-11:java-data-types-string-

    积分java源码java-data-types-string-apis-java-se-11 嗨,欢迎来到练习项目,使用 java 数据类型和字符串 API。 在这个项目中,我们将涵盖许多与原始类型和变量相关的主题,而大多数 Java 课程提供通用信息。 本...

    mysql-connector-java-5.1.37jar包和源码

    MySQL Connector/J是MySQL数据库的Java连接器,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与MySQL数据库进行通信。在本案例中,"mysql-connector-java-5.1.37.jar" 是一个特定版本的MySQL JDBC...

    Java 精确计算-double-float-String

    标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...

    java 访问mysql8.0.12表的源码(含mysql-connector-java-8.0.12.jar包)

    总结来说,`Mysql8012Example.java`的源码展示了如何利用`mysql-connector-java-8.0.12.jar`驱动包,通过JDBC接口连接到MySQL 8.0.12数据库,执行SQL查询,并处理返回的结果。这对于任何希望在Java项目中集成MySQL...

    org.dtools.javaini-v1.1.00-src.7z

    《Java操作INI文件:org.dtools.javaini-v1.1.00源码解析》 在Java编程中,有时我们需要处理配置文件,其中INI文件是一种常见的格式,它以键值对的形式存储数据,通常用于存储软件的设置或配置信息。`org.dtools....

    Java大师级源码-Java8-Source-Code-master:jdk1.8源码,无注释版本

    Java大师级源码 Java8-Source-Code 简介 Java8源码学习 ├── com/ ├── java/(常用代码都在此文件夹下) │ ├── lang/ │ │ ├── ClassLoader │ │ ├── Enum │ │ ├── Integer │ │ ├── Long ...

    java6string源码-whatsapp-java-bot-en:whatsapp-java-bot-en

    java6string源码 在本文中,我们将研究如何使用我们的 WhatsApp API 用 Ja​​va 编写一个简单的 WhatsApp 机器人。 在下面的示例中,机器人将以常规 WhatsApp 消息的形式接收命令并回复它们。 不要忘记从我们的存储...

    java源码:github-java-api.zip

    这份"java源码:github-java-api.zip"包含了GitHub Java API的源代码,为开发者提供了深入学习和理解该库内部工作原理的机会。 GitHub Java API是由dlinsin开发并维护的,版本号为5f7e387。这个库的核心目标是提供...

    AS3-StringUtil

    1. **格式化字符串**:库中可能包含如format()方法,可以方便地将变量插入到预定义的字符串模板中,类似于Java的`String.format()`或者C#的`string.Format()`。 2. **分割与合并**:提供更强大的split()和join()...

    javastring类的源码

    java jdk中string类的源码 ,了解string类的书写,定义和声明

    飞信的java源码,完全反编译,解密版

    飞信 客户端的 java 源码, | Buddy.java | ChatMessage.java | ChatSession.java | ChineseString.java | DataPackage.java | FirstCanvas.java | GroupSection.java | icon.png | MCanvas.java | MList.java | ...

    java压缩文件源码--ZipUtils

    private static String getFileName(String filePath){ int index = filePath.indexOf("."); return filePath.substring(0, index); } @SuppressWarnings("unused") private static String getRootPath...

    java8源码-java8-source-code:Java8API源代码

    Java8源码学习 ├── com/ ├── java/(常用代码都在此文件夹下) │ ├── lang/ │ │ ├── ClassLoader │ │ ├── Enum │ │ ├── Integer │ │ ├── Long │ │ ├── String │ │ ├── ...

    java源码文档src

    Java源码文档src是Java开发中的重要参考资料,它包含了Java开发工具包(JDK)的源代码,让我们有机会深入理解Java平台的核心类库。通过学习这些源码,开发者可以更好地了解Java API的工作原理,提高编程技能,以及...

    基于Java的源码-INI文件操作类库 ini4j.zip

    【标题】"基于Java的源码-INI文件操作类库 ini4j.zip"指的是一个Java开发的类库,专门用于处理INI配置文件。INI文件是一种常见的配置文件格式,主要用于存储软件的应用设置。ini4j是一个开源项目,它提供了一套API,...

    基于Java的源码-非对称加密源码实例.zip

    这个压缩包“基于Java的源码-非对称加密源码实例.zip”很可能包含了若干个Java源代码文件,用于演示非对称加密算法如RSA、DSA或Elliptic Curve Cryptography (ECC)的应用。 非对称加密的核心思想是使用一对密钥,即...

    200个java--code java源代码

    这些源代码可能包括了Java的基础元素,如数据类型(如int, double, String等)、控制结构(如if-else, for, while循环)、方法定义、类和对象的创建以及继承和多态等面向对象概念。此外,可能还有异常处理(try-...

    基于Java的实例源码-在Java中运行Perl脚本 JERL.zip

    这个压缩包"基于Java的实例源码-在Java中运行Perl脚本 JERL.zip"很可能包含了JERL的源代码,以及可能的示例程序,用于演示如何在Java中使用该库。 要使用JERL,首先需要将其导入到Java项目中,这通常涉及到将JERL的...

    java源码转换FLV

    Java源码转换FLV是一项技术任务,涉及到Java编程语言与多媒体处理,特别是视频格式转换。在给定的压缩包文件中,我们预期找到的是一个Java项目,它包含了用于将源代码转换为FLV(Flash Video)格式的工具或库。FLV是...

Global site tag (gtag.js) - Google Analytics