String的两种初始化方法讲解

所属分类: 软件编程 / java 阅读数: 42
收藏 0 赞 0 分享

前言:String的创建和初始化有两种方法,既可以用String str = new String("abc")创建一个字符串,也可以用String str = "abc"的形式创建。

1: String str = "abc"创建一个字符串的过程

  • 首先在常量池(方法区)中查找是否存在内容为"abc"的字符串对象
  • 如果不存在则在常量池中创建一个"abc"的字符串对象,并让str引用该对象
  • 如果存在则直接让str引用该对象

2: String str = new String("abc")创建一个字符串的过程

  • 首先定义一个str的String类型的引用并存放在栈中
  • 在字符串常量池中查看是否存在内容为"abc"字符串对象 
  • 若存在则跳过这个步骤,若不存在,则在字符串常量池中创建一个内容为"abc"的字符串对象。(前三步都是在编译时完成的)
  • 执行new操作,在堆中创建一个指定的对象"abc",这里堆的对象是字符串常量池“abc”对象的一个拷贝对象。
  • 让str指向堆中“abc”这个对象(也就是存储这个对象的在堆中的地址)

有时会问 String str = new String("abc")创建一个字符串的过程会创建几个对象?

答:一个或两个(因为编译时会检查方法区常量池中是否已经存在需要创建的字符串对象。若存在直接将引用指向常量池的对象,此时只会在随后的运行时堆中创建一个对象。而如果不存在,会先在常量池中创建一个对象,在随后的运行时还会在堆中再创建一个对象,所以此时会创建两个对象)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多