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. Java中的Math类的简单实用

    System.out.println(Math.PI);//获取PI的值 System.out.println(Math.E);//常量E int min = Math.min(5, 4);//求最小 ...

  2. iOS开发讯飞语音的集成

    1.进入官网注册账号,登陆,注册,应用. 2,下载sdk  导入系统库. 3,关闭bitcode 4,初始化讯飞语音. NSString * initString = [[NSString alloc ...

  3. win10桌面和手机的扩展API,判断是否有实体后退键API

    喜大普奔的win10 uap开发预览版终于出了,这次更新跟8.1的变化不是很大,但是将原本win8.1和wp8.1uap的分项目的形式,改为了整合成一个项目,经过一次编译打包成一个appx包,实现了无 ...

  4. 2016年团体程序设计天梯赛-决赛 L1-3. 出租(20)

    下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对 ...

  5. Python学习笔记_Chapter 4数据保存到文件

    1. What For 将基于内存的数据存储到磁盘上,达到持续存储. 2. HOW 方法一: 将数据写到文件中 常规的处理方式 #file.x被打开的文件,model打开文件的方式 out=open( ...

  6. 正方形网格 TRIANGLE_STRIP连接

    unsigned int vIdx = 0, iIdx = 0; for (unsigned int stripRow = 0; stripRow < stripRows; stripRow++ ...

  7. VS中调试时监控线程的最后错误代码

    进行调试的时候,监控线程的最后错误代码是非常有用的. 在 Microsoft Visual studio 中,Microsoft 的调试程序支持一个非常有用的特性,即可以配置 Watch 窗口,以便始 ...

  8. HttpClient模拟get,post请求并发送请求参数(json等)

    import java.io.IOException; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org. ...

  9. 模拟IIC协议时序

    IIC是飞利浦公司开发的两线式串行总线,主要应用在单片机和外围电子器件之间的数据通讯. IIC总线优点是节约总线数,稳定,快速,是目前芯片制造上非常流行的一种总线,大多数单片机已经片内集成了IIC总线 ...

  10. Python 常见的内置模块

    datetime datetime是python处理日期和时间的标准库 获取当前日期和时间 我们先看看如何获取当前的日期和时间: >>> from datetime import d ...