`
12616383
  • 浏览: 51716 次
  • 性别: Icon_minigender_1
  • 来自: 待定
社区版块
存档分类
最新评论

学习 臧圩人的面试题详解后总结 及费解的问题

阅读更多
 

 1  怎么样的对象在编译类时就放入字符串池中?

 

  只有 定义为 final  并且在初始化时赋值的 字符串常量,才会在编译时就放入字符串池中的。

 

 因为变量是在调用时才能确定其值的,所以在编译时不会将变量放入常量池中的。

 

 也就是说只有常量才会放入字符串池中的。

 

2 关于“ + ”

 

  只有两个引号包含文本的对象 相“+” 才会放入字符串池中。也就是前面说过的---只有常量才会放入字符串池中的。

 

 

 

3 关于 String.intern

 

 

    String a = "ab";
   String b = "cd";
   String c = "abcd";
   
   String a2 = a.intern();
   
   if("ab"==a2){
    System.out.println("a2 放入字符串池中");
   }else{
    System.out.println("a2 没有放入字符串池中");
   }
   
   String a3 = "ab"+"cd";
   
   if("abcd"==a3){
    System.out.println("a3 放入字符串池中");
   }else{
    System.out.println("a3 没有放入字符串池中");
   }
   
   
   String a4 = a.intern()+b.intern();
   
   if("abcd"==a4){
    System.out.println("a4 放入字符串池中");
   }else{
    System.out.println("a4 没有放入字符串池中");
   }
   
   
   String a5 = a3.intern();
   
   if("abcd"==a5){
    System.out.println("a5 放入字符串池中");
   }else{
    System.out.println("a5 没有放入字符串池中");
   }
   

 

   输出结果:

            a2 放入字符串池中
            a3 放入字符串池中
           a4 没有放入字符串池中
           a5 放入字符串池中

 

 

  jdk    给出  intern()    的解释是:

 

           返回字符串对象的规范化表示形式。

           一个初始为空的字符串池,它由类 String 私有地维护。

           当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确          定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。

         它遵循以下规则:对于任意两个字符串 st,当且仅当 s.equals(t)true 时,s.intern () == t.intern() 才为 true

 

 

问题:

   当 a2 = a.intern 时,池中已经有“ab” 所以输出为放入字符串池

   同理  a.intern 时返回的是“ab”;

 

   但是  同理  哪么  String a4 = a.intern()+b.intern();  应该就等于  ="ab"+"cd"; 等于String a3 = "ab"+"cd";

   但是返回的结果却是字符串池中有a3,没有a4,哪么  a.intern()+b.intern();   返回的应该是什么?

 

 

  当 a4执行完后   执行 String a5 = a3.intern();
  返回是 a5 放入字符串池中   就是说 a4 执行得到结果不是“abcd” 而是另一个对象“????”

  因为字符串池中没有“????”, 所以放入字符串池中,所以 执行a5 的时候 池中是有“????”这个对象的

 

  哪么 String a4 = a.intern()+b.intern();   到底返回的“????” 到底是什么

 

 

问题已经解决:

 

 虽然 a.intern()+b.intern() 返回的是“ab”+“cd”   但是他们的值是在创建对象的相加运算的时候才确定的值,也就是  说他们 是变量,是不没有放入常量池中   

分享到:
评论

相关推荐

    臧圩人--JAVA面试题解惑系列合集.pdf

    ### JAVA面试题解惑系列知识点概览...整体来看,臧圩人的《JAVA面试题解惑系列合集》覆盖了Java语言的多个核心领域,从基础知识到高级特性,旨在全方位提升Java初学者的技能水平,使其在面试和实际项目中更加游刃有余。

    《经典JAVA面试题解惑系列合集(臧圩人)》

    《经典JAVA面试题解惑系列合集(臧圩人)》这本书很可能就是针对这些问题进行深入解析的一本指南。 首先,Java的基础知识是面试中的必考部分。这包括但不限于Java语法、数据类型、控制结构(如if语句、for循环、...

    JAVA笔试面试题详解.pdf

    JAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdfJAVA笔试面试题详解.pdf...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...

    [ 数据通信面试篇 ] 数通面试题大集合(详解)

    [ 数据通信面试篇 ] 数通面试题大集合(详解),看完直怼面试官(合集).rar 包含五个文档,文档质量可以去看我的文章: [ 数据通信面试篇 ] 数通面试题大集合(详解),看完直怼面试官(一)到(五)

    FPGA面试题及答案总结

    在FPGA面试题中,往往会深入考查应聘者对于同步逻辑与异步逻辑、时序设计、建立时间与保持时间、亚稳态、系统最高速度计算以及流水线设计思想的理解和应用。 首先,同步逻辑与异步逻辑是两种不同类型的数字电路设计...

    上海Linux运维工程师-面试题-个人总结).docx

    上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结)...

    测试开发学习路线及面试题

    测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发学习路线及面试题测试开发...

    MySQL重点面试题知识点总结/面试能力强化

    MySQL重点面试题知识MySQL重点面试题知识点总结/面试能力强化MySQL重点面试题知识点总结/面试能力强化MySQL重点面试题知识点总结/面试能力强化MySQL重点面试题知识点总结/面试能力强化MySQL重点面试题知识点总结/...

    2023最新JAVA面试题集

    BTA 常问的 Java基础39道常见面试题及详细答案 Dubbo面试题 47道 ElasticSearch面试题 30道 Git常用命令面试题 60道 Java并发编程最全面试题 123道 Kafka知识汇总 18道 Linux面试题 50道 Memcache 面试题 23道 ...

    再励学习面试真题

    再励学习面试真题 强化学习是机器学习的一种方法,通过试验和错误来提高学习效率,提高智能体的决策能力。强化学习的应用非常广泛,包括推荐系统、游戏 AI、机器人控制等领域。在本文中,我们将从基本概念到高级...

    一份就够!史上最全面Python面试题和详解(10个文件)看完啥都会了.zip

    文档“python面试题搜集(六):110道Python面试题(上).md”和“python面试题搜集(六):史上最全python面试题详解(三).md”可能包含更多实战性问题,涉及Python性能优化、并发编程、设计模式以及Python与其他...

    Java面试题答案详解.rar

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。..."Java面试题答案详解"这份资源将涵盖以上所有知识点,并提供具体的问题和解答,帮助求职者在面试中表现出色,提升自己的Java技能水平。

    史上最详细的一线大厂Mysql面试题详解

    MySQL一直是面试中的热点问题,也难道了很多的面试者。其实MySQL没那么难,只是...1.史上最详细的一线大厂Mysql面试题详解 2.强烈推荐MySQL面试题和答案(仅供参考) 3.MySQL面试题(含答案) 有需要的可以下载观看。

    51单片机原理面试题

    "51单片机原理面试题详解" 单片机原理面试题是IT行业中非常重要的一部分,了解单片机的原理和应用是每一个IT从业者必须掌握的知识。本文将对51单片机原理面试题进行详细的解释和分析。 单片机是将微处理器、一定...

    JAVA面试题解惑系列.rar

    这个压缩包可能包含了两本书籍,一本是"JAVA面试题解惑系列.pdf",另一本是"臧圩人--JAVA面试题解惑系列合集.pdf"。这些资源旨在帮助求职者准备Java开发相关的面试,提升他们对Java技术的理解和应用能力。 在Java...

    【大厂面试题】史上最详细的一线大厂前端面试题详解及其答案

    【大厂面试题】史上最详细的一线大厂前端面试题详解及其答案 目录: 1、如何避免CDN为PC端缓存移动端页面 2、响应式开发剖析 3、页面渲染原理剖析 4、HTTPS工作流程 5、js防抖和节流剖析 6、js解决获取浏览器的唯一...

    牛客大数据面试题集锦+答案,共523道,46W+字。大厂必备

    以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,就只能看自己了,毕竟每个人简历、实习、项目等都不一样。面试题...

    个人面试题总结(java,数据库,前端).zip

    文件中包含了本人最近在网上总结的面试题,有java面试题,jq面试题,jsp、servlet、ajax面试题,mysql面试题,oracle面试题,redis教案,也有最近时间总结的公司面试题,涉及的层面虽然不是很多,但是应对面试 应该...

Global site tag (gtag.js) - Google Analytics