今天遇到了一个面试题的选择,我当时真的没怎么在意,其实挺好玩的。

1.这条语句String s="a"+"b"+"c"+"d";一共创建了多少个对象()
A.1
B.4
C.6
D.7
这道题放在了第一题 没动脑子数了数 感觉是八个 但是没有选项 又数了数 难道是五个 还是没有选项 然后我就选了B... 
纯属瞎写了(主要是谁没事这么声明变量啊)
我的答案肯定不对啊 回来的路上仔细想了想 感觉应该是选择D.7个
因为:
  "a" "b" "c" "d" 各为一个,一共四个 然后 "ab" "abc" "abcd" 一共三个 我把s给算上了一个 所以是八个 如果不算 就是七个。
但是感觉还是有点别扭 后面的"a" "b" "c" "d"顶多算是常量,对于常量,编译时就直接存储它们的字面值而不是它们的引用,我感觉我想复杂了,感觉就一个对象(主要是看到这题也不可能直接选择A呀肯定会想的多一些)。
然后我回去试了试 然后查看编译后的class文件,呵,瞬间感觉自己当时太傻了,真的是没想到,编译器还是很聪明的,自己把这个很长(傻)的声明总结起来了,直接提取成String s = "abcd";然后根据这个想一下,当执行到这个变量的时候,会先去String常量池里找,如果没有的话肯定就会创建一个对吧,所以这道题我觉得应该选择A。
   
最重要的来了,我去网上搜了一下,好多人都在讨论这个问题。。。问题讨论传送(我觉得我肯定是和社会脱节了,主要当时看见这个题自然而然的和String s="a"+"b"+new String("c");这类题目联想到一起了,再加上自己有点紧张,哈哈,不能解释,这就是自己技术不行)
最后我查了几篇文章,感觉就是自己太自作聪明了,一看题就觉得面试官出的题目会有坑,然后就自作的想很多,其实这道题也是一种坑,只怪自己基础知识不扎实,看了这篇文章感觉明白了 文章传送
这道题虽然很小 但是还是记录一下吧 很容易就懵了 感觉这道题是很基础的一道面试题 我第一次遇到 是不是很幸运同时又很可悲呢。。。
基础啊~真的很重要!!!菜鸟要进步!!!
 

面试题之String s="a"+"b"+"c"+"d";的更多相关文章

  1. 一道印象深刻的面试题:String参数传递问题

    今天小菜去北京某知名公司面试,做了公司的面试题,然后就是轻松的面试. 面试过程中,面试官让我讲讲其中一个题是怎么选的答案,代码大致内容如下: public class StringTest{ publ ...

  2. JAVA面试题:String 堆内存和栈内存

    java把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存 在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配,当在一段代码块定义一个变量时,java就在栈中为这个变 ...

  3. 面试题之String str = new String("abc"); 创建了几个对象

    今天去面试的时候碰到了这个问题:String str = new String("abc"); 创建了几个对象,回来自己研究并查阅资料才发现答错了..网上的争论不少,有的说是两个, ...

  4. 面试题之-----String,StringBuffer,StringBuilder的区别

    String :字符串常量,值不能改变. String s="abc"; s=s+"def"; System.out.println(s); 输出结果为: ab ...

  5. java面试题之----String的intern

    When---什么时候需要了解String的intern方法: 面试的时候(蜜汁尴尬)!虽然不想承认,不过面试的时候经常碰到这种高逼格的问题来考察我们是否真正理解了String的不可变性.String ...

  6. Java基础面试题:String 和StringBuffer的区别

    package com.swift; import java.util.Date; public class Getclass_Test extends Date { public static vo ...

  7. 面试题:String类通用构造,拷贝构造,析构,赋值函数实现

    已知 String 类定义如下: class String { public: //通用构造函数 String(const char* str = NULL); //拷贝构造函数 String(con ...

  8. Java面试题:String、StringBuilder、StringBuffer区别

    String:不可变字符序列. StringBuilder:可变字符序列.效率高.线程不安全,适合单线程. StringBuffer:可变字符序列.效率低.线程安全,适合多线程. 效率从高到低:Str ...

  9. 【面试题】String类、包装类的不可变性

    不可变类的意思是创建该类的实例后,该实例的实例变量是不可改变的.Java提供的8个包装类和String类都是不可变类.因此String和8个包装类都具有不可变性. 就拿String类来说,通过阅读St ...

随机推荐

  1. 2013年各大小IT公司待遇,绝对真实,一线数据!(初版)

    本人西电硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:无名小公司有时也很给力哦以下绝对是各大公 ...

  2. 阶段5 3.微服务项目【学成在线】_day08 课程图片管理 分布式文件系统_06-分布式文件系统研究-fastDFS安装及配置文件说明

    3 fastDFS入门 3.1fastDFS安装与配置 3.1.1 导入虚拟机 对fastDFS的安装过程不要求学生掌握,可以直接导入老师提供虚拟机. 1.使用Vmware打开虚拟机配置文件“Cent ...

  3. web端安全测试工具

    https://www.cnblogs.com/ios9/p/7692373.html 十大web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web 站点上助一臂之力,也就是说在黑客“黑”你之前, ...

  4. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  5. Pyhthon3之使用__slots__

    正常情况下,我们定义了一个class,创建了一个class实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: >>> class Student( ...

  6. iOS-常见问题(错误和警告)

    1.storyboard连线问题    产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性.    解决:取消关联就没事了.     2.XXXXX ...

  7. 表格组件---bootstrapTable

    bootstrapTable中文官方网站http://bootstrap-table.wenzhixin.net.cn1.文件引用 //1.引用Jquery <script src=" ...

  8. 图像Resize中0.5像素中心对齐的问题

    目录 0.5像素对齐的问题 0.5像素对齐的问题 1. 问题提出 在进行图像缩放时,偶尔会看到一些比较奇怪的代码,其中有一个就是0.5像素中心对齐的问题,例如在OpenCV线性插值的代码中有类似如下操 ...

  9. 使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组

    背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...

  10. git学习链接---收藏----

    Github 创建新分支:https://blog.csdn.net/top_code/article/details/51931916Git易百教程:https://www.yiibai.com/g ...