`
stuhack0303
  • 浏览: 14400 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

StringPool

    博客分类:
  • java
 
阅读更多

1)查找StringPool中是否存在"abc"这个对象

    不存在:则在StringPool中创建一个"abc"对象,然后将StringPool中的"abc"对象的地址返回回来,赋给引用变量aa,这样aa就会指向StringPool中的这个"aa"字符串对象

    存在:如果存在,则不创建任何对象,直接将StringPool中的这个"abc"对象地址返回给对象,赋给aa对象

 

例子:String aa = new String("abc"); new 就会创建新的对象(堆)

    首先在StringPool中查找有没有"abc"对象

    不存在:在StringPool去创建“abc”这个对象,然后在堆中创建一个"abc"字符串对象,然后将堆中的“abc”对象地址返回回来,赋给aa

    存在:则不在StringPool中再去创建“abc”这个对象,直接在堆中创建一个“abc”字符串对象,然后将堆中的“abc”对象地址返回回来,赋给aa

 

 

 

     String hello = "Hello";

     String lo = "lo";

     System.out.println((hello == "Hello") + " ");//true

     System.out.println((Other.hello == hello) + " ");//true

     System.out.println((hello == ("Hel"+"lo")) + " ");//true

     System.out.println((hello == ("Hel"+lo)) + " ");//常量加变量,生成新的字符串对象,返回false

     System.out.println(hello == ("Hel"+lo).intern());//true

分享到:
评论

相关推荐

    Java字符串池(String Pool)深度解析.docx

    Java字符串池(String Pool)深度解析.docx

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

    在JDK6.0中,StringTable的长度是固定的,长度就是1009,因此如果放入String Pool中的String非常多,就会造成hash冲突,导致链表过长,当调用String#intern()时会需要到链表上一个一个找,从而导致性能大幅度下降;...

    jodd java工具类库,包括数据库mvc依赖注入等等

    jodd java工具类库,包括数据库mvc依赖注入等等

    Android代码-android-manifest-parser

    AndroidManifest解析器 一个纯Java、实现了SAX接口、无任何第三方依赖的 AndroidManifest.xml 解析工具。 AndroidManifest.xml文件格式 ... String Pool Offset 4bytes // 字符串常量池相对于Chunk偏移值 Sty

    java jdbc帮助类 v1.0 自带连接池

    java jdbc帮助类 v1.0 自带连接池 boolean delete(java.lang.String sql) 删除单条记录的方法,适用于... boolean update(java.lang.String sql, java.lang.String poolName) 更新一条记录,适用与简单的update语句

    Android知识体系梳理(4)-Java基础篇-Object方法分析,String的深度解析,String Pool分析,与StringBuilder、StringBuffer的对比

    五、Object的方法介绍和String解析 有的同学要问了,Object和String是我们这一块儿日常一直在使用的东西,为什么要单独拎出来讲呢?其实,他们使用起来虽然简单,但比如Object类是位于java.lang包中的,java.lang是...

    jdbc 帮助类 java 自带连接池 v1.01

    void setPoolName(java.lang.String poolName) boolean update(java.lang.String sql, java.util.Map,java.lang.Object> elements) 根据输入的参数执行更新操作 boolean update(java.lang.String sql, java...

    String字符串比较1

    第二个由new在堆里产生一个值为"abc"的对象,该对象完全是String Pool里的"abc"的一个拷贝 第二个+号两边有一个是变量,此时,java会在堆里

    async-http-client-1.6.3.jar com.ning.http.client.jar

    java 工具包, async-http-client-1.6.3.jar com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class ...com.google.gson.Gson.class ...com.google.gson.stream.StringPool.class

    java jdk8 学习笔记

    2.动态加载类别文档、字符串池(String Pool)等特性为节省内存而设计 3.jdk java development kit java 开发工具集 java se 平台包括jdk与java语言 ,(不知道编程语言是什么?可以这样想 :java 语言 ->类文件...

    数据连接池

    String maxconn = props.getProperty(poolName + ".maxconn", "0"); int max; try { max = Integer.valueOf(maxconn).intValue(); } catch (NumberFormatException e) { log("错误的最大连接数限制: " + ...

    基于javatcpsocket通信的拆包和装包源码-Java-Note:Java自学

    Pool? 基本类型中的缓冲池? 什么时候使用缓冲池的数据? String, StringBuffer, StringBuilder区别? 数组定义: String a[10]; 正不正确? 数组等号左边能不能出现数字? System.out.println(25 + "" + 10 + 5); 输出...

    java7hashmap源码-Interview:面试宝典

    Pool 字符串创建方式 String str = "interview"; //采用字面值的方式创建:JVM首先会去字符串池中查找是否存在"interview"这个对象。如果不存在,则在字符串池中创建这个对象。如果存在,则直接将池中的"interview...

    系统自动生成简单的代码生成器

    1.引入pom依赖 ... mybatis-plus-generator 3.3.1.tmp org.springframework.boot spring-boot-starter-freemarker ...import com.baomidou.mybatisplus.core.toolkit.StringPool; import

    通过Apache common pool开源包实现对象池

    下面通过一个简单的样例来说明如何利用apache common pool来应用对象池。...也许本样例并不是很恰当,但是如何StringFormat换成是数据库连接就非常适合池技术了,此样例仅用于说明如何使用apache common pool池而已。

    对String的深入理解

    文字池[pool of literal strings]和堆[heap]中的字符串对象。 一、引用变量与对象:除了一些早期的Java书籍和现在的垃圾书籍,人们都可以从中比较清楚地学习到两者的区别。A aa;语句声明一个类A的引用变量aa[我常常...

    SpringBoot2.2+commons-pool2实现多Ftp连接池完整项目,开箱即用,经过长期生产使用稳定可靠

    使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...

    redis-2.1.0 和commons-pool-1.5.6 Java测试redis values 类型

    资源包下载既可以测试java与redis的配置效果,里面有测试redis存值的类型(set String list SortedSet key )

    memory-pool:全局、线程安全的内存池

    memory_pool :: borrow ( | aux: & mut String | { aux. push_str ( "Do you like cupcakes?" );});memory_pool :: borrow ( | vec: & mut Vec < u32> | { vec. push ( 1 ); vec. push ( 2 ); vec. push ( 3 );}); ...

    node-odbc-pool:节点的ODBC模块的连接池

    节点-odbc池 基于通用池的node-odbc连接池。 描述 这是一个连接池模块,为遇到的每个连接字符串创建通用池的实例。 使用此池模块可以获得使用通用池模块的所有好处,包括最小和最大... ODBC_CONNECTION_STRING , functi

Global site tag (gtag.js) - Google Analytics