java - 哪里需要同步?

标签 java concurrency

public class sample1
{
    private static Map m = new HashMap();
    //....
    //.....
    //
    public void fun(String str1, String str2, sample2 s )
    {
        String str = str1 + str2 + s.getName();
        String value = m.get(str);
    }
}

public class sample2
{
    private String name;
            // ......
            // ........
            pubic String getName()
             {
                  return name;
             }
}

我的问题是像 str1、str2 和 s(sample2 对象)这样的变量(函数 fun 的参数)究竟存储在堆中还是堆栈中?

最佳答案

str1 和 str2 永远不会有任何同步失败,因为这些变量是字符串,并且字符串类在 Java 中是不可变的。

关于java - 哪里需要同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654570/

相关文章:

java - 创建一个用于计时的线程并重新启动另一个线程

java - 我可以在 J2ME 中使用 HashMap 吗?

java - "?"和 ":"在 boolean 语句中做什么?

java - xsd 验证失败

c++ - 其他线程是否总是以相同的顺序看到不同线程中对同一位置的两次轻松写入?

java - 多线程 : java condition await timeout but can't return

Java deleteCharAt 函数

java - 如何将此代码片段变形为逻辑取决于索引值的 Java 8?

Python Concurrency ThreadPoolExecutor - 如果满足条件则停止执行

sql - 同时并发写入的长数据库查询结果