`

Java String 只读特性

    博客分类:
  • Java
阅读更多

public class Test { 
    public static void changeStr(String str1 ){ 
        str1="welcome"; 
    } 
    public static void main(String[] args) { 
        String str ="1234"; 
        changeStr(str); 
        System.out.println(str); 
    } 

// 输出:1234

 

上面这段代码, 注意其中的红色的两个变量.  

 

首先说str .str变量存放的是对"1234"的字符串对象的引用地址.在调用 changeStr(str) 方法的时候,是str把引用地址传递给str1这个变量. 由于java中string 是只读的,所以无法修 改"1234"这个字符串对象的值. 

 

str1="welcome"; 则是又创建了一个"welcome"的字符串对象.并修改str1的引用地 址. 

 

而str还是指向原来的"1234"的地址.  所以结果是1234.   这个面试题的重点在于 考察 string对象的只读属 性. final class

分享到:
评论

相关推荐

    2018最新 Java9新特性详解视频

    16.新特性9:String底层存储结构的变化 17.新特性10:创建只读集合 18.新特性11:增强的Stream API 19.新特性11:Optional提供的stream() 20.新特性12:多分辨率图像API 21.新特性13:全新的Http客户端API 22.新特性...

    JAVA小论文(浅谈String类)

    String类对象有这样一个重要特性:只读性,就是其内容一旦确定了就不可以更改。 在Java中,字符串可以由英文双引号(” ”)引起,字符串就是一个字符序列。例如:“This is a string.”。而由英文单引号(’’)...

    String总概况及其特性并与StringBuffer的区别详解

    - 如果只需要一个只读字符串,则使用`String`。 2. **性能考量** - 在大多数情况下,如果不需要线程安全,推荐使用`StringBuilder`而非`StringBuffer`,因为`StringBuilder`不包含同步开销,性能更高。 3. **...

    String类的笔记

    #### `String`类的关键特性与方法 1. **字符串初始化**:可以通过多种方式创建`String`对象,如直接赋值`String s = "abc";`,或者通过字符数组转换`String s = new String(char[]);`。 2. **字符串比较**: - `=...

    Java字符串使用总结.docx

    `String`类的一个关键特性是**不可变性**,也就是说一旦一个`String`对象被创建,它的值就不能被更改。 ##### 不可变性的意义 1. **内存优化**: 由于`String`对象是不可变的,多个变量可以共享同一个字符串对象,...

    javaApi帮助文档

    1. **基础包(java.lang)**:包含运行Java程序所需的基本类,如String、Math等。 2. **集合框架(java.util)**:提供了用于存储对象的集合类,如List、Set、Map等。 3. **输入输出流(java.io)**:提供了一系列...

    java nio 包读取超大数据文件

    - **异步处理**:如果系统允许,可以考虑使用NIO的异步特性来进一步提高性能。 - **多线程处理**:结合多线程技术,实现文件读取和数据处理的并行执行,提高整体效率。 综上所述,使用Java NIO处理超大数据文件时...

    JAVA API1.5中文文档 .rar

    Java 1.5引入了局部变量的final修饰,创建了一个只读的局部变量,一旦初始化就不能再改变,增强了代码的清晰度和安全性。 九、比较与交换(Compare and Swap) Java 1.5的并发包(java.util.concurrent)中提供了...

    Kotlin和Java混合开发入门教程

    - **val和var:**`val`用于声明只读变量(类似于Java中的`final`关键字),而`var`则用于声明可变变量。 #### 四、优秀表达式 在Kotlin中,表达式可以作为返回值,这意味着if-else、try-catch等控制结构的最后一个...

    mysql-connector-java-8.0.21

    例如,Java的`String`对应于MySQL的`VARCHAR`,`int`对应于`INTEGER`等。 4. **批处理**:通过`java.sql.Statement`或`java.sql.PreparedStatement`的`addBatch()`和`executeBatch()`方法,可以发送多条SQL语句一次...

    java 使用JTextArea组件

    `JTextArea`默认是可编辑的,通过`setEditable(false)`可以将其设为只读: ```java textArea.setEditable(false); ``` **7. 换行模式** `JTextArea`有三种换行模式:`WRAP_WORD`(单词间换行)、`WRAP_CHAR`(字符...

    NoteBook 记事本 java开发

    ### Java 开发简易 NoteBook 记事本...此外,为了进一步提高应用的功能性和用户体验,可以考虑增加更多高级特性,如搜索替换、字体样式调整等功能。同时,在实际开发过程中还需注意异常处理、代码优化等方面的问题。

    一篇讲清楚String、StringBuffer和StringBuild.doc

    2、String 类特性: * String 是一个 final 类,代表不可变的字符序列。 * 字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。 * String 对象的字符内容是存储在一个字符数组 value[]中的。 * 字符串...

    Java基础汇总.pdf

    字符串在Java中属于引用数据类型,由String类表示。它与其他基本数据类型进行运算时,会将基本数据类型转换为字符串类型。字符串的赋值需要使用双引号包裹。 **ASCII码和Unicode编码** 在文档中提到了ASCII码和...

    java华为面试题.pdf

    根据提供的文档片段,本文将围绕几个核心的Java知识点进行深入解析,包括但不限于:String与StringBuffer的区别、集合类(如ArrayList、Vector、LinkedList)的特性与应用场景、线程同步机制的理解及其实现方式、...

    Spark 1.0.0 API (java)

    JavaRDD<String> mappedRdd = rdd.map(new Function<String, String>() { public String call(String s) { return s.toUpperCase(); } }); ``` - **行动**:`count()`计算元素数量,`collect()`获取所有元素,`...

    java C# 面向对象方面的比较.doc

    - Java的主函数必须是public static void main(String[] args),而C#的Main函数可以是private,可以没有参数,还可以返回int值,这更接近C语言的风格。 4. 数字表示: - C#的编译器csc.exe会提示使用大写的L(L)...

    Thinking in Java 中文第四版+习题答案

    12.4.4 String和StringBuffer类 12.4.5 字串的特殊性 12.5 总结 12.6 练习 第13章 创建窗口和程序片 13.1 为何要用AWT? 13.2 基本程序片 13.2.1 程序片的测试 13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 ...

    JAVA100例之实例55 可滚动结果集

    这里,`ResultSet.TYPE_SCROLL_INSENSITIVE`表示结果集对数据库中的变化不敏感,而`ResultSet.CONCUR_READ_ONLY`表示结果集是只读的。如果需要更新结果集,可以使用`ResultSet.CONCUR_UPDATABLE`。 接下来,执行SQL...

Global site tag (gtag.js) - Google Analytics