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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lizhi 中级黑马   /  2015-5-29 21:55  /  1585 人查看  /  15 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

char[]chs={'a','b'};
String str=null;
char s=str.charAt(1);
编译会报错
char[]chs={'a','b'};
String str=null;
str=str.copyValueOf();
这种是会出结果的,不懂得问我

15 个回复

倒序浏览
请问charAt()与copyValueOf()有什么具体的区别吗?
回复 使用道具 举报
因为copyValueOf()是静态方法,可以把str.copyValueOf()看成是:String.copyValueOf()。对吗?
回复 使用道具 举报
新人报道,正在努力中
回复 使用道具 举报
灯火通明 来自手机 中级黑马 2015-5-30 07:55:00
报纸
明白了。
回复 使用道具 举报
涨知识了
回复 使用道具 举报
mmakun 中级黑马 2015-5-30 11:19:20
7#
这个倒还真不知道
回复 使用道具 举报
第一种是因为字符串为空,无指针地址,所以会报空指针异常,后面一个其实是把字符数组转换成字符串重新给str赋值
回复 使用道具 举报
这两种是有区别的,不错,大家一起了解。
回复 使用道具 举报
str 不是null么  怎么能拿str.charAt(1);
回复 使用道具 举报
lizhi 中级黑马 2015-5-31 08:43:10
11#
songyu 发表于 2015-5-30 00:13
请问charAt()与copyValueOf()有什么具体的区别吗?

后面的是静态方法,前面的是普通方法
回复 使用道具 举报
lizhi 中级黑马 2015-5-31 08:44:17
12#
白水丶 发表于 2015-5-30 14:56
str 不是null么  怎么能拿str.charAt(1);

这个不能呀,编译报错呀
回复 使用道具 举报
lizhi 中级黑马 2015-5-31 08:45:22
13#
青龙李坤 发表于 2015-5-30 13:23
这两种是有区别的,不错,大家一起了解。

只要记住静态方法能用类名跟对象引用调用就可以了
回复 使用道具 举报
lizhi 中级黑马 2015-5-31 08:46:33
14#
forTomorrow 发表于 2015-5-30 11:47
第一种是因为字符串为空,无指针地址,所以会报空指针异常,后面一个其实是把字符数组转换成字符串重新给st ...

不是,后面的是因为调用的方法是静态的,可以用类名直接调用
回复 使用道具 举报
lizhi 中级黑马 2015-5-31 08:47:35
15#
mmakun 发表于 2015-5-30 11:19
这个倒还真不知道

那就加油去学习
回复 使用道具 举报
进来来看看代码,也学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马