java必须知道的3个String的问题
来源:互联网 发布:淘宝仓管是做什么的 编辑:程序博客网 时间:2024/06/06 12:36
java必须知道的3个String的问题
今天看了一个帖子感觉挺不错的,想总结一下。
String声明问题
String str = "Hello Java!".这句话是指我们声明了一个可以指向任何String类型数据的引用变量str。str此时指向的是内存中的一个匿名对象"Hello Java!",而不是声明了一个对象。这就是为什么我们再声明一个引用变量:String str1 = "Hello Java"时。str == str1的结果是true .如果是String str2 = new Sting(“Hello Java!”);的话,str == str2的结果是false。因为引用类型比较的是地址,而str 和str1 保存的都是同一个地址。
“==”和”equal”的区别
==比较的是两者的值是否相等,引用变量的值是一个地址。所以引用变量比较的是两个地址,如果想要比较两个引用类型的内容是否相等必须使用equal(Object object)方法。
因为在Object类中equal()方法是这样写的:
boolean equals(Object o){
return this==o;
}
所以,如果你自己写的类不重写equal()方法的话,equal()方法的作用等同于“==”。
String的不可变问题
String类型是不可变的,如:
String str =“a”;
String str1 =str+“b”;
这时在内存中字符串“a”并没有改变,而是在内存申请了一个新的字符串内容是“ab”。
所以会大量占用内存,所以出现了StringBuffer类可以实现可以增长的字符串功能,节省内存。
- java必须知道的3个String的问题
- Java必须知道的300个问题
- java程序员必须知道的50个问题 转载
- java程序员必须知道的50个问题 转载
- 15 个必须知道的 Java 面试问题
- 你必须知道的261个Java语言问题-目录
- java必须知道的300个问题(一)
- 你必须知道的261个Java语言问题
- 你必须知道的261个Java语言问题
- 你必须知道的261个Java语言问题
- 《Java必须知道的300个问题》读书总结
- 15 个必须知道的 Java 面试问题
- 《Java必须知道的300个问题》学习笔记
- 你必须知道的261个Java语言问题笔记- Java流和文件操作3
- <你必须知道的261个Java语言问题>3、4章读书笔记
- JAVA中必须知道的问题
- SEOer必须知道的3个误区?
- 你必须知道的261个Java语言问题笔记-Java基本概念及环境配置
- iframe的父页面、子页面相互调用
- acm学习网站
- PHP高级特性基础
- android如何让service不被杀死
- 《C++程序设计语言》6.6_13 字符串的拼接
- java必须知道的3个String的问题
- 如何让service被管理器杀死后自动重启
- php 过滤html标记属性类
- 海量数据处理:十道面试题与十个海量数据处理方法总结
- 《C++程序设计语言》6.6_16 包含数字的C风格字符串为参数, 返回与之对应的int值
- JSP中<base href="<%=basePath%>">作用
- 上机热身赛总结
- Warning C4819:The file contains a character that can ot be represented in the current code page(936)
- 【Android】Intent中使用Extra传递数据