A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张迁 中级黑马   /  2013-5-9 21:28  /  1635 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张迁 于 2013-5-10 00:03 编辑

程序中可以这样写 "str".toString();字符串可以调用toString方法,难道"str"是对象?可是他没有名字,难道是匿名对象?求详细解释

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

8 个回复

倒序浏览
“str”当然就是一个对象了啊,像这一句:String   s=“str”,  s只是这个字符串对象的引用,真正的对象还是“str”。
回复 使用道具 举报
字符串肯定是可以调用toString方法的,还有hashCode、toCharArray等String类中有的方法。
在Java中除了基本数据类型之外,基本上能用new创建的都是对象: String s = new String("str");   当然你可以把单独的"str"看做是匿名对象。
不过基本数据类型也有基本数据类型包装类,例如: Byte、Integer等这些的话也可以创建对象。
回复 使用道具 举报
楼上的不要瞎说啊,“Str”是一个常量

理由如下:
   String str1 = "str";
  String str2 = "str";
System.out.println(str1 == str2)  //得到结果为true

如果是对象
                String str1 = new String("str");
                String str2 = new String("str");
                System.out.println(str1 == str2) ;//得到结果是false
回复 使用道具 举报
String  s = "str" ;         "str"  是一个对象 ,所以可以调用toString()方法。,String这个类本身就被java封装成了对象。
就比如 Integer in = 2;   就这个2也是一个对象 。因为Integer也是java封装成的基本数据类型包装类。
回复 使用道具 举报
潘贵 来自手机 中级黑马 2013-5-10 12:03:04
地板
java中被双引号括起的都是字符串(也就是一个实实在在的对象了),可以调用string类的所有方法,而且默认被final修饰,不可以再改变
回复 使用道具 举报
吴浩 中级黑马 2013-5-10 15:22:07
7#
String str="str",它实际上已经好像new了一下吧。。。。
回复 使用道具 举报
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:

String str = "abc";
等效于:

char data[] = {'a', 'b', 'c'};
     String str = new String(data);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马