1 最近几个同学面试的时候出现了这样一个问题

  刚听到这个题目的时候的确是不知所措:

经过网上的查找和自己的理解来解释一下这个题目的答案

答案是:

为什么呢???

1 实现我们都知道创建实例有两种方法

  (1)一是用new来创建

  (2)二是同过放射实例来创建,(classs.newInstances)

  所以这就很好的解释了一种情况了

  第二

  对于String 类型的还有一种文本创建方式,就是下面我所说的这种

  String a="abc";

  因为String 是一个final类,JVM虚拟机在他的底层是通过一个字符串池来进行判断的,如果底层没有则创建,如果有则不在创建

  同时这种创建方式还有一个特别的地方,

  String a="bc" 是创建了一次

  String a="ab"+"cd";
  由于常量的值在编译的时候就被确定了。在这里,"ab"和"cd"都是常量,因此变量a的值在
  编译时就可以确定。这行代码编译后的效果等同于:
  Java代码
  String a="abcd";
  因此这里只创建了一个对象"abcd",并且它被保存在字符串池里了。

  String s = new String ("ab")+"c"创建了几个对象

  创建了2个对象,new string(“ab”)将创建一个string对象;
  String s 将创建第2个string对象。
  “c”是常量在编译的时候就已经作为常量赋值了,不会创建新的对象。
  故共2个。

String s = new String("aa") 创建了几个对象?的更多相关文章

  1. Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final

    笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...

  2. String是否相等、new的时候创建了几个对象等问题详解

    问题一 这段代码创建了几个对象? String str1 = new String("aa"); 答案是两个 "aa"对象和String对象 Java代码在编译 ...

  3. String,你到底创建了几个对象????

    String str=new String("aaa"); 这行代码究竟创建了几个String对象呢?答案是2个,而不是3个.由于 new String("aaa&quo ...

  4. [转] 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧

    这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的. 本来因为见得太多已经吐槽无力,但这次实在忍不住了就又爆发了一把.写得太长干脆单独开了一帖. 顺带广告:对JVM感兴趣的同学们同志们 ...

  5. 关于String s = new String("xyz"); 创建几个对象的问题

    引用自这位朋友:http://blog.sina.com.cn/s/blog_6a6b14100100zn6r.html 你知道在java中除了8中基本类型外,其他的都是类对象以及其引用.所以 &qu ...

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

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

  7. Java JVM 请别拿“String s=new String("z");创建了多少实例”来面试 [ 转载 ]

    Java 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧 [ 转载 ] @author RednaxelaFX 原文链 ...

  8. java中String s = new String("abc")创建了几个对象?

    答案是两个,现在我们具体的说一下: String s = new String("abc");一.我们要明白两个概念,引用变量和对象,对象一般通过new在堆中创建,s只是一个引用变 ...

  9. String s=new String("abc")创建了几个对象?

    String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 答案应该是1个或者2个. 1个 ...

随机推荐

  1. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

  2. Ubuntu shortcuts

    Ubuntu shortcuts 打开系统管理器 gnome-system-monitor

  3. Android onConfigurationChanged的作用

    API原文说明: android:configChangesLists configuration changes that the activity will handle itself. When ...

  4. Talking Ben App砸壳记

    需求: 导出Talking Ben app的头文件 实施: 1)准备材料: 越狱IOS设备一部,并安装Talking Ben游戏 IOS设备上安装open SSH IOS设备的/usr/bin 中安装 ...

  5. webapi中常用attribute标签

    HTTP Methods Instead of using the naming convention for HTTP methods, you can explicitly specify the ...

  6. aspnet5备忘

    1. 在Windows下面运行cmd,然后执行下面的命令 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&am ...

  7. genymotion模拟器配置Genymotion-ARM-Translation 兼容包

    前提是你的adb的环境已经配置正确,不知道怎么配置的可参考http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html 如果还不成功的话 ...

  8. sqlserver 经典入门基础书籍

    1.SQLServer2005T-SQL数据库设计 作者:胡百敬等著 ISBN:10位[7121053632]13位[9787121053634] 出版社:电子工业出版社 出版日期:2008-1-1 ...

  9. Openlayer 3 的画图测量面积

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. python2.7学习记录之三

    1.连接数据库 MySQLdb的是一个接口连接到MySQL数据库服务器从Python.它实现了Python数据库API V2.0,并建上的MySQL C API的顶端. 下载地址:https://so ...