`
m635674608
  • 浏览: 5027367 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

jdk6 vs jdk7 string intern 区别

 
阅读更多
package com.goods;
class Test
{
	
 /**
  * jdk6 vs jdk7 string	intern 区别
  * 6:将字符串加入常量池.返回常量值。(不改变当前引用)
  * 7:将字符串加入常量池.返回常量值。(改变当前引用)1、判断常量池中是否有该值,没有的话将该字符串加入常量池,并返回常量值,2.常量池中有的话,就返回当前的内存地址
  * @param args
  */
 public static void main(String... args)
 {
  
 
	 
  String s1="Good";
  s1=s1+"morning";
  System.out.println(s1.intern());
  
  String s2="Goodmorning";

 //jdk6 intern返回字符串常量 == true
  System.out.println(s1.intern()==s2);
  //jdk 6 s1 新对象 ==false 
  System.out.println(s1==s2);
  
  
  //jdk7 intern返回字符串常量 == true
  System.out.println(s1.intern()==s2);
  //jdk7 ==true 
  System.out.println(s1==s2);
  
 }
}

 

分享到:
评论

相关推荐

    jdk1.8之后的String.intern()方法内存分析

    关于String.intern()方法,这个问题都被问烂了,有的文章在分析的时候还在用jdk1.7,jdk1.8之后内存模型发生了变化,内存的变化也会影响intern方法的执行,这里有必要写文章分析一下,请大家务必从头开始看,这样...

    不同jdk版本下对String的intern()的分析.pos

    pos文件是ProcessOn的源文件,可以导入后直接打开编辑。 内容是:不同jdk版本下对String的intern()的分析

    jdk6-8String类

    在JDK的不同版本中,`String`类经历了一些优化和改进,尤其是在性能和内存管理方面。这里我们将对JDK 1.6、1.7和1.8中的`String`类进行对比研究,探讨其中的关键变化。 ### JDK 1.6中的String 在JDK 1.6中,`...

    jdk_bo_8.0.1310.11_32bit-JAVA.7z

    6. **String的改进**:如重复字符串创建、更高效的intern()方法等。 7. **并发库增强**:如ForkJoinPool和CompletableFuture,增强了多线程编程的能力。 8. **安全增强**:加强了对Java安全模型的控制,包括改进的...

    jdk1.7+jdk1.8

    标题中的"jdk1.7+jdk1.8"指的是两个不同版本的JDK,分别是Java 7和Java 8。这两个版本在Java发展历程中占据了重要的位置,各有其特色和改进。 **Java 7(JDK 1.7):** Java 7于2011年发布,它的主要更新包括: 1....

    Java jdk7.rar

    Java JDK 7,全称Java Development Kit 7,是Oracle公司发布的Java编程语言的一个重要版本。JDK是Java开发人员必备的工具集,包含了编译器、Java运行环境、调试工具以及各种API文档,用于编写、运行和调试Java程序。...

    jdk-8u291-windows-x64.rar

    - **String的优化**:Java 8对String进行了优化,如使用StringBuilder替换String进行字符串连接,以及使用String的intern()方法来节省内存。 5. **开发者工具**: - **JConsole**:用于监控Java应用程序的性能和...

    jdk-1.8_191(64-bit).zip

    - **String的`intern()`方法**:现在使用字符串池来提高性能,减少内存消耗。 安装JDK1.8_191后,开发人员可以利用其提供的工具和库进行Java应用程序的开发,同时享受该版本带来的性能优化和新特性的便利。无论是...

    java String的intern方法

    在JDK 1.6中,`String`的`intern()`方法的行为如下: 1. 当调用`intern()`时,JVM会检查字符串常量池中是否存在与当前`String`对象内容相同的字符串。 2. 如果找到匹配的字符串,`intern()`方法将返回常量池中该字符...

    jdk-7.0-windows-x64

    4. **字符串去重复**:`String`类新增了`intern()`方法,用于存储和重用相同的字符串实例,节省内存。 5. **开关语句增强**:允许在switch语句中使用字符串,增强了代码的可读性。 安装"jdk-7u75-windows-x64.exe...

    jdk-7u80-windows-x64.rar

    6. **字符串去重复**:String类新增了`intern()`方法的改进,能够更有效地处理字符串池,节省内存。 7. **改进的JMX(Java Management Extensions)**:更新了管理工具和API,方便监控和管理Java应用程序。 安装...

    【JDK】分析 String str=““ 与 new String()(csdn)————程序.pdf

    在Java编程语言中,String是最常用的类之一,用于处理文本数据。本文主要分析两种创建String对象的...在实际编程中,推荐使用字符串字面量或`String.intern()`方法来优化内存使用,特别是对于大量重复字符串的情况。

    StringTable.pdf

    2. **内存分布**:在JDK6及之前,StringTable位于JVM的永久代;JDK7开始,移到了Java堆;JDK8进一步改到了元空间,以减少永久代的内存压力。 3. **不可变性**:String对象是不可变的,一旦创建,其内容就不能改变。...

    提高java代码性能各种技巧

    字符串池可以使用自己定义的 Map<String, String> 或者使用 JDK 提供的 String.intern() 方法实现。 Java 6 中的字符串池 在 Java 6 中,字符串池是存储在 PermGen 中的固定的内存区域中。PermGen 的大小是固定的...

    通过String.intern()方法浅谈堆中常量池

    【String.intern()方法】 String类的intern()方法在Java中扮演着重要的角色,它涉及到字符串对象的内存管理和性能优化。这个方法的主要功能是检查当前字符串对象的值是否已经在Java虚拟机(JVM)的字符串常量池中...

    java源码之jdk源码

    - `java.lang.String`类是不可变的,了解它的内部实现,如字符数组、intern()方法和字符串池,有助于优化字符串操作。 9. **多线程(Multithreading)**: - `java.lang.Thread`类和`java.lang.Runnable`接口定义...

    字符数组的存储方式 字符串常量池.docx

    然而,从JDK7.0开始,`String#intern()`的行为有所变化,使得池中不仅可以存储字符串字面量,还可以存放堆内存中的字符串对象引用。这意味着动态生成的字符串,只要内容相同,也可能被放入字符串常量池。 接下来,...

    java-JVM-面试题

    - `String::intern()`:这个方法将字符串常量池中的字符串引用返回,如果不存在则添加到池中。在不同JVM实现中,行为可能有所不同。 5. **HotSpot虚拟机** - HotSpot是Oracle的JVM实现,从JDK 6开始广泛使用,...

Global site tag (gtag.js) - Google Analytics