能不能自己写个类,也叫java.lang.String
2017-01-10 21:01
344 查看
可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个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这样的包中的类。
(下面的例如主要是便于大家学习理解只用,不要作为答案的一部分,否则,人家怀疑是题目泄露了)例如,运行下面的程序:
报告的错误如下:
这是因为加载了jre自带的java.lang.String,而该类中没有main方法。
虽然java提供了endorsed技术,可以覆盖jdk中的某些类,具体做法是….。但是,能够被覆盖的类是有限制范围,反正不包括java.lang这样的包中的类。
(下面的例如主要是便于大家学习理解只用,不要作为答案的一部分,否则,人家怀疑是题目泄露了)例如,运行下面的程序:
package java.lang; public class String { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("string"); } }
报告的错误如下:
java.lang.NoSuchMethodError: main Exception in thread "main"
这是因为加载了jre自带的java.lang.String,而该类中没有main方法。
相关文章推荐
- java能不能自己写一个类叫java.lang.System/String正确答案
- 2.1 :java能不能自己写一个类叫java.lang.System/String正确答案
- 关于自己写的java.lang.String能不能被加载的问题
- java能不能自己写一个类叫java.lang.System/String正确答案
- java能不能自己写一个类叫java.lang.System/String正确答案
- java能不能自己写一个类叫java.lang.System/String正确答案
- java能不能自己写一个类叫java.lang.System/String正确答案
- 能不能自己写个类,也叫 java.lang.String?
- 【Java面试题】53 能不能自己写个类,也叫java.lang.String?
- java能不能自己写一个类叫java.lang.System/String?
- 能不能自己写个类,也叫 java.lang.String?
- Java学习--能不能自己写个类,也叫System.lang.String?
- 能不能自己写个类叫java.lang.System?
- 能否自己也写一个类叫做java.lang.String?
- 能不做自己写个类,也叫java.lang.String
- 自己写一个java.lang.String
- 自己写java.lang.String
- 能不做自己写个类,也叫java.lang.String
- 能不做自己写个类,也叫java.lang.String?