博学谷 > 资讯 > Java > Java基础 能不能自己写个类也叫 java.lang.String?

原创 Java基础 能不能自己写个类也叫 java.lang.String?

发布时间:2019-06-03 14:33:13 浏览 1032 来源:博学谷资讯 作者:三省

      Java基础知识,能不能自己写个类也叫 java.lang.String?可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载 jre.jar 包中的那个java.lang.String。

     

    能不能自己写个类也叫 java.lang.String

          由于在 tomcat 的 web 应用程序中,都是由webapp 自己的类加载器先自己加载 WEB-INF/classess 目录中的类,然后才委托上级的类加载器加载,如果我们在 tomcat 的web 应用程序中写一个 java.lang.String,这时候 Servlet 程序载的就是我们自己写的 java.lang.String,但是这么干就会出很多潜在的问题,原来所有用了 java.lang.String 类的都将出现问题。


      虽然 java 提供了 endorsed 技术,可以覆盖 jdk 中的某些类,具体做法是….。但是,能够被覆盖的类是有限制范围,反正不包括 java.lang 这样的包中的类。


      (下面的例如主要是便于大家学习理解只用,不要作为答案的一部分,否则,人家怀疑是题目泄露了)例如,运行下面的程序:

     

    运行下面的程序

     

      报告的错误如下:


      java.lang.NoSuchMethodError: main

     

          Exception in thread "main"

     

          这是因为加载了 jre 自带的java.lang.String,而该类中没有main 方法。

上一篇:什么是 java 序列化?如何实现 java 序列化? Serializable 接口的作用? 下一篇:Java基础 Jvm性能如何调优?调优的方法有哪些?

相关推荐 更多

最新文章

扫描二维码,回复"Java"获取180G资料包