環境資訊中心外電;范震華 翻譯;賴慧玲 審校;稿源:Mongabay本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※何謂NBR手套,其特性及功能為何?
※選購空壓機需注意八大事項 !
※一條龍物流瞄準台中港倉儲,未來商機 !
※飲用桶裝水到底安不安全? 破解錯誤迷思!
台灣媽祖魚保育聯盟分析,現有個體老化又沒有新的個體誕生,族群數量一直無法擴大。而目前統計,從2000年到2019年擱淺的個體數就有11隻,更讓人擔心族群數量面臨威脅。而專家表示,最近幾年發現的鯨豚,外觀多有碰撞的傷痕,除了和漁業活動有關,海上開發案的進行可能也是鯨豚的衝擊來源。國立自然科學博物館助理研究員姚秋如說:「人為的開發壓力很大,包含海岸的人工化,以及海上會有些工程(海上風機),在這個過程中,船隻來往等等都可能造成鯨豚生活被影響。」
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※幫你考照過關,堆高機裝卸操作教學影片大公開 !
※高效率洗滌塔活性碳設備,能去除多少有機溶劑?
※飲用桶裝水到底安不安全? 破解錯誤迷思!
※家庭、朋友聚會,享受輕鬆烤肉必備外燴烤爐NO.1
※新北市探針業者,哪家可以精準車製?
※十大封口機人氣排行榜-烘焙必備幫手!
摘錄自2019年12月31日公視報導
鯨豚擱淺事件頻傳。根據台灣媽祖魚保育聯盟提出的數據,台灣海域的白海豚族群,這三年都在60隻上下。學者表示,漁業行為干擾、海上開發案離岸風機,都讓白海豚面臨考驗。
白海豚在海面悠游,時而浮出水面,這樣的畫面未來可能越來越少見。台灣媽祖魚保育聯盟提出研究數字,台灣海域附近的白海豚,估計族群數這三年都只在60隻上下,族群數沒有明顯增加。保育人士擔心,現有族群已經面臨老化。台灣媽祖魚保育聯盟理事長陳秉亨表示,「(現存的)這60幾隻,有可能裡面都是年紀很大的,因為小的海豚比較脆弱,牠比較難長大。那如果這60幾隻,大部分都是那種年紀很大的,牠可能年紀到了之後就會死掉,所以,可能就會呈現(族群)快速瓦解。」
台灣媽祖魚保育聯盟分析,現有個體老化又沒有新的個體誕生,族群數量一直無法擴大。而目前統計,從2000年到2019年擱淺的個體數就有11隻,更讓人擔心族群數量面臨威脅。而專家表示,最近幾年發現的鯨豚,外觀多有碰撞的傷痕,除了和漁業活動有關,海上開發案的進行可能也是鯨豚的衝擊來源。國立自然科學博物館助理研究員姚秋如說:「人為的開發壓力很大,包含海岸的人工化,以及海上會有些工程(海上風機),在這個過程中,船隻來往等等都可能造成鯨豚生活被影響。」
姚秋如指出,鯨豚是以靠聽覺定位的動物。海上開發案的進行,風機打樁的聲響都會影響鯨豚活動。而白海豚屬於淺海活動,更容易受到影響。保育人士呼籲,希望未來15年內,白海豚數量可達到百隻以上,才算相對安全。同時呼籲開發案,應該要有積極性的復育對策。
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※各大品牌中古空壓機買賣情報站
※【找工作】徵求中部倉庫堆高機人員
※選用哪種桶裝水,外宿露營超方便?
※連續封口機購物網-不怕你比價,就怕你買貴!
※塑膠射出成型不良品原因及改善對策 !
摘錄自2019年12月31日中央社報導
台灣自來水公司31日表示,編列兩年新台幣20億元,汰換新北市15公里的老舊自來水管。
台水31日在新北市道路安全會報簡報自來水管線汰舊更新資料,報告中指出,增加編列預算為兩年20億元,預計2020年、2021年更新板橋區、新莊區、三峽區、樹林區、瑞芳區共約15公里大口徑的老舊自來水管。
侯友宜指示工務局列出汰換自來水管改善時程表。同時,希望台水全力衝刺,儘速完成汰換並更新30年以上的老舊自來水管。
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※專業客製化禮物、贈品設計,辦公用品常見【L夾】搖身一變大受好評!!
※示波器探測執行效能最佳化的8大秘訣
※選用哪種桶裝水,外宿露營超方便?
※(全省)堆高機租賃保養一覽表
※DIY自行施工建築隔熱紙,簡易教學大公開 !
※票選推薦煮婦最愛手壓封口機,省荷包不犧牲品質
由於情況來得突然,讓現場消防人員措手不及,重達10公噸的消防車就這樣被火龍捲給捲起、掀翻再摔回地面,車內消防人員因此受困,其中年僅28歲的義消塞繆爾.麥克保羅(Samuel McPaul)不幸喪命,同車另外兩員則是受到輕重傷。
他是新南威爾斯地區這個野火季以來,第三名殉職的消防人員。另外兩名分別為32歲的基頓和36歲的歐德懷爾,19日晚間在雪梨近郊和失控野火奮鬥時,因消防車撞到倒下的樹翻覆,不幸身亡。
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※影響示波器測試準確度的五大因素
※無毒橡膠墊片哪裡買的到?
※飲用桶裝水到底安不安全? 破解錯誤迷思!
※十大封口機人氣排行榜-烘焙必備幫手!
※連續封口機購物網-不怕你比價,就怕你買貴!
※買不起高檔茶葉,精緻包裝茶葉罐,也能撐場面!
近來有個需求:想實現一個可以主動觸發消息推送的功能,這個可以實現向模板消息那個,給予所有成員發送自定義消息,而不需要通過客戶端發送消息,服務端上message中監聽傳送的消息進行做相對於的業務邏輯。
主動消息推送實現
平常我們採用 swoole 來寫 WebSocket 服務可能最多的用到的是open,message,close這三個監聽狀態,但是萬萬沒有看下下面的onRequest回調的使用,沒錯,解決這次主動消息推送的就是需要用onRequest回調。
官方文檔:正因為swoole_websocket_server繼承自swoole_http_server,所以在 websocket 中有onRequest回調。
詳細實現:
1 # 這裡是一個laravel中Commands 2 # 運行php artisan swoole start 即可運行 3 <?php 4 5 namespace App\Console\Commands; 6 7 use Illuminate\Console\Command; 8 use swoole_websocket_server; 9 10 class Swoole extends Command 11 { 12 public $ws; 13 /** 14 * The name and signature of the console command. 15 * 16 * @var string 17 */ 18 protected $signature = 'swoole {action}'; 19 20 /** 21 * The console command description. 22 * 23 * @var string 24 */ 25 protected $description = 'Active Push Message'; 26 27 /** 28 * Create a new command instance. 29 * 30 * @return void 31 */ 32 public function __construct() 33 { 34 parent::__construct(); 35 } 36 37 /** 38 * Execute the console command. 39 * 40 * @return mixed 41 */ 42 public function handle() 43 { 44 $arg = $this->argument('action'); 45 switch ($arg) { 46 case 'start': 47 $this->info('swoole server started'); 48 $this->start(); 49 break; 50 case 'stop': 51 $this->info('swoole server stoped'); 52 break; 53 case 'restart': 54 $this->info('swoole server restarted'); 55 break; 56 } 57 } 58 59 /** 60 * 啟動Swoole 61 */ 62 private function start() 63 { 64 $this->ws = new swoole_websocket_server("0.0.0.0", 9502); 65 //監聽WebSocket連接打開事件 66 $this->ws->on('open', function ($ws, $request) { 67 }); 68 //監聽WebSocket消息事件 69 $this->ws->on('message', function ($ws, $frame) { 70 $this->info("client is SendMessage\n"); 71 }); 72 //監聽WebSocket主動推送消息事件 73 $this->ws->on('request', function ($request, $response) { 74 $scene = $request->post['scene']; // 獲取值 75 $this->info("client is PushMessage\n".$scene); 76 }); 77 //監聽WebSocket連接關閉事件 78 $this->ws->on('close', function ($ws, $fd) { 79 $this->info("client is close\n"); 80 }); 81 $this->ws->start(); 82 } 83 }
前面說的是 swoole 中onRequest的實現,下面實現下在控制器中主動觸發onRequest回調。實現方法就是我們熟悉的curl請求。
1 # 調用activepush方法以後,會在cmd中打印出 2 # client is PushMessage 主動推送消息 字眼 3 /** 4 * CURL請求 5 * @param $data 6 */ 7 public function curl($data) 8 { 9 $curl = curl_init(); 10 curl_setopt($curl, CURLOPT_URL, "http://127.0.0.1:9502"); 11 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 12 curl_setopt($curl, CURLOPT_HEADER, 1); 13 curl_setopt($curl, CURLOPT_POST, 1); 14 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 15 curl_exec($curl); 16 curl_close($curl); 17 } 18 19 /** 20 * 主動觸發 21 */ 22 public function activepush() 23 { 24 $param['scene'] = '主動推送消息'; 25 $this->curl($param); // 主動推送消息
用途
onRequest 回調特別適用於需要在控制器中調用的推送消息,比如模板消息之類,在控制器中調用。
推薦閱讀:
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※為什麼 USB CONNECTOR 是電子產業重要的元件?
※網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!
※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光
※想知道最厲害的台北網頁設計公司推薦、台中網頁設計公司推薦專業設計師”嚨底家”!!
最近在做一個需求是導出較大的excel,本文是記錄我在做需求過程中遇到的幾個問題和解題方法,給大家分享一下,一來可以幫助同樣遇到問題的朋友,二呢,各位大神也許有更好的方法可以指點小弟一下,讓我順便學習一下。 背景::工頭:“小鍾啊,xx界面加個導出excel功能03以後的格式,需要能支持到excel的最大行,同時需要5個併發就行” 我:“收到,但是數據大的時候速度可能比較慢。” 工頭:“你先做後續客戶反饋了在給他加進度條。” Npoi神器介紹:SXSSFWorkbook 專門用來導出大數據用,他會把數據先寫入C盤的臨時目錄;不會所有 都留在內存里;更詳細介紹請百度或者參考( ) 有了這層基礎開始劈里啪啦一段操作寫代碼;(以下代碼非生產代碼只是我為了帖子寫重現問題的測試代碼) 首先開個線程模擬併發 編寫導出方法:記錄時間、創建SXSSFWorkbook 代碼如圖: 啟動運行; 好!第一口鍋已造好,看這個提示,前面說了SXSSFWorkbook 是會先把緩存數據寫入Windows臨時文件裡頭的,這個目錄正好是Windows的臨時文件夾雖然是個錯誤但是驗證了剛剛的說法;至於這個錯誤看提示 我們有個大膽的想法是文件佔用問題,應該是創建文件的時候文件已經存在了,這樣我們把npoi的dll打開來看看,通過看源碼和各種f12我們看到了這麼一段代碼 這裏看到用來隨機數,而我們知道net的隨機數在極短的時間內生成是不可靠的(詳見百度或者: )也就是說生成一樣的文件名,然後我們在通過 github里可以看到 早在年初NPOI就對這個問題做了更改就換成guid了,隨後我來到了nuget nuget最新版 是去年12月份發布,並沒有包含上面的更改; 所以呢 要麼github下載最新版編譯要麼自己解決,想了想如果換版本的話以前的功能可能會影響到所以,我們就在外面加一把小鎖吧!如圖 這樣呢我們在試試! 很好 不會在出現文件佔用問題了;好繼續導出! 既然是都先寫入緩存文件是不是佔用的內存就很小了 來看看 2G多。。。什麼情況,還在漲 3G。。。這明顯不符合工頭的需求了,然後終於它炸了 第一念頭是為啥我該怎麼辦,設置GC的回收模式?手動多GC?還是要把代碼給拿下來看看,看看這麼大內存哪裡沒釋放文件?冷靜、冷靜、想想,既然是內存爆了 那麼正確流程應該是抓取看看是什麼吃的內存得出結果再去改東西, 發現了啥是不是很熟悉的東西? 狀態管理、包裝類,想到了啥 EF的“模型跟蹤”這個功能佔用的內存最大了。那就去掉吧 加上這麼一句 意思是無跟蹤查詢 ,修改實例后SaveChanges不對對它生效; (AsNoTracking 更詳情理解介紹請百度在加上msdn: ) 現在在繼續導出看看: 內存是吃的不大了, 可以看出臨時文件還是很大的,這還沒導完呢,所以做的時候 盡量要保證下硬盤的空間! 等待。。。 總結: 1.導出大數據用SXSSFWorkbook 2.構建SXSSFWorkbook 時候lock或者自己編譯最新版本 3.我們做導出時,ef查詢數據後記得加AsNoTracking 關閉綁定跟蹤。(以後日常開發中如果只需要查詢的也可以這樣做) 4.SXSSFWorkbook 導出大數據 臨時文件夾所在的硬盤不能太小 因為會生成大於excel本身的緩存文件! 最後導出完畢 用時: 本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能
※評比前十大台北網頁設計、台北網站設計公司知名案例作品心得分享
※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選
本博客將沿用中展示的自定義類加載器代碼
首先,新建一個類Test14,重寫默認的構造方法,打印加載該類的類加載器
public class Test14 {
public Test14() {
System.out.println("Test14 is loaded by:" + this.getClass().getClassLoader());
}
}
然後,在新建一個類Test15,同樣重寫默認的構造方法,打印加載該類的類加載器,在構造方法中new出Test14的實例
public class Test15 {
public Test15() {
System.out.println("Test15 is loaded by:" + this.getClass().getClassLoader());
new Test14();
}
}
測試代碼
public class Test16 {
public static void main(String[] args) throws Exception {
test01();
}
private static void test01 () throws Exception {
ClassLoaderTest classLoader = new ClassLoaderTest("classLoader");
Class<?> clazz = classLoader.loadClass("classloader.Test15");
System.out.println("class:" + clazz);
Object object = clazz.newInstance();
}
}
猜測一下,首先自定義類加載器classLoader通過反射獲取Test15的Class對象,屬於主動使用,會加載Test15,classLoader委託它的父加載器AppClassLoader加載Test15;然後我們通過clazz.newInstance();代碼獲取Test15的實例,調用Test15的構造方法,在Test15的構造方法中創建了Test14的實例,所以同樣加載了Test14,並調用了Test14的構造方法。加上-XX:+TraceClassLoading指令執行代碼,發現運行結果和我們想的是一樣的。
......
[Loaded classloader.Test15 from file:/home/fanxuan/Study/java/jvmStudy/out/production/jvmStudy/]
class:class classloader.Test15
Test15 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
[Loaded classloader.Test14 from file:/home/fanxuan/Study/java/jvmStudy/out/production/jvmStudy/]
Test14 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
......
在上篇博客中,自定義類加載器ClassLoaderTest是有一個path屬性可以自定義類的加載路徑的,我們同樣測試一下,我們將Test14和Test15的class文件放到桌面的classloader文件夾下,然後刪除工程路徑下的class文件,執行一下的測試代碼
public class Test16 {
public static void main(String[] args) throws Exception {
test02();
}
private static void test02 () throws Exception {
ClassLoaderTest classLoader = new ClassLoaderTest("classLoader");
classLoader.setPath("/home/fanxuan/桌面/");
Class<?> clazz = classLoader.loadClass("classloader.Test15");
System.out.println("class:" + clazz);
Object object = clazz.newInstance();
}
}
按照上節的結果,應該都是ClassLoaderTest加載器加載了Test14和Test15類
class:class classloader.Test15
Test15 is loaded by:classloader.ClassLoaderTest@6d6f6e28
Test14 is loaded by:classloader.ClassLoaderTest@6d6f6e28
接下來,我們重新編譯項目,刪除掉工程目錄下的Test14的calss文件,再次執行代碼
class:class classloader.Test15
Test15 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
Exception in thread "main" java.lang.NoClassDefFoundError: classloader/Test14
at classloader.Test15.<init>(Test15.java:11)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at classloader.Test16.test02(Test16.java:25)
at classloader.Test16.main(Test16.java:9)
Caused by: java.lang.ClassNotFoundException: classloader.Test14
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more
我們發現結果報錯了,按照我們正常的思維,自定義記載器classLoader委託父加載器AppClassLoader加載Test15,從打印結果可以看出Test15加載成功了,然後創建Test15的實例,加載Test14,因為工程目錄下缺少Test14的class文件,所以AppClassLoader無法加載到Test14,由自定義加載器classLoader自身從桌面加載Test14。但是我們發現加載Test14的報了ClassNotFoundException的錯誤,這是因為在Test15中記載Test14的時候,是以Test15的類加載器AppClassLoader來加載的,AppClassLoader加載不到Test14,它的父加載器擴展類加載器同樣加載不到,擴展類加載器的父加載器啟動類加載器也加載不到,所以報錯ClassNotFoundException。
然後,再重新編譯項目,刪除掉工程目錄下的Test15的calss文件,再次執行代碼。根據前文分析的代碼,我們可以很清晰的得出結論:由自定義記載器classLoader加載了Test15,由系統類記載器AppClassLoader加載了Test14。
class:class classloader.Test15
Test15 is loaded by:classloader.ClassLoaderTest@6d6f6e28
Test14 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
簡單修改下Test14類,在Test14的構造方法中引用Test15的Class對象。
public class Test14 {
public Test14() {
System.out.println("Test14 is loaded by:" + this.getClass().getClassLoader());
System.out.println("Test14:" + Test15.class);
}
}
執行測試代碼二中的測試代碼Test16,結果如下,沒有任何問題。
class:class classloader.Test15
Test15 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
Test14 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
Test14:class classloader.Test15
我們同樣重新編譯項目,刪除掉工程目錄下的Test15的calss文件,再次執行代碼。
class:class classloader.Test15
Test15 is loaded by:classloader.ClassLoaderTest@6d6f6e28
Test14 is loaded by:sun.misc.Launcher$AppClassLoader@18b4aac2
Exception in thread "main" java.lang.NoClassDefFoundError: classloader/Test15
at classloader.Test14.<init>(Test14.java:11)
at classloader.Test15.<init>(Test15.java:11)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at classloader.Test16.test02(Test16.java:25)
at classloader.Test16.main(Test16.java:9)
Caused by: java.lang.ClassNotFoundException: classloader.Test15
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more
我們發現加載已經完成了,但是程序還是報錯了,是我們剛剛加的System.out.println("Test14:" + Test15.class);代碼報的錯,依然是ClassNotFoundException錯誤。
分析:
Test15由自定義記載器classLoader加載,Test14由系統類記載器AppClassLoader加載。導致程序報錯的是因為命名空間的問題,我們在上一篇博客的結尾簡單介紹了命名空間:每個類加載器都有自己的命名空間,命名空間由該加載器及所有的父加載器所加載的類組成。子加載器所加載的類可以看見父加載器加載的類,但是父加載器所加載的類無法看見子加載器加載的類。Test14是由AppClassLoader加載的,在AppClassLoader的命名空間中沒有Test15的,所以程序報錯了。
新建Entity類用於測試
public class Entity {
private Entity entity;
public void setEntity(Object entity) {
this.entity = (Entity)entity;
}
}
編寫測試代碼
public class Test17 {
public static void main(String[] args) throws Exception {
ClassLoaderTest classLoader1 = new ClassLoaderTest("classLoader1");
ClassLoaderTest classLoader2 = new ClassLoaderTest("classLoader2");
Class<?> clazz1 = classLoader1.loadClass("classloader.Entity");
Class<?> clazz2 = classLoader2.loadClass("classloader.Entity");
System.out.println(clazz1 == clazz2);
Object object1 = clazz1.newInstance();
Object object2 = clazz2.newInstance();
Method method = clazz1.getMethod("setEntity", Object.class);
method.invoke(object1, object2);
}
}
運行程序,System.out.println(clazz1 == clazz2);返回結果為true,都是AppClassLoader加載的,classLoader1加載之後會在AppClassLoader的命名空間中形成緩存,classLoader2加載的時候直接返回命名空間已經存在的Class對象,所以clazz1與clazz2相同。
改造下代碼,將Entity類的class文件copy到桌面文件夾下,刪除工程下的class文件,執行如下代碼
public class Test18 {
public static void main(String[] args) throws Exception {
ClassLoaderTest classLoader1 = new ClassLoaderTest("classLoader1");
ClassLoaderTest classLoader2 = new ClassLoaderTest("classLoader2");
classLoader1.setPath("/home/fanxuan/桌面/");
classLoader2.setPath("/home/fanxuan/桌面/");
Class<?> clazz1 = classLoader1.loadClass("classloader.Entity");
Class<?> clazz2 = classLoader2.loadClass("classloader.Entity");
System.out.println(clazz1 == clazz2);
Object object1 = clazz1.newInstance();
Object object2 = clazz2.newInstance();
Method method = clazz1.getMethod("setEntity", Object.class);
method.invoke(object1, object2);
}
}
根據前文的介紹,不難推斷System.out.println(clazz1 == clazz2);的運行結果為false,classLoader1和classLoader2分別加載了Entity類,就是其自身加載的(定義類加載器),在jvm的內存中形成了完全獨立的兩個命名空間,所以clazz1與clazz2不同。而且因為clazz1和clazz2相互不可見,調用了classLoader1命名空間中的方法,傳入了classLoader2命名空間的對象,導致程序拋出了異常。
false
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at classloader.Test18.main(Test18.java:26)
Caused by: java.lang.ClassCastException: classloader.Entity cannot be cast to classloader.Entity
at classloader.Entity.setEntity(Entity.java:11)
... 5 more
在的2.1章節簡單介紹了一下類加載器的父親委託機制,這裏面來總結一下好處
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※想知道網站建置、網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計及後台網頁設計
※不管是台北網頁設計公司、台中網頁設計公司,全省皆有專員為您服務
※Google地圖已可更新顯示潭子電動車充電站設置地點!!
摘錄自2019年12月30日中央社報導
苗栗縣苑裡鎮社苓里一處灌排圳冒出大量泡沫,地方人士懷疑不肖工廠趁雨天排放廢水;大量白色泡沫覆蓋溝渠水面,宛如一條泡泡河,地方人士指出,泡沫隨水流入農田,且溝渠亦有綠色、乳白色等顏色廢水,憂心影響農作,也有民眾將照片po網,認為苑裡經典小鎮出現泡泡奇景;環保局稽查員等人循泡泡往上游追查,一度懷疑一間廢棄顏料工廠,但巡查周邊水路卻無直接排放跡象,在缺乏直接證據下,無法斷定來源,原因成謎。
縣府環保局表示,經循泡泡往上追查,無直接證據證明污染源頭,將持續加強巡查。
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※何謂NBR手套,其特性及功能為何?
※選購空壓機需注意八大事項 !
※一條龍物流瞄準台中港倉儲,未來商機 !
※飲用桶裝水到底安不安全? 破解錯誤迷思!
摘錄自2020年1月1日大紀元報導
據報,有中國網民近日發表一則視頻,批露山東省龍口市的排污管道深埋於入海口處偷排污水,污染狀況令人震驚。
該拍攝者說,山東龍口濱海大道附近的入海口處,海水退潮後沙灘裸露,有黑色的污水流入大海,且有一股刺鼻的味道。在排污口附近,還有一個黑色管道通向更深處的海中。
山東龍口偷排污水的視頻被曝光後,受到網民的廣泛關注。日前,當地官方的回應也證實了此視頻的真實性。
據《新京報》報導,上(12)月30日晚,龍口市委宣傳部稱,視頻中的上游管道已完全封閉,下游管道全部拆除。
本站聲明:網站內容來源於https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】
※幫你考照過關,堆高機裝卸操作教學影片大公開 !
※高效率洗滌塔活性碳設備,能去除多少有機溶劑?
※飲用桶裝水到底安不安全? 破解錯誤迷思!
※家庭、朋友聚會,享受輕鬆烤肉必備外燴烤爐NO.1
※新北市探針業者,哪家可以精準車製?
※十大封口機人氣排行榜-烘焙必備幫手!