电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別

瀏覽:58日期:2023-02-06 17:36:48

Class.getResourceAsStream() 會指定要加載的資源路徑與當前類所在包的路徑一致。

例如你寫了一個MyTest類在包com.test.mycode 下,那么MyTest.class.getResourceAsStream('name') 會在com.test.mycode包下查找相應的資源。

如果這個name是以 ’/’ 開頭的,那么就會從classpath的根路徑下開始查找。

ClassLoader.getResourceAsStream() 無論要查找的資源前面是否帶’/’ 都會從classpath的根路徑下查找。

所以: MyTest.getClassLoader().getResourceAsStream('name') 和

MyTest.getClassLoader().getResourceAsStream('name') 的效果是一樣的。

順便提下JAVA中類的加載器:

一共有三種加載器

bootstrap classloader :負責加載JAVA核心類( jre 下lib和class目錄中的內容)extension classloader :負責加載JAVA擴展類(jre 下lib/ext 目錄中的內容)system classloader :負責加載應用指定的類 (環(huán)境變量classpath中配置的內容)

一個類的加載順序也是按上面的排列來的,這樣就能保證系統的類能先加載。

與此同時用戶也可以自己定義ClassLoader,用來加載特殊的資源。

這里就涉及到 Class.getClassLoader() 和 Thread.currentThread.getContextClassLoader()的區(qū)別。

舉一個簡單的例子:

假如某天JAVA給我們提供了一個叫 StartCamera 的類用來啟動電腦的標準攝像頭,并將這個類打包在一個jar中。

正常情況下,我們要啟動攝像頭時只需將這個jar配置到classpath中。系統啟動時system classloader會將這個類加載到應用中。

但因為攝像頭的生產廠家不一樣,針對新的設備會有多個不同的StartCamera實現,在應用中我們不知道實際的用戶會用到哪種。于是我們就自定義了一個ClassLoader,用來針對具體的設備類型加載相應的StartCamera類。

這樣一來就出現:優(yōu)先加載我們定義的類,加載不到的情況下再加載系統的。 這樣的需求,是系統默認的父委托加載機制無法滿足的。

Thread.currentThread.getContextClassLoader() 就是這樣產生的。 我們使用Thread.currentThread.setContextClassLoader() 可以為當前線程指定相應的ClassLoader,然后用get的方式來獲取。

那么上面的加載代碼就可能是這樣子的:

publicvoiduseCamera(){StartCameras=this.findClassLoader().loadClass('StartCamera');s.start();}privateClassLoaderfindClassLoader(){ClassLoaderloader=Thread.currentThread().getContextClassLoader();if(loader==null){loader=ClassLoader.getSystemClassLoader();}returnloader;}

到此這篇關于JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別的文章就介紹到這了,更多相關java ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()區(qū)別內容請搜索好吧啦網以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 新疆散热器,新疆暖气片,新疆电锅炉,光耀暖通公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 潍坊大集网-潍坊信息港-潍坊信息网| 杭州双螺杆挤出机-百科| 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 北京乾茂兴业科技发展有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 安徽华耐泵阀有限公司-官方网站 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 浙江宝泉阀门有限公司| 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 三轴曲线机-端子插拔力试验机|华杰仪器 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 路面机械厂家 | 茶楼装修设计_茶馆室内设计效果图_云臻轩茶楼装饰公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 螺杆泵_中成泵业|