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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 欧德林 中级黑马   /  2012-4-27 15:07  /  2114 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String与string的区别在哪?

下面是今天遇到的,才知道是有所这个不同的。
public class ReflectTest
{
        public static void main(String []args)throws Exception
        {
                String str1 ="abc";
                Class cls1=str1.getClass();
                Class cls2=String.class;
                Class cls3=Class.forName("java.lang.string");
                System.out.println(cls1==cls2);
                System.out.println(cls1==cls3);
        }

}
出现了这个问题,未发现的类的异常,后面才发现这个String与sting是不一样的。
Exception in thread "main" java.lang.ClassNotFoundException: java.lang.string
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at ReflectTest.main(ReflectTest.java:8)

6 个回复

倒序浏览
java中有小写的string这个关键字吗?我知道C#有啊,java中还真没发现啊,就知道大写String,敢问小写的string在java中哪里看到的?
回复 使用道具 举报
本帖最后由 丁佼 于 2012-4-27 15:42 编辑

JAVA对字母大小写敏感。
就是说 java 和 JAVA 在java编译的时候是两个不一样的单词,所以你把String写成string之后java就找不到string类,因为正常情况下java里根本没有string类。
另:你sting拼写错误,String有个r
回复 使用道具 举报
Class cls3=Class.forName("java.lang.string");
异常原因是string没有大写,找不到java.lang包下的小写string类
回复 使用道具 举报
JAVA是严格区分大小写的
回复 使用道具 举报
         在C#中string是一个关键字。  而在java里,string就不是关键字了,但是,String是java中的关键字。
在java里面严重区别大小写,在编译时,一定要注意这一点。
回复 使用道具 举报
Class cls3=Class.forName("java.lang.string");
这是找名称为"java.lang.string"的类的字节码,string小写了,就找不到就报错了,没有找到这个类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马