• String s = new String("aa") 创建了几个对象?


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

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

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

    答案是:2

    为什么呢???

    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个。

  • 相关阅读:
    css常用属性
    html常用标签
    通讯录管理
    消息推送
    企业微信API开发前准备
    毕业设计-基于图像处理的垃圾分类系统2020.03.17
    毕业设计-基于图像处理的垃圾分类系统2020.03.15
    毕业设计-基于图像处理的垃圾分类系统2020.03.14
    毕业设计-基于图像处理的垃圾分类系统2020.03.13
    毕业设计-基于图像处理的垃圾分类系统2020.03.12
  • 原文地址:https://www.cnblogs.com/yaobolove/p/5066656.html
Copyright © 2020-2023  润新知