環境資訊中心綜合外電;姜唯 編譯;林大利 審校
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※南投搬家前需注意的眉眉角角,別等搬了再說!
※新北清潔公司,居家、辦公、裝潢細清專業服務
摘錄自2019年11月26日中央通訊社報導
美國智庫世界資源研究所今天(26日)表示,一場「默默蔓延的危機」正威脅全球糧食供應,到了2040年,水資源匱乏可能危及多達40%的灌溉作物。
世界資源研究所(World Resources Institute)指出,氣候變遷造成降雨不規律,也威脅到1/3依靠雨季供給水分的作物。科學家認為,水資源的供應受到多重因素影響,包括氣候變遷和管理不善,但農業是一大因素,占用70%淡水。
世界資源研究所今天推出名為Aqueduct Food的線上工具,在地圖上標識出香蕉、咖啡、大豆和棉花等40多種作物的灌溉水資源風險分布。
這個智庫發現,在灌溉作物中,將近67%的小麥、64%的玉米和19%的稻米到了2040年可能會位於極高缺水壓力的區域。
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※帶您來了解什麼是 USB CONNECTOR ?
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!
※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※教你寫出一流的銷售文案?
該系列博文會告訴你如何從入門到進階,一步步地學習Java基礎知識,並上手進行實戰,接着了解每個Java知識點背後的實現原理,更完整地了解整個Java技術體系,形成自己的知識框架。
構造方法(或構造函數)是類的一種特殊方法,用來初始化類的一個新的對象。Java 中的每個類都有一個默認的構造方法,它必須具有和類名相同的名稱,而且沒有返回類型。構造方法的默認返回類型就是對象類型本身,並且構造方法不能被 static、final、synchronized、abstract 和 native 修飾。
提示:構造方法用於初始化一個新對象,所以用 static 修飾沒有意義;構造方法不能被子類繼承,所以用 final 和 abstract 修飾沒有意義;多個線程不會同時創建內存地址相同的同一個對象,所以用 synchronized 修飾沒有必要。
構造方法的語法格式如下:
public class Person {
/**
* 1.構造方法沒有返回值 默認返回類型就是對象類型本身
* 2.構造方法的方法名和類名相同
*/
//無參構造方法
public Person() {
System.out.println("我是無參構造方法");
}
//有參構造方法
public Person(String username,Integer age) {
System.out.println("我是有參構造"+"姓名:"+username+" 密碼:"+age);
}
public static void main(String[] args) {
Person p1=new Person();//調用無參構造
Person p2=new Person("小王",12);//調用有參構造
}
}
關於構造方法,需要注意:
普通代碼塊是我們用得最多的也是最普遍的,它就是在方法名後面用{}括起來的代碼段。普通代碼塊是不能夠單獨存在的,它必須要緊跟在方法名後面。同時也必須要使用方法名調用它。
public class Test {
public void test(){
System.out.println("普通代碼塊");
}
}
在類中直接定義沒有任何修飾符、前綴、後綴的代碼塊即為構造代碼塊。我們明白一個類必須至少有一個構造函數,構造函數在生成對象時被調用。構造代碼塊和構造函數一樣同樣是在生成一個對象時被調用
public class Test{
{
System.out.println("我是構造代碼塊");
}
}
注意:
想到靜態我們就會想到static,靜態代碼塊就是用static修飾的用{}括起來的代碼段,它的主要目的就是對靜態屬性進行初始化。
public class Test {
static{
System.out.println("靜態代碼塊");
}
}
注意:
A:
public class Test {
public Test(){
System.out.println("Test構造函數");
}
{
System.out.println("Test構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
}
}
結果:
靜態代碼塊
B:
public class Test {
public Test(){
System.out.println("Test構造函數");
}
{
System.out.println("Test構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
Test t=new Test();//創建了一個對象
}
}
這段代碼相比於上述代碼多了一個創建對象的代碼
結果:
靜態代碼塊 Test構造代碼塊 Test構造函數
C:
public class Test {
public Test(){
System.out.println("Test構造函數");
}
{
System.out.println("Test構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
Test t1=new Test();//創建了一個對象
Test t2=new Test();
}
}
結果:
靜態代碼塊 Test構造代碼塊 Test構造函數 Test構造代碼塊 Test構造函數
由此結果可以看出:靜態代碼塊只會在類加載的時候執行一次,而構造函數和構造代碼塊則會在每次創建對象的都會執行一次
對於一個類而言,按照如下順序執行:
- 執行靜態代碼塊
- 執行構造代碼塊
- 執行構造函數
對於靜態變量、靜態初始化塊、變量、初始化塊、構造器,它們的初始化順序依次是(靜態變量、靜態初始化塊)>(變量、初始化塊)>構造器。
D:
public class Test {
//靜態變量
public static String staticField="靜態變量";
//變量
public String field="變量";
//靜態初始化塊
static {
System.out.println(staticField);
System.out.println("靜態初始化塊");
}
{
System.out.println(field);
System.out.println("初始化塊");
}
//構造函數
public Test() {
System.out.println("構造函數");
}
public static void main(String[] args) {
Test t=new Test();
}
}
結果:
靜態變量 靜態初始化塊 變量 初始化塊 構造函數
class TestA{
public TestA() {
System.out.println("A的構造函數");
}
{
System.out.println("A的構造代碼塊");
}
static {
System.out.println("A的靜態代碼塊");
}
}
public class TestB extends TestA {
public TestB() {
System.out.println("B的構造函數");
}
{
System.out.println("B的構造代碼塊");
}
static {
System.out.println("B的靜態代碼塊");
}
public static void main(String[] args) {
TestB t=new TestB();
}
}
這裡有兩個類,屬於繼承的關係,讀者先不要看答案,自己思考一下結果是啥?
1 A的靜態代碼塊 2 B的靜態代碼塊 3 A的構造代碼塊 4 A的構造函數 5 B的構造代碼塊 6 B的構造函數
結果
當設計到繼承時,代碼的執行順序如下:
1、執行父類的靜態代碼塊,並初始化父類的靜態成員
2、執行子類的靜態代碼塊,並初始化子類的靜態成員
3、執行父類的構造代碼塊,執行父類的構造函數,並初始化父類的普通成員變量
4、執行子類的構造代碼塊,執行子類的構造函數,並初始化子類的普通成員變量
Java初始化流程圖:
class Parent {
/* 靜態變量 */
public static String p_StaticField = "父類--靜態變量";
/* 變量 */
public String p_Field = "父類--變量";
protected int i = 9;
protected int j = 0;
/* 靜態初始化塊 */
static {
System.out.println(p_StaticField);
System.out.println("父類--靜態初始化塊");
}
/* 初始化塊 */
{
System.out.println(p_Field);
System.out.println("父類--初始化塊");
}
/* 構造器 */
public Parent() {
System.out.println("父類--構造器");
System.out.println("i=" + i + ", j=" + j);
j = 20;
}
}
public class SubClass extends Parent {
/* 靜態變量 */
public static String s_StaticField = "子類--靜態變量";
/* 變量 */
public String s_Field = "子類--變量";
/* 靜態初始化塊 */
static {
System.out.println(s_StaticField);
System.out.println("子類--靜態初始化塊");
}
/* 初始化塊 */
{
System.out.println(s_Field);
System.out.println("子類--初始化塊");
}
/* 構造器 */
public SubClass() {
System.out.println("子類--構造器");
System.out.println("i=" + i + ",j=" + j);
}
/* 程序入口 */
public static void main(String[] args) {
System.out.println("子類main方法");
new SubClass();
}
}
結果:
父類--靜態變量 父類--靜態初始化塊 子類--靜態變量 子類--靜態初始化塊 子類main方法 父類--變量 父類--初始化塊 父類--構造器 i=9, j=0 子類--變量 子類--初始化塊 子類--構造器 i=9,j=20
(1)訪問SubClass.main(),(這是一個static方法),於是裝載器就會為你尋找已經編譯的SubClass類的代碼(也就是SubClass.class文件)。在裝載的過程中,裝載器注意到它有一個基類(也就是extends所要表示的意思),於是它再裝載基類。不管你創不創建基類對象,這個過程總會發生。如果基類還有基類,那麼第二個基類也會被裝載,依此類推。
(2)執行根基類的static初始化,然後是下一個派生類的static初始化,依此類推。這個順序非常重要,因為派生類的“static初始化”有可能要依賴基類成員的正確初始化。
(3)當所有必要的類都已經裝載結束,開始執行main()方法體,並用new SubClass()創建對象。
(4)類SubClass存在父類,則調用父類的構造函數,你可以使用super來指定調用哪個構造函數。基類的構造過程以及構造順序,同派生類的相同。首先基類中各個變量按照字面順序進行初始化,然後執行基類的構造函數的其餘部分。
(5)對子類成員數據按照它們聲明的順序初始化,執行子類構造函數的其餘部分。
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※帶您來了解什麼是 USB CONNECTOR ?
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!
※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※教你寫出一流的銷售文案?
數據庫有三級模型的概念,在這裏,數據倉庫也是有着三級模型並且是有着相似的思路。
1.概念模型
“信息世界”中的信息結構,也常常借用關係數據庫設計中的E-R方法,不過在數據倉庫的設計是以主題替代實體。
根據業務的範圍和使用來劃分主題
劃分的方法是首先要確定系統邊界,包括了解決策者需求(關注點),需求類型。通過對業務系統的詳細說明,確定數據覆蓋範圍,對數據進行梳理,列出數據主題詳細的清單,了解源數據狀況。
對每個數據主題都作出詳細的解釋,然後經過歸納、分類,整理成各個數據主題域,確定系統包含的主題。列出每個數據主題域包含哪些部分,並對每個數據主題域作出詳細的解釋,最後劃分成主題域概念模型。
2.邏輯模型
邏輯模型的設計是數據倉庫實施中最重要的一步,因為它直接反映了數據分析部門的實際需求和業務規則,同時對物理模型的設計和實現具有指導作用。它的特點就是通過實體和實體之間的關係勾勒出整個企業的數據藍圖和規劃。邏輯模型一般遵循第三範式,與概念模型不同,它主要關注細節性的業務規則,同時需要解決每個主題包含哪些概念範疇和跨主題域的繼承和共享的問題。
根據需求列出需要分析的主題,需求目標緯度指標,緯度層次分析的指標,分析的方法、數據來源等
對於一些緯度存在層次問題,比如說產品存在產品的類別,產品的子類別以及具體的產品
在邏輯模型設計中需要考慮粒度層次的劃分。數據倉庫的粒度層次劃分直接影響了數據倉庫模型的設計,通常細粒度的數據模型直接從企業模型選取實體作為邏輯模型的實體,而粗粒度的數據模型需要經過匯總計算得到相應的實體。粒度決定企業數據倉庫的實現方式、性能、靈活性和數據倉庫的數據量。
粒度指的是描述數據的綜合程度。粒度規定了數據倉庫潛在的能力和靈活性,如果沒有粒度級別的變化,數據倉庫將不能回答需要低於所採用細節級的問題。同時,粒度級別是數據庫規模的主要決定因素之一,對操作的開銷及性能都有顯著影響。
數據粒度越小,信息越細,數據量越大;顆粒粒度越大就忽略了眾多的細節,數據量越小。
3.物理模型
將邏輯模型轉變為物理模型包括以下幾個步驟:
(1)實體名(Entity) 轉變為表名(Table)。
(2)屬性名(Attribute) 轉換為列名(Column) ,確定列的屬性(Property) 。
(3)確定表之間連接主鍵和外鍵屬性或屬性組。
在物理模型設計中同時要考慮數據的存儲結構、存取時間、存儲空間利用率、維護代價等。根據數據的重要程度、使用頻率和響應時間將數據分類,不同類數據分別存放在不同存儲設備中,重要性高、經常存取並對反應時間要求高的數據存放在高速存儲設備上:存取頻率低或對存取響應時間要求低的數據可以存放在低速存儲設備上。根據數據量設定存儲塊、緩衝區大小和個數。
兩大類物理模型
數據倉庫的的數據模型相對數據庫更簡單一些,根據事實表和維度表的關係,主要有星形結構模型和雪花型結構模型兩種。
當所有維表都直接連接到“事實表”上時,整個圖解就像星星一樣,故將該模型稱為星型模型。
星型架構是一種非規範化的結構,多維數據集的每一個維度都直接與事實表相連接,所以數據有一定的冗餘,如在商店維度表中,存在省A的城市B以及省A的城市C兩條記錄,那麼省A的信息分別存儲了兩次,即存在冗餘。
雪花型架構相對於星形架構的優點是,能夠直接利用現有的數據庫建模工具進行建模,提高工作效率;以後對維度表的變更會更加靈活,而星形結構會牽涉到大量的數據更新:由於不存在數據冗餘,因此數據的裝載速度會更快。雪花型架構通過去除了數據冗餘,通過最大限度地減少數據存儲量以及聯合較小的維表來改善查詢性能。
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※南投搬家前需注意的眉眉角角,別等搬了再說!
※新北清潔公司,居家、辦公、裝潢細清專業服務
摘錄自2019年11月28日聯合新聞網報導
美國德州西北部傑佛遜郡(Jefferson County)內奇斯港(Port Neches)一間石油化學工廠在當地時間27日凌晨突然爆炸,現場烈焰沖天並且在約12小時後發生第二度爆炸,當局已下令附近六萬居民強制疏散。
出事的石油化學工廠屬於TPC集團(TPC Group),主要生產用來製造合成橡膠的易燃氣體丁二烯(Butadiene),以及丁烷(Butane)等化學品,距離休士頓約85英里(136公里)。
第一起爆炸發生在27日凌晨約1點,威力之大,連48公里外住宅都能感受到震動,不少居民形容,「自己被巨大爆炸聲驚醒」、「身上滿是玻璃碎片」、「我聽到並感覺到我的房子在搖晃」。當時共有約30名員工在現場,共造成三人受傷,分別是兩名雇員、一名承包商,在治療後已出院。
在第一起爆炸後約12個小時,燃燒中的化學工廠再度爆炸。
德州傑佛遜郡法官布蘭尼克(Jeff Branick)下令,TPC工廠半徑4英里範圍(約6.4公里)內的民眾全數強制疏散,大約六萬人。布蘭尼克表示,現場滅火相關單位目前無法估計現場化學殘存量以及火勢燃燒速度。《CNN》報導,TPC集團衛生安全保障主管特伊.蒙克(Troy Monk)表示,至少有三個燃料槽失火,目前團隊正在努力保持周遭燃料槽溫度不要上升。
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※南投搬家前需注意的眉眉角角,別等搬了再說!
※新北清潔公司,居家、辦公、裝潢細清專業服務
摘錄自2019年12月8日中央社、9日公共電視報導
氣候暖化讓各地生態都在改變,日本新潟有診所發現三頭熊疑似找不到適合地方冬眠,居然把診所倉庫,當成冬眠的場所。
日本放送協會(NHK)報導,8日上午8時45分(台灣時間7時45分)左右,南魚沼市二日町一家診所業者進入診所時發現有熊,立即打電話報警說:「診所內有一頭熊。」NHK記者現場報導,「現在可能是要將熊送上車運走,好像是小熊的樣子,感覺掙扎得相當厲害。」 當地政府表示,預計將把3頭熊帶到野外放生
警察在發現熊之後,在診所倉庫周邊架設障礙物,下午3時30左右對熊發射麻醉槍。熟知熊生態的新潟大學農學部(農學系)教授箕口秀夫表示,目前正是熊的冬眠期,這兩頭熊可能無法找到岩洞或木洞等適當的地方冬眠,所以選這家診所當冬眠地。今年熊吃的食物不足,很多熊來到山下有住家的地方覓食,或許這兩頭熊是冬眠前夕在市區附近覓食。對熊而言,這是緊急措施狀況。
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※帶您來了解什麼是 USB CONNECTOR ?
※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象
※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!
※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化
※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益
※教你寫出一流的銷售文案?