例一:

String s0="HF";
String s1=new String("HF");
System.out.println(s0==s1);

输入为什么是false呢?

例一解释

"=="表示的是地址是否相等。equals表示两个字符串的值是否相等,如果为s0.equals(s1)则返回true。

程序执行时,会在栈里分配两块空间s0 s1,在堆空间里存储对象。内存分配图如下:

例二:

(1) String s1="123";
String s2="123";
s1变量先在栈中,然后在堆中开辟一个空间存储"123"
(直接赋值,例如String s1="123")这个字符串存储在
一个特殊的区域----常量池,
在s2创建字符串"123"之前会先寻找堆中的常量池是否有
对象"123",如果有就直接指向已经存在的"123"
没有的话就重新开辟一个新空间存储在常量池中

(2)String s1=new String("123");
String s2=new String("123");
变量s1先在栈中存储,然后在堆中开辟一个空间存储"123",
s2创建字符串"123",直接再开辟新空间存储"123".

最新文章

  1. iOS开发 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
  2. json pickle time
  3. linux下shell编写九九乘法表
  4. 简洁的java代码
  5. android webview开发问题及优化汇总
  6. Shader 简明入门教程
  7. Scala之类型参数和对象
  8. 使用clssneme改变图片或样式
  9. HTML和JSON的数据交互-jsonp跨域
  10. [转载]C#导入XLS数据到数据库
  11. MySql配置参数很全的Mysql配置参数说明
  12. Hibernate中3种结果转换的详细说明(转)
  13. SumoLogic
  14. Ubuntu上安装flashplayer
  15. tee 命令详解
  16. 记录一则ASM实例阻塞,rbal进程异常的案例
  17. inotify+rsync文件实时同步报错:usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0:
  18. 10、Typescript-类的基本用法
  19. 黑客常用dos-cmd命令
  20. Win10 快捷命令收集

热门文章

  1. 利用FFmpeg生成视频缩略图 2.3.1
  2. 纯css3 加载loading动画特效
  3. 一台机器开2个Tomcat修改端口号
  4. 开源混淆工具ProGuard配置详解及配置实例
  5. 爱情之路(codevs 2070)
  6. android中src和background区别
  7. WPF中的常用类汇总:
  8. [译] Web API 之 简介
  9. wp8 入门到精通
  10. ==与equals()的区别