可以,但是即使你寫了這個類,也沒有用。
這個問題涉及到加載器的委托機制,在類加載器的結構圖(在下面)中,
BootStrap是頂層父類,ExtClassLoader是BootStrap類的子類,ExtClassLoader又是AppClassLoader的父類
這里以java.lang.String為例,當我是使用到這個類時,Java虛擬機會將java.lang.String類的字節碼加載到內存中。
為什么只加載系統通過的java.lang.String類而不加載用戶自定義的java.lang.String類呢?
因加載某個類時,優先使用父類加載器加載需要使用的類。如果我們自定義了java.lang.String這個類,
加載該自定義的String類,該自定義String類使用的加載器是AppClassLoader,根據優先使用父類加載器原理,
AppClassLoader加載器的父類為ExtClassLoader,所以這時加載String使用的類加載器是ExtClassLoader,
但是類加載器ExtClassLoader在jre/lib/ext目錄下沒有找到String.class類。然后使用ExtClassLoader父類的加載器BootStrap,
父類加載器BootStrap在JRE/lib目錄的rt.jar找到了String.class,將其加載到內存中。這就是類加載器的委托機制。
所以,用戶自定義的java.lang.String不被加載,也就是不會被使用。
轉自:http://blog.csdn.net/caolaosanahnu/article/details/19502005