要根据一个字符串实现同步
public void test(TaskInfo ti) {
synchronized (ti.getId()){
System.out.println("1111111111");
System.out.println("2222222222");
}
}
本意只想这个对象的id一样,就锁住代码。但是事实并不是这样,因为这个TaskInfo对象并不是一个,所以获取出来的id虽然值相等,但是这里并不是一个对象,这个类似于new String("1") != new String("1")
改造一下代码
public void test(TaskInfo ti) {
synchronized (ti.getId().intern()){
System.out.println("1111111111");
System.out.println("2222222222");
}
}
这样这个同步块就认为这个字符串是一个对象了,也就实现了根据相同的字符串实现同步块。
intern这个方法不是很常用,上网查了一下这个方法
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。 这也就不难理解了即使不是同一个对象里的id,只要值相同,就认为这两个字符串相同。
分享到:
相关推荐
在“intern project”这个项目中,我们可以看到涉及到了一些核心的IT技术,主要集中在Java、Spring框架以及Ajax方面。下面将分别对这三个关键知识点进行详细阐述。 首先,Java是一种广泛使用的面向对象的编程语言,...
2. **C++编程**:由于出现了".h"头文件,很可能项目是用C++进行的,因此涵盖了C++的基本语法、面向对象编程、模板、异常处理等概念。 3. **软件设计原则**:实习生可能需要遵循良好的软件设计原则,如单一职责原则...
【网络互联与Internet技术】是信息技术领域中的一个重要分支,它主要关注如何将各种类型的网络连接在一起,以便实现数据和信息的高效传输。本课程中,我们将会深入探讨现代互联网的结构、公用网络以及局域网网络等...
intern, 面向JavaScript的下一代代码测试 实习生面向人类的软件测试 实习生是一个完整的JavaScript测试系统,用于帮助你编写和运行一致的。高质量的JavaScript库和应用。 它可以被用来测试任何的JavaScript代码。...
String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...
JavaScript 自动化测试框架 Intern 是一个强大的工具,用于确保 JavaScript 应用程序的质量和稳定性。在现代软件开发中,测试是不可或缺的一部分,特别是在JavaScript这样的动态语言中,由于其灵活的语法,测试显得...
在Java编程语言中,`String`类是极其重要的,它提供了许多用于操作字符串的方法,其中之一便是`intern()`。深入理解`String#intern()`方法对于优化内存使用和理解Java的内存模型至关重要。`intern()`方法是一个非常...
Java String的intern用法解析 Java String的intern方法是Java中一个非常重要的方法,它可以将字符串常量池中的字符串对象返回给我们。今天,我们将深入探究Java String的intern用法解析,了解它的工作原理和应用...
laravel-intern.sql
Java String 中 intern 的深入讲解 Java String 中的 intern 方法是一个非常重要的概念,它可以将字符串对象存储在字符串常量池中,以便重复使用相同的字符串对象,减少内存的占用。下面我们将深入讲解 Java String...
C#中字符串优化String.Intern、IsInterned详解 C#中字符串优化是指在编程过程中对字符串进行优化,以减少内存占用和提高程序运行效率。在C#中,字符串是一种特殊的数据类型,它既是基元类型又是引用类型。在编译和...
Python 字符串的 Intern 机制是一种优化策略,用于提高字符串操作的效率,特别是当处理大量重复字符串时。在 CPython(Python 的默认实现)中,字符串的 Intern 机制基于字符串驻留技术,它确保所有值相同的字符串在...
"深入理解 Java String#intern() 内存模型" Java String#intern() 内存模型是 Java 语言中一个重要的概念,.string#intern() 方法是 Java 字符串常量池中一个重要的组件。字符串常量池是一个固定大小的 HashMap,桶...
在“my intern project”这个标题中,我们可以推断这是一个实习生完成的个人项目。实习生通常会在导师的指导下,选择或被分配一个特定的项目来提升自己的技能,理解实际工作环境中的问题,并应用所学理论知识。这种...
关于String.intern()方法,这个问题都被问烂了,有的文章在分析的时候还在用jdk1.7,jdk1.8之后内存模型发生了变化,内存的变化也会影响intern方法的执行,这里有必要写文章分析一下,请大家务必从头开始看,这样...
“intern-main”这个文件名可能是该实习项目的主程序或者核心代码库,包含了实习项目的核心内容或者指导材料。对于实习生来说,这个文件可能是他们工作的起点,包含了项目介绍、任务分配、开发环境配置、编程语言和...
蔚来实习存档_nio-intern
【标题】"700套高级简历模板(解压密码:intern021)" 提供的是一个包含大量高质量简历模板的资源集合,旨在帮助求职者制作出吸引眼球的个人简历,以提升在竞争激烈的就业市场中的竞争力。解压密码为“intern021”,...