这道题目java面试比较多,求大神解答他的输出值。并讲个道理呗

程序首先会在这个String内存中寻找相同值的对象,也就是找到具有相同值的s1,然后s3引用了s1所引用的对象,也就是说s3与s1指向了同一个存储“Programming”字符串的地址。第三,看String的intern()方法描述就知道,该方法返回字符串对象的规范化表示形式,也就是返回字符串本身,所以true。
这道题目java面试比较多,求大神解答他的输出值。并讲个道理呗
输出值分别是:
false
true
true

这个“==”号,对于引用型变量来说,不只是要判断变量的值,更主要表示的是两个变量在堆中存储的地址是否相同。
第一,程序一开始在内存中创建了s1=“Programming”的对象,接着又来了个s2=new String("Programming"),注意,s2使用new操作符,所以系统会new一个对象出来,也就是再新建一个对象,所以s1和s2就不会在同一内存地址上。因此为false。记住了,凡是有new的对象,其创建出来的内存地址肯定不一样。
第二,“Program”+“ming”这两字符串相+,结果就是“Programming”,所以就相当于s3=“Programming”,而在创建s3对象时,程序首先会在这个String内存中寻找相同值的对象,也就是找到具有相同值的s1,然后s3引用了s1所引用的对象,也就是说s3与s1指向了同一个存储“Programming”字符串的地址。
第三,看String的intern()方法描述就知道,该方法返回字符串对象的规范化表示形式,也就是返回字符串本身,所以true。2016-11-29
mengvlog 阅读 49 次 更新于 2025-10-31 06:05:45 我来答关注问题0
  • 第二,“Program”+“ming”这两字符串相+,结果就是“Programming”,所以就相当于s3=“Programming”,而在创建s3对象时,程序首先会在这个String内存中寻找相同值的对象,也就是找到具有相同值的s1,然后s3引用了s1所引用的对象,也就是说s3与s1指向了同一个存储“Programming”字符串的地址。第三,...

  •  赛玖百科小窍门 Java面试题分享-Spring

    ThreadLocal:Spring通过ThreadLocal将有状态的变量本地线程化,达到另一个层面上的线程无关。ThreadLocal为每个线程提供独立的变量副本,从而避免了多线程并发问题。6. Spring MVC工作原理答案:Spring MVC框架围绕DispatcherServlet这个核心展开,它负责拦截请求并将请求分派给相应的处理器处理。请求处理流程:客...

  •  誉祥祥知识 Java高频面试题日更挑战「Day10」

    数据结构优化为 Node 数组 + 链表/红黑树。Node 结构类似 Java7 的 HashEntry。当冲突节点数量超过阈值时,链表转为红黑树;节点数量低于阈值时,恢复为链表。线程池大小如何设置?CPU 密集型任务:配置原则:线程数 = N(CPU 核心数) + 1。原因:CPU 密集型任务主要消耗 CPU 资源,多出的 1 个...

  •  文暄生活科普 Java常见面试题整理(带答案)——Mybatis

    如String str = param + "%";SQL拼接:在SQL语句中,拼接字符串后再执行like。如where name like 'yang' || '%'(注意:不同数据库字符串拼接操作符可能不同,如MySQL使用CONCAT)。标签拼接:在xml标签中为参数添加'%',再将标签ID传入SQL语句中(这种方式较少使用,通常通过前两种...

  •  赛玖久生活日记 Java面试题分享-Netty

    Java面试题分享-Netty1. BIO、NIO和AIO的区别是什么?BIO(Blocking I/O):一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理,线程开销大。伪异步IO将请求连接放入线程池,一对多,但线程资源仍然宝贵。NIO(Non-blocking I/O):一个请求一个线程,但客户端发送的连接请求...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部