2019独角兽企业重金招聘Python工程师标准>>>

###String 简介

String 并非java的8大基本数据类型之一。

java中基本数据类型存储在栈内存中。而String不是,新new的String 对象存储在堆内存中。而字符串存储在常量池中。String对象的引用存储中栈内存中。

String的实例化方式

String对象有两种实例化方式

    String str1 = new String("ABC"); //第一种String str2 ="ABC";              //第二种

第一种new的方式:javap反编译的结果为

       0: ldc           #2                  // String ABC2: astore_1      3: new           #3                  // class java/lang/String6: dup           7: invokespecial #4                  // Method java/lang/String."<init>":()V

整个过程大致可解释为:

  • a. 常量池中创建常量 'ABC';
  • b. 栈内存中创建引用
  • c. 堆内存中新建String对象,再初始化。

而第二种直接赋值的方式虚拟机运行的结果如下:

       0: ldc           #2                  // String ABC2: astore_1

这里可以很清楚的看出,直接在常量池中创建‘ABC’字符串,指向引用str2

由此可以看出第二种方式明显比第一种更高效。 其实经过测试:

    String s = new String("ABC");//等价于下面两步(唯一的区别就是在栈中多了一个指向'ABC'的引用s1)String s1 ="ABC";String s2 = new String(s1);

转载于:https://my.oschina.net/mercyyang/blog/707565

Java String 学习笔记 (一)相关推荐

  1. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结

    Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...

  2. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

  3. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  4. java多线程学习笔记。

    java多线程学习笔记 线程的优缺点: 多线程的好处: 充分利用多处理核心,提高资源的利用率和吞吐量. 提高接口的响应效率,异步系统工作. 线程的风险: 安全危险(竞争条件):什么坏事都没有发生.在没 ...

  5. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  6. JAVA视频学习笔记-马士兵(六)

    `JAVA视频学习笔记-马士兵` 常用类_字符串相关类(20200614~16) 常用类_字符串相关类(20200617) 常用类_基本数据类型包装类(20200618) 常用类_Math类(2020 ...

  7. 五子棋人机大战(Java菜鸟学习笔记)

    五子棋人机大战(Java菜鸟学习笔记) 逻辑是: 1.绘制棋盘: 2.人机开始各执行一次操作,每进行一次操作就进行判断输赢 其中判断输赢主要分成四个方向,横向.纵向以及交叉向,此时可以画图来找规律实现 ...

  8. java mail 学习笔记

    JAVA MAIL 学习 笔记 电子邮件协议的简介 SMTP 简单邮件传输 SMTP是Simple Mail Transfer Protocol的简称,即简单邮件传输协议.该协议定义了邮件客户端软件和 ...

  9. 计算机、程序和 Java 概述 学习笔记

    计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. 计算机包括硬件( hardware ) 和软件( software) ...

最新文章

  1. JAVA_weB中的一些配置
  2. 内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理
  3. dbca no protocol support
  4. oracle双机冷备方案,Oracle 11g双机冷备
  5. 风险策略中的五层决策
  6. ubuntu 下的开发板的环境配置
  7. FR跨SHEET条件汇总
  8. Linux操作命令(五)
  9. vscode保存代码,自动按照eslint规范格式化代码设置
  10. 无人机机架 无人机机架材料 无人机机架的尺寸计算 无人机机架结构图
  11. 计算机键盘灯光怎么关闭,电脑关机键盘灯一直亮着解决方法
  12. 飞鸽传书软件局域网传输文件
  13. kali Linux 系统安装教程
  14. 1194. 24点游戏
  15. 南安第五小学计算机老师,赞!南安市第五小学预计年底完工!
  16. Spark学习(6)-Spark SQL
  17. 数字图像处理总结(四)
  18. 如何将docx文本转换成使用微信小程序rich-text能编译的格式
  19. 初学者怎么记‘A‘,‘a‘,空格的ascii码?
  20. Mysql学习笔记(全)

热门文章

  1. dw服务器文件夹在哪里,Dreamweaver CC
  2. php程序访问mysql数据实现查询_PHP+MySql实现后台数据的读取
  3. 19年的华为手机还能搭载鸿蒙吗,2019年华为手机出货或超2.15亿部 鸿蒙系统最快10月首秀...
  4. java入职华为,通过这9个Java面试题,就可以入职华为啦
  5. java获取网络图片_有了这50套Java毕设项目(源码 案例),offer拿到手软,无偿分享...
  6. php 首页加背景图片,如何在页首添加一张背景图片
  7. 导出远程mysql数据库中的表_shell脚本实现导出远程mysql数据库表数据至本地
  8. spring注解工具类AnnotatedElementUtils和AnnotationUtils
  9. iis 日志 post数据_云原生日志的趋势(1):logscape和logiq
  10. C++11 std::function, std::bind, std::ref, std::cref