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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lgc黑马 中级黑马   /  2014-12-18 18:19  /  1470 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类
是final类型的,不可以有子类。字符串最大的特点就是:一旦被初始化,就不可以改变
                String str=“abc”        str是一个对象                “abc”是一个对象
                String str1=“abc”;        String str2=“abc”;               
str1==str2的值为false,因为这两者比较的是两个对象,他们的HashCode值不相同
str1.equals(str2)的值为true,因为String类复写了Object类中的equals方法,用来判断两个字符处是否相同
StringBuffere:字符串缓冲区,是一个容器
                特点:1,长度是可变化的        2,可以同时操作多个数据类型        3,通过toString方法变为字符串
                JDK1.5版本以后,出现了StringBuilder:
                        StringBuffer是线程同步的(安全)StringBuilder是线程不同步的(不安全)
                replace()替换操作                reverse()翻转操作                setChar(index,char)替换某一个值
数据类型:8种
        基本数据类型                        引用数据类型
                byte                                        Byte                字节型
                short                                        short                短整型
                int                                         Integer        整形
                long                                        Long                长整形
                boolean                                Boolean        布尔型
                float                                        Float                浮点型
                double                                Double        双精度
                char                                        Character        字符型

8 个回复

倒序浏览
这是笔记吗
回复 使用道具 举报
这个怎么看??
  1. class ZiFuChuan
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str1="abc";
  6.                 String str2="abc";
  7.                 System.out.println(str1==str2);
  8.                 System.out.println(str1.equals(str2));
  9.                
  10.         }
  11. }
复制代码


2014-12-18_183135.jpg (16.47 KB, 下载次数: 7)

2014-12-18_183135.jpg
回复 使用道具 举报
应该可以这么理解吧:
1.“abc"本身是一个字符串,也就是一个对象。String str1="abc"   String str2="abc",二者都是指向同一个对象。
str1==str2   比较的是地址值, 因为二者都是指向同一个地址,所以肯定相同。
2.  str1.equals(str2) 比较的是值,因为都是指向"abc"所以也值也相同。
3.如果你这样:
String str1 = new String("abc");  String str2= new String("abc")
因为都是new的对象,所以肯定不同的两个对象,所以再str1==str2的时候就是false了

这样应该能解释的通吧
回复 使用道具 举报

equals是比较内容,自然是true。
==是比较内存地址。 str1的时候已经创建了"abc"对象了,所以创建str2的时候会直接引用str1的对象地址。所以还是一样 true
回复 使用道具 举报
wtjohn 发表于 2014-12-18 19:43
equals是比较内容,自然是true。
==是比较内存地址。 str1的时候已经创建了"abc"对象了,所以创建str2的 ...

这样啊,那怎么比较str1和str2地址是否相等呢
回复 使用道具 举报
写的挺详细~
回复 使用道具 举报
I空空 中级黑马 2014-12-19 22:58:51
8#
不错,学习了。
回复 使用道具 举报
这是毕老师视频的笔记吧。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马