Java String 学习笔记 (一)
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 学习笔记 (一)相关推荐
- 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结
Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...
- Java中大数据数组,Java基础学习笔记之数组详解
摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...
- Java IO学习笔记总结
Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...
- java多线程学习笔记。
java多线程学习笔记 线程的优缺点: 多线程的好处: 充分利用多处理核心,提高资源的利用率和吞吐量. 提高接口的响应效率,异步系统工作. 线程的风险: 安全危险(竞争条件):什么坏事都没有发生.在没 ...
- 尚学堂JAVA基础学习笔记_2/2
尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...
- JAVA视频学习笔记-马士兵(六)
`JAVA视频学习笔记-马士兵` 常用类_字符串相关类(20200614~16) 常用类_字符串相关类(20200617) 常用类_基本数据类型包装类(20200618) 常用类_Math类(2020 ...
- 五子棋人机大战(Java菜鸟学习笔记)
五子棋人机大战(Java菜鸟学习笔记) 逻辑是: 1.绘制棋盘: 2.人机开始各执行一次操作,每进行一次操作就进行判断输赢 其中判断输赢主要分成四个方向,横向.纵向以及交叉向,此时可以画图来找规律实现 ...
- java mail 学习笔记
JAVA MAIL 学习 笔记 电子邮件协议的简介 SMTP 简单邮件传输 SMTP是Simple Mail Transfer Protocol的简称,即简单邮件传输协议.该协议定义了邮件客户端软件和 ...
- 计算机、程序和 Java 概述 学习笔记
计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. 计算机包括硬件( hardware ) 和软件( software) ...
最新文章
- JAVA_weB中的一些配置
- 内核知识第九讲,32位下的分页管理,36位下的分页管理.以及64位下的分页管理
- dbca no protocol support
- oracle双机冷备方案,Oracle 11g双机冷备
- 风险策略中的五层决策
- ubuntu 下的开发板的环境配置
- FR跨SHEET条件汇总
- Linux操作命令(五)
- vscode保存代码,自动按照eslint规范格式化代码设置
- 无人机机架 无人机机架材料 无人机机架的尺寸计算 无人机机架结构图
- 计算机键盘灯光怎么关闭,电脑关机键盘灯一直亮着解决方法
- 飞鸽传书软件局域网传输文件
- kali Linux 系统安装教程
- 1194. 24点游戏
- 南安第五小学计算机老师,赞!南安市第五小学预计年底完工!
- Spark学习(6)-Spark SQL
- 数字图像处理总结(四)
- 如何将docx文本转换成使用微信小程序rich-text能编译的格式
- 初学者怎么记‘A‘,‘a‘,空格的ascii码?
- Mysql学习笔记(全)
热门文章
- dw服务器文件夹在哪里,Dreamweaver CC
- php程序访问mysql数据实现查询_PHP+MySql实现后台数据的读取
- 19年的华为手机还能搭载鸿蒙吗,2019年华为手机出货或超2.15亿部 鸿蒙系统最快10月首秀...
- java入职华为,通过这9个Java面试题,就可以入职华为啦
- java获取网络图片_有了这50套Java毕设项目(源码 案例),offer拿到手软,无偿分享...
- php 首页加背景图片,如何在页首添加一张背景图片
- 导出远程mysql数据库中的表_shell脚本实现导出远程mysql数据库表数据至本地
- spring注解工具类AnnotatedElementUtils和AnnotationUtils
- iis 日志 post数据_云原生日志的趋势(1):logscape和logiq
- C++11 std::function, std::bind, std::ref, std::cref