阿里面试,自定义java.lang.String会被加载吗?

 用户自定义的String package java.lang;

public class String {    public static void main(String[] args) {  System.out.println("User defined String");  }

}
package lwh.jvm; import java.lang.String; public class TestString { public static void main(String[] args) { String str = new String("abc"); } } 测试发现用户自定义String之后,下面TestString中new String就会编译失败

#实习##Java##阿里巴巴#
全部评论
双亲委派原则
点赞 回复 分享
发布于 2018-04-01 09:32
双亲委托机制了解一下
点赞 回复 分享
发布于 2018-04-01 09:32
那么问题来了,你把你自定义的String放入Bootstarp加载的目录下,能加载吗
点赞 回复 分享
发布于 2018-09-08 09:59
package java.lang; public class String {     public String() {         // TODO Auto-generated constructor stub     }          public String(String s) {         // TODO Auto-generated constructor stub     }          public static void main(String[] args) {                  System.out.println("6");     } } import java.lang.String; public class Main {     public static void main(String[] args) {                  System.out.println("hahah");         String s = new String("hahah");     } } 楼主这样编译就可以通过了,因为你自定义的String里面没有一个传入字符串的构造函数 所以报错了
点赞 回复 分享
发布于 2018-04-08 09:54
你这个加载不了。首先compile没问题,如果你package/class name都没问题的话。但你编译完应该跑不了, 因为boostrap classloader 加载的是.jar里面的java.lang.string, 你自己的没被加载进来。但问题是这不应该throw一个Package name securityException么?
点赞 回复 分享
发布于 2018-04-06 03:35
不会加载的java.开头都会往上抛给bootstrap 加载器,这个双亲委派机制可以保证安全性,而且使得类之间存在优先级因为所有的类都会先抛给上层的尝试加载,不成功则再向下尝试,启动 扩展 系统 自定义 组合关系
点赞 回复 分享
发布于 2018-04-01 11:59
肯定不会呀
点赞 回复 分享
发布于 2018-04-01 09:22
会编译不会被加载
点赞 回复 分享
发布于 2018-04-01 09:02

相关推荐

淬月星辉:专利是什么?至少描述一下吧,然后把什么计算机二级、普通话这种拉低格调的证书删掉,不然hr以为你没东西写
点赞 评论 收藏
分享
评论
点赞
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务