9/16淡水禮萊廣場周年慶!首六日會員消費3000送400消費滿千即可抽星級酒店一泊二食住宿劵_網頁設計公司

你可能還想看…

來源鏈接:https://www.thehubnews.net/archives/54441

綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

後山小調∕Delta病毒入侵 花蓮掃到颱風尾_包裝設計

花蓮縣這幾天特別要小心Delta病毒!

新冠病毒變異成新的Delta病毒,横掃世界各國,帶來新一波重大疫情,該病毒已經在新北社區及幼兒園出現,來勢洶洶,有確診者也到花蓮趴趴走,這回花蓮也被掃到颱風尾,大家得小心應對。

產品缺大量曝光嗎?你需要的是一流包裝設計

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

!

自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

到花蓮的新北一名確診者是本月3、4、5日三天兩夜在花蓮縣小旅行,足跡則遍及北花蓮,住過花蓮市民宿。

雖然官方發佈了確診者花蓮足跡,過去也未發現確診者足跡有傳染他人案例,不過此次的Delta病毒非同小可,傳染力更强,很難讓花蓮人放心,最好的防範之道,就是減少人流接觸,出門戴口罩,保持高度警戒。(本文作者∕資深媒體人:溫富振)

來源鏈接:https://www.thehubnews.net/archives/54484

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

推薦評價好的iphone維修中心

擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢

IBM 2nm突破:對芯片和服務器製造商有哪些影響?_網頁設計公司

IBM 2nm突破:對芯片和服務器製造商有哪些影響?

作者:陶然
編輯:
2021-08-25 09:52
IT168網站 原創 分享

  前不久,IBM公布了世界上第一個2納米晶體管技術的概念驗證。初步預測显示,與當今的7nm處理器相比,這一突破可能使性能提高45%,能耗降低75%。

  雖然2nm技術距離進入設備還有幾年的時間,但IBM的成功可能會惠及大部分芯片行業。雖然AMD和台積電近年來的進步使它們在市場上處於競爭地位,但2nm的實施將把三星、GlobalFoundries和英特爾拉入芯片製造的新十年。

  對於買家來說,競爭加劇和新能力的預測可能意味着處理能力、能源和空間節省的巨大收益。

在IBM Research的奧爾巴尼工廠製造的2納米晶圓。晶圓包含數百個獨立的芯片。

  IBM的最新創新將為整個半導體行業帶來新的特性和功能,並最終為從智能手機到超級計算機的所有購買者帶來新的特性和功能。

  IBM的最新創新:Nanosheets和GAAFET

  從位於紐約的奧爾巴尼納米技術綜合體開始,IBM的半導體開發工作繼續為創新提供渠道。IBM對芯片技術的貢獻不容小覷,從製作第一個7nm和5nm節點技術到單元DRAM和3D芯片堆疊。

  與過去15年的晶體管不同,IBM的2nm設計特別沒有使用FinFET架構。取而代之的是,創新者選擇了世界上第一個超薄納米片堆棧,這些納米片組合在一起產生了一個被稱為GAAFET的柵極。

  對於IBM產品,2nm晶體管將成為其用於服務器處理器的POWER系列和用於大型機的zArchitecture的核心。三星和GlobalFoundries作為預期的製造合作夥伴,最新的芯片設計可能會在2024年推出。

  2nm的特性

  使用IBM的納米片技術,2nm設計將在大約指甲大小的空間中安裝多達500億個晶體管,高於2017年5nm提供的300億個。隨着更多晶體管的裝入,IBM還注入了更多與人工智能、雲計算和安全。

  IBM概述的預期收益包括:手機電池壽命增加4倍;減少數據中心的碳足跡;提高筆記本電腦運行速度;更快的物體檢測。

  對於該公告,IBM研究部高級副總裁兼總監Darío Gil表示:IBM的創新體現在這款新的2nm芯片上,對整個半導體和IT行業都至關重要。它是IBM應對硬技術挑戰方法的產物,並展示了如何通過持續投資和協作研發生態系統方法實現突破。

回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

  即將推出:POWER10

  該公告發布之際,IBM準備推出POWER10 CPU系列。在7納米外形規格中,最新迭代的能效、工作負載容量和容器密度是POWER9的三倍。其他功能包括:

  內存啟動:支持多PB內存集群和密集型工作負載;

  硬件支持的安全性:其前身AES加密功能的4倍;

  矩陣數學加速器:用於FP32、BFloat16和INT8計算的AI推理速度提高20倍;

  適合混合雲環境,IBM的POWER10與紅帽OpenShift共同優化容器編排。目前,IBM最新芯片的製造屬於行業領先的三星。

  IBM的突破會讓英特爾受益嗎?

  英特爾和IBM的合作關係可以追溯到近40年前,因此IBM的2nm成就對英特爾來說是個好消息。雖然英特爾不是IBM的主要製造商,但一些分析師預測,這項創新將為英特爾提供跳過摩爾定律一代的資源。

  從投資200億美元開發7nm以在2022年發布,英特爾可能會在2024年跳到2nm開發。在那之前幾年,AMD和台積電擁有競爭優勢,英特爾有機會迎接挑戰。

  行業影響和IBM聯合開發聯盟

  GAAFET芯片設計和IBM 2nm的成功實施對行業來說是個大新聞。雖然這個概念並不新鮮,但IBM是第一個讓它發揮作用的公司,其他半導體市場也會適應。

  整個行業可能會取得進展,為了保持競爭力,每個供應商都投入了數十億美元用於研發和資本投資。通過交流和信息共享的窗口,IBM聯合開發聯盟是商業創新如何推動整個行業向前發展的案例研究。從三星和英特爾到AMD、台積電、英偉達等,IBM為許多行業供應商提供支持。

  到2020年代中期,預計2nm將成為主導處理器,我們都使用的操作設備將看到更快的處理速度、更低的能耗和電池壽命的大幅增加。

0

來源鏈接:http://server.it168.com/a2021/0825/6530/000006530994.shtml

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

推薦評價好的iphone維修中心

擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢

cc霜的正確使用方法 cc霜是幹什麼用的_音波拉皮_LPG

微晶瓷與晶亮瓷有何分別?名醫帶你來認識熱門的微整填充物

微晶瓷.晶亮瓷具有填補功能,可改善皮膚凹陷、不滿飽的情況,如鼻子或下巴不夠尖挺等問題

眼皮下垂治療方法有哪些?

客製劃的切口設計、傷口小、恢復期短

推薦台北緊緻V臉醫美課程

八爪拉皮和內視鏡拉皮完全不一樣,它是用來提拉中臉和下臉的鬆弛,手術切口在耳朵上方的髮際處達到緊緻V臉的效

朋友是開美容店的,今天去朋友的店裡,朋友給了我一盒cc霜,我也不知道cc霜是干什麼用的,那cc霜的正確使用方法?cc霜是干什麼用的?


,

cc霜的正確使用方法

1

一般是護膚完后使用。

cc霜屬於一種底妝產品,因此在使用的時候,一定是在護膚步驟弄完后,之後在可以塗抹cc霜,一般建議在妝前乳後面使用就可以了,妝前乳主要其保護肌膚不受底妝產品的傷害,對肌膚具有保護作用。

,

cc霜是干什麼用的

2

cc霜對於化妝的人群來說,是面部彩妝的一種,cc霜具有提亮暗沉膚色的作用,遮蓋力通常較隔離霜要強,但和bb霜和粉底相比,就會顯得輕薄一些;其次cc霜還添加了紫外吸收劑,具有一定防晒作用。

,

cc霜和防晒霜的區別

3

主要有以下不同:

成分不一樣

cc霜作為一種底妝產品,成分比較多,可以均勻膚色、保濕肌膚同時具有一定防晒作用;而防晒霜的主要作用就是防晒,其成分較cc霜來說比較單一。

杏仁酸換膚後續如何保養?

肉毒瘦臉前注意事項:術前兩週以內,若服用任何含有阿斯匹靈的藥物,請先告知醫師。

好難瘦身哦!教你把握生理黃金期

提法是利用大迎穴及車頰穴進行穴道按摩,拉提臉部肌肉。建議每天早晚洗完臉,擦完乳液之後做這套穴道按摩,至少要做20下以上,才能讓乳液同時被肌膚吸收,但要注意的是,一定要在臉部是滋潤的狀態下才能按摩。

音波拉皮要打幾條比較適合呢?

我們致力於給每個人更美好的生活, 注重安全有效果的產品研發精神, 販售更健康自然的美麗療法並針對個人化的需求, 提供專屬的, 物超所值的服務

作用不同

cc霜的主要作用有調節肌膚顏色、提亮;賦予美容效果,包括肌膚的保濕、保護等;其次還可以起到一定防晒效果;而防晒霜的主要作用是阻擋紫外線,起到有效防晒的作用。

適用人群不同

cc霜屬於底妝產品,對於需要進行化妝的人群來說,需要使用cc霜進行調節膚色以及保護肌膚,是底妝不可缺少的一部分;而防晒霜主要作用是防晒,對於長期在室內的人,可以不塗抹防晒霜,但出門的話一定要做好防晒工作。

,

cc霜和bb霜的區別

4

主要有以下區別:

1、cc霜的遮瑕能力一般低於bb霜,適用於皮膚本身較好的人群。

2、cc霜中的護膚成分比較多,並且比bb霜質地輕薄,更接近於護膚品;而bb霜質地較厚重,用來遮瑕。

3、cc霜可以起到提亮膚色、滋潤肌膚的作用;而bb霜更接近於粉底,具有一定遮瑕功能。

,

,
養生攻略,
問答,0

積分文章來源: 樂哈網

如何透過LPG體雕重塑理想曲線?

認識全新Thermage®第四代FLX鳳凰電波
隨著年齡增長,皮膚中的膠原蛋白漸漸流失,導致皮膚出現皺紋、鬆弛及下垂老化現象

改善臉部鬆弛,FLX鳳凰電波拉皮,讓您成為凍齡美魔女

第四代的Thermage FLX鳳凰電波AccuREP® 技術,採用專利單極射頻,可安全地立體加熱深層皮膚,刺激膠原蛋白,達到即時收緊效果

開眼頭術後如何照護呢?恢復期多久?

來到里約,你可以鬆開不必要的束縛,釋放內心對於美麗的想望。

捐千萬照拂無子西瓜族!王建煊夫婦:照顧老人就是照顧未來的自己_音波拉皮

最新魔滴隆乳技術,案例分享

自體脂肪、果凍矽膠、絨毛面和光滑面,隆乳方式有好多,你都搞清楚了嗎?

有效擊碎去斑,皮秒新技術喚醒年輕肌力

皮秒(Picosecond)為一種時間的單位。運用在雷射上,可比傳統奈秒(Nanosecond)雷射的脈衝時間短上1000倍

電波拉皮與音波拉皮哪裡不一樣?

走進里約,美麗交由你來詮釋定義,你值得擁有比從前更好的自己。

【早安健康/李宇涵報導】高領白襯衫燙得雪亮,搭配深藍色的牛仔褲,前監察院長王建煊推著坐在輪椅上的妻子蘇法昭,有說有笑地漫步在社區的花園,精神抖擻的模樣難以察覺夫妻倆今年已82歲,也令人羨慕這般年華能如此怡然。其實,容光煥發的背後,他們早已察覺年老後的困境,他們將這份「感同身受」化為動力,創立基金會幫助孤軍奮戰的老人們。

「愛就是在別人的需要上看見自己的責任」

不甩癌症、失智,只願無子一族老有所居

台灣即將於2025年步入超高齡社會,屆時全台65歲以上老人達20%,再加上少子化日益嚴重,即使結婚比例上升,每五對新人就有一對沒有孩子,顯見孤獨老已成為不容忽視的社會現象。

「老年的時候,老伴走了只剩下一個人,再加上病痛纏身,幾乎看不見希望。」王建煊點出老人的哀愁,結褵58年的王建煊與蘇法昭兩人沒有子女,雙雙前後罹患攝護腺癌與輕度阿茲海默症,深知無子老人的無助,即便兩人已高齡80多歲,仍堅持要解決老人的憂愁。

「愛就是在別人的需要上,看見自己的責任。」王建煊夫婦2011年賣掉長年居住的房子,將所得1300萬成立無子西瓜社會福利基金會,幫助沒有孩子的老人老有所居,無憂而終。
(編輯推薦:

無子變有子的自在老後

虛弱的人更要有良好的生活環境,秉持這份理念,王建煊決心打造不同於一般安養院的照護環境,東華書局創辦人卓鑫淼的遺孀深受感動,一口氣捐贈3.8億元讓夢想點石成金,今年3月5日於林口長庚紀念醫院附近動土,預計明年中落成,定名為「鑫淼天使居」。

「無子、獨居、老人」是天使居的主要的照顧族群,只要到這裡生活,不會讓人感到恐懼、孤獨,反而要讓人感到如同天使般的快樂;王建煊希望基金會與老人沒有隔閡,「他們就是我們的爸媽,我們就是他們的兒女,」讓無子變有子,建立緊密關係,是天使居的使命,王建煊說。

人會離開,愛卻能留在世上!深信愛是可以傳染的,王建煊認為愛的循環是天使居存在的真諦。下一頁看更多精彩內容

懶人瘦臉激推睡前二步驟,讓你輕鬆擁有瓜子臉!

瘦臉秘訣大概可分為:瘦臉常識、瘦臉方法、瘦臉食品三大塊。

明星保養的新祕密,施打美白針改善六大皮膚暗沉問題!

美白針其實就是把一些可美白的成分,用針劑的方式注射進入血液

找回青春緊緻小臉,電波拉皮施打經驗分享

正宗電波拉皮指的是美國Solta Medical公司所生產的單極無線射頻電
波拉皮機—熱世紀Thermacool。

來源鏈接:https://www.edh.tw/article/28377

本站聲明:網站內容來源於網絡,如有侵權,請聯繫我們,我們將及時處理。

淚溝顯疲憊老態,想知道該如何去除還你好氣色呢?

淚溝是指由內眼角開始出現在下眼瞼靠鼻側的一條凹溝,是由於眼眶隔膜下緣的軟組織萎縮、下垂而生成的

常見醫美問題-杏仁酸QA

現在想要透過醫美的方式瘦臉,一般都會選擇整形外科手術或是微整形,影響臉型輪廓的因素可能有脂肪、骨骼、肌肉等,若是因為過多的脂肪影響臉型

晶亮瓷微調鼻子、下巴好自然,打造上相V臉

微晶瓷(Radiesse,又稱瑞得喜)呈白色膠狀,主成分是直徑25-45微米(μm)的烴基磷灰石鈣(Calcium Hydroxylapatite)微晶球(microsphere),是一種高溫燒製的生物軟陶瓷

杭州浩海教育諮詢有限公司張景舒做客《逐夢年代》_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

在教育國際化背景下,不少家長選擇讓孩子在學習母語之外,學習另一種語言以提高孩子的核心競爭力,英語作為普及率較高的語言之一成為了不少家長的選擇。而隨着家長教育思想的轉變、國家政策的支持,不少家長選擇讓孩子出國留學。在出國前,家長和孩子往往會遇到各式各樣的問題,憑個人能力無法準確拿捏。近日,《逐夢年代》欄目組有幸請到了這樣一位嘉賓,他的企業能夠對想要出國留學的孩子提供很大的幫助,一起來分享他的教育情懷。

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

本期訪談嘉賓張景舒,杭州浩海教育諮詢有限公司董事長、浩海聯合創始人,“你好-故事”公益組織的創始人。曾獲得詹姆斯格萊格獎(康奈爾大學工程學院最高獎),康奈爾大學“歐”創業競賽銀牌,麻省理工學院脫口秀第一名, 曾任職於沃帝華等知名量化對沖基金。橫跨文學、工程、商科三個領域,擁有豐富的知識、閱歷儲備。張景舒坦言,自身的留學經歷曾因為不靠譜的留學中介帶來了陰霾,高考的分數只夠申請密歇根大學,在自身的不斷努力之下,成功轉學到康奈爾大學,為了幫助更多有留學夢的師弟師妹,他毅然投入到這份事業中來,為學子們帶來最專業的留學諮詢。

浩海留學是一家專註於美英高端留學的教育諮詢機構。機構由美國哈佛大學、麻省理工學院、康奈爾大學、密歇根大學、牛津大學、劍橋大學等知名學府畢業生創立,旨在為廣大中國赴英美留學生提供高端且專業的留學諮詢服務。不同於傳統留學中介,浩海留學智創的“互聯網+共享顧問”新模式能夠給每一位學生提供同專業名校畢業且奮戰在該領域一線的專業導師,為其量身定製該專業的背景提升規劃,申請指導,文書創作,以及就業指導來幫助申請者以相同的分數獲得更好的錄取結果;同時,公司理念區別於一般機構的“包辦”模式,浩海秉承“全程協同”、“全程透明“的模式,用心讓每個孩子找到自己的價值,挖掘出自己的潛力。

文書作為出國留學的申請材料之一,一直以來處於重要地位,因為它不僅能向錄取院校從各個角度展現申請者的求學動機,學術學習能力,還是唯一可以和招生官直接溝通的機會。正是意識到了文書的重要性,張景舒開始致力於為學生量身定製,提供個性化的教育諮詢服務,幫助學生打造最優質的軟背景,讓他們在這個國際競技舞台上脫穎而出,圓夢名校。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

梅三社區舉辦盆栽製作講座_台中搬家公司

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

入冬后,花謝凋零,綠恭弘=叶 恭弘枯萎,生活中少了盎然的綠色生機。在漫長的冬季與綠色相伴成為居民們對美好生活的需求。為滿足居民的這一願望,12月11日下午,江蘇省無錫市新吳區梅村街道梅荊三社區居委會邀請園藝師,給轄區盆景愛好者舉辦了一次盆栽製作及管理的技藝講座。

※推薦台中搬家公司優質服務,可到府估價

台中搬鋼琴,台中金庫搬運,中部廢棄物處理,南投縣搬家公司,好幫手搬家,西屯區搬家

講授中,園藝老師詳細講解了製作盆景的技巧、所需的各種材料的選取,還傳授了盆栽植物的構景、具體的種植和管理方法。隨後,園藝老師把提前準備的製作材料一一分發給大家,指導大家將營養土放入盆中,並根據前低后高的原則,種植好網紋草,將土壓實,鋪上苔蘚和砂石,再插上兩個可愛的小擺件做裝飾。製作中,大家相互提示、相互交流,把對美好生活的嚮往和對綠色大自然的情感傾注於盆景製作中。經過大家的精妙構景和創意,一件件精美的盆栽應運而生。看到自己製作的盆景,大嫂們臉上露出了滿足的笑容,互相欣賞、拍照留念。

講座結束時,大嫂們猶味未盡,表示要到田野里採集宜冬種植的花草製作盆景,在隆冬的家裡享受綠色盎然的“春天”。

(吳建農  糜嘉怡)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」

喜看南水潤津沽_網頁設計公司

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

“通水啦!我們喝到江水啦!”11月30日上午,天津武清區丁家酄村,村民張彥忠擰開水龍頭,看着清澈的水嘩嘩流出,話語中洋溢着喜悅。

  “使用南水后,原水水質常規監測大部分指標一直保持在地表水Ⅱ類標準及以上。自來水出廠水、管網水濁度明顯下降,市民飲用水口感顯著提升。”天津水務集團生產技術和信息部副部長季洪德說。

  2014年12月12日,南水北調中線工程正式通水。漢江水自丹江口水庫啟程奔騰北上,到達南水北調中線工程天津幹線終點——曹庄泵站,由此進入天津的千家萬戶。漢江水也成為繼上世紀80年代的引灤入津工程后,天津又一條城市供水生命線。

  5年間,中線工程連續不間斷安全供水,水質穩定達標,累計45億立方米的供水量,相當於一個滿庫容的密雲水庫水量。

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

  2018年起,天津啟動新一輪農村飲水提質增效工程,通過延伸自來水供水範圍、改擴建供水設施、改造老舊管網等措施,以優質自來水替代地下水源,全面提升2061個村、202.2萬人供水質量。目前,南水已覆蓋天津16個行政區中的14個,全市1000多萬居民受益。至明年工程全部完成后,絕大多數農村居民將喝上自來水。

  供水量持續增加,生態補水有底氣。天津南部的北大港濕地是東亞—澳大利亞候鳥遷徙的重要通道和驛站,每年冬季前後到此停歇和棲息的鳥類達上百萬隻。“截至目前總共觀測到鳥類276種,比2015年多了27種。”北大港濕地自然保護區管理中心野保科負責人孫洪義說。自去年10月啟動北大港水庫應急調水以來,北大港水庫累計入庫水量2.95億立方米,水庫蓄水量由干庫狀況增加至1.88億立方米,水面面積由不足30平方公里增加至119平方公里。

  2016年起,天津逐步實現對中心城區重點河道的常態化補水,年均生態補水10億立方米以上,進一步提高了河湖水系連通循環能力。

  截至2018年底,天津深層地下水開採量降至1.5億立方米,預計到2022年,全市地下水超採區基本實現零開採。《2018年天津市水資源公報》显示,2018年,平原淡水區淺層地下水年末存儲量比年初增加0.62億立方米。

  “南水來之不易,天津將落實好最嚴格水資源管理制度,深入推動節水型社會創建,讓清澈甘甜的江水持久造福津門大地。”天津市水務局局長張志頗說。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

看了這篇,我確定你已經徹底搞懂Java的繼承了_台北網頁設計

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

遇到認真的讀者是作者的一種幸運,真的,上一篇接口推送后,有好幾個讀者留言說,“二哥,你有一處內容需要修正,應該是接口中不能有 private 和 protected 修飾的方法。”說實話,看到這樣的留言,我內心是非常欣慰的,因為你投出去的一塊石頭在水面上激起了一串美麗的漣漪。

在 Java 中,一個類可以繼承另外一個類或者實現多個接口,我想這一點,大部分的讀者應該都知道了。還有一點,我不確定大家是否知道,就是一個接口也可以繼承另外一個接口,就像下面這樣:

public interface OneInterface extends Cloneable {
}

這樣做有什麼好處呢?我想有一部分讀者應該已經猜出來了,就是實現了 OneInterface 接口的類,也可以使用 Object.clone() 方法了。

public class TestInterface implements OneInterface {
    public static void main(String[] args) throws CloneNotSupportedException {
        TestInterface c1 = new TestInterface();
        TestInterface c2 = (TestInterface) c1.clone();
    }
}

除此之外,我們還可以在 OneInterface 接口中定義其他一些抽象方法(比如說深拷貝),使該接口擁有 Cloneable 所不具有的功能。

public interface OneInterface extends Cloneable {
    void deepClone();
}

看到了吧?這就是繼承的好處:子接口擁有了父接口的方法,使得子接口具有了父接口相同的行為;同時,子接口還可以在此基礎上自由發揮,添加屬於自己的行為。

以上,把“接口”換成“類”,結論同樣成立。讓我們來定義一個普通的父類 Wanger:

public class Wanger {
    int age;
    String name;
    void write() {
        System.out.println("我寫了本《基督山伯爵》");
    }
}

然後,我們再來定義一個子類 Wangxiaoer,使用關鍵字 extends 來繼承父類 Wanger:

public class Wangxiaoer extends Wanger{
    @Override
    void write() {
        System.out.println("我寫了本《茶花女》");
    }
}

我們可以將通用的方法和成員變量放在父類中,達到代碼復用的目的;然後將特殊的方法和成員變量放在子類中,除此之外,子類還可以覆蓋父類的方法(比如write() 方法)。這樣,子類也就煥發出了新的生命力。

Java 只支持單一繼承,這一點,我在上一篇接口的文章中已經提到過了。如果一個類在定義的時候沒有使用 extends 關鍵字,那麼它隱式地繼承了 java.lang.Object 類——在我看來,這恐怕就是 Java 號稱萬物皆對象的真正原因了。

那究竟子類繼承了父類的什麼呢?

子類可以繼承父類的非 private 成員變量,為了驗證這一點,我們來看下面這個示例。

public class Wanger {
    String defaultName;
    private String privateName;
    public String publicName;
    protected String protectedName;
}

父類 Wanger 定義了四種類型的成員變量,缺省的 defaultName、私有的 privateName、共有的 publicName、受保護的 protectedName。

在子類 Wangxiaoer 中定義一個測試方法 testVariable():

可以確認,除了私有的 privateName,其他三種類型的成員變量都可以繼承到。

同理,子類可以繼承父類的非 private 方法,為了驗證這一點,我們來看下面這個示例。

public class Wanger {
    void write() {
    }

    private void privateWrite() {
    }

    public void publicWrite() {
    }

    protected void protectedWrite() {
    }
}

父類 Wanger 定義了四種類型的方法,缺省的 write、私有的 privateWrite()、共有的 publicWrite()、受保護的 protectedWrite()。

在子類 Wangxiaoer 中定義一個 main 方法,並使用 new 關鍵字新建一個子類對象:

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

可以確認,除了私有的 privateWrite(),其他三種類型的方法都可以繼承到。

不過,子類無法繼承父類的構造方法。如果父類的構造方法是帶有參數的,代碼如下所示:

public class Wanger {
    int age;
    String name;

    public Wanger(int age, String name) {
        this.age = age;
        this.name = name;
    }
}

則必須在子類的構造器中顯式地通過 super 關鍵字進行調用,否則編譯器將提示以下錯誤:

修復后的代碼如下所示:

public class Wangxiaoer extends Wanger{
    public Wangxiaoer(int age, String name) {
        super(age, name);
    }
}

is-a 是繼承的一個明顯特徵,就是說子類的對象引用類型可以是一個父類類型。

public class Wangxiaoer extends Wanger{
    public static void main(String[] args) {
        Wanger wangxiaoer = new Wangxiaoer();
    }
}

同理,子接口的實現類的對象引用類型也可以是一個父接口類型。

public interface OneInterface extends Cloneable {
}
public class TestInterface implements OneInterface {
    public static void main(String[] args) {
        Cloneable c1 = new TestInterface();
    }
}

儘管一個類只能繼承一個類,但一個類卻可以實現多個接口,這一點,我在上一篇文章也提到過了。另外,還有一點我也提到了,就是 Java 8 之後,接口中可以定義 default 方法,這很方便,但也帶來了新的問題:

如果一個類實現了多個接口,而這些接口中定義了相同簽名的 default 方法,那麼這個類就要重寫該方法,否則編譯無法通過。

FlyInterface 是一個會飛的接口,裏面有一個簽名為 sleep() 的默認方法:

public interface FlyInterface {
    void fly();
    default void sleep() {
        System.out.println("睡着飛");
    }
}

RunInterface 是一個會跑的接口,裏面也有一個簽名為 sleep() 的默認方法:

public interface RunInterface {
    void run();
    default void sleep() {
        System.out.println("睡着跑");
    }
}

Pig 類實現了 FlyInterface 和 RunInterface 兩個接口,但這時候編譯出錯了。

原本,default 方法就是為實現該接口而不覆蓋該方法的類提供默認實現的,現在,相同方法簽名的 sleep() 方法把編譯器搞懵逼了,只能重寫了。

public class Pig implements FlyInterface, RunInterface {

    @Override
    public void fly() {
        System.out.println("會飛的豬");
    }

    @Override
    public void sleep() {
        System.out.println("只能重寫了");
    }

    @Override
    public void run() {
        System.out.println("會跑的豬");
    }
}

類雖然不能繼承多個類,但接口卻可以繼承多個接口,這一點,我不知道有沒有觸及到一些讀者的知識盲區。

public interface WalkInterface extends FlyInterface,RunInterface{
    void walk();
}

學到了吧?學到就是賺到。

我是沉默王二,一枚有趣的程序員。如果覺得文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀,回復【666】更有我為你精心準備的 500G 高清教學視頻(已分門別類)。

本文 GitHub 已經收錄,有大廠面試完整考點,歡迎 Star。

原創不易,莫要白票,請你為本文點個贊吧,這將是我寫作更多優質文章的最強動力。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

單例模式,反射破環?_包裝設計

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

餓漢式

// 餓漢式單例
public class Hungry {
    
    //構造器私有
    private Hungry(){

    }
    // 一上來就把這個類加載了
    private final static  Hungry HUNGRY = new Hungry();

    public static Hungry getInstance(){
        return HUNGRY;
    }
}
// 餓漢式單例
public class Hungry {
    // 這4組數據非常耗內存資源,餓漢式一上來就把所有的內存裏面的東西全部加載進來了,就存在這個空間
    // 但這個空間現在是沒有使用的,可能會造成浪費空間
    private byte[] data1 = new byte[1024*1024];
    private byte[] data2 = new byte[1024*1024];
    private byte[] data3 = new byte[1024*1024];
    private byte[] data4 = new byte[1024*1024];
    
    //構造器私有
    private Hungry(){

    }
    // 一上來就把這個類加載了
    private final static  Hungry HUNGRY = new Hungry();

    public static Hungry getInstance(){
        return HUNGRY;
    }

}

餓漢式單例可能會造成浪費空間,所以想要用的時候再去創建這個對象,平時就先放在這個地方,於是就出現了懶漢式!

懶漢式

// 懶漢式單例
public class LazyMan {
	
   // 構造器私有
    private LazyMan(){
       
    }

    private  static LazyMan lazyMan;

   
    public static LazyMan getInstance(){
       
        if (lazyMan==null){
            lazyMan = new LazyMan(); 
        }
        return lazyMan;
    }
}

它是有問題的,單線程下確實單例ok,多線程併發就會出現問題!

測試

// 懶漢式單例
public class LazyMan {
	
   // 構造器私有
    private LazyMan(){
       System.out.println(Thread.currentThread().getName()+":: ok");
    }

    private  static LazyMan lazyMan;

   
    public static LazyMan getInstance(){
       
        if (lazyMan==null){
            lazyMan = new LazyMan(); 
        }
        return lazyMan;
    }
    
    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                LazyMan.getInstance();
            }).start();
        }
    }
}

發現單例有問題,每次結果可能都不一樣!

解決

// 懶漢式單例
public class LazyMan {


    private LazyMan(){
        System.out.println(Thread.currentThread().getName()+":: ok");
    }

    private  static LazyMan lazyMan;

    // 雙重檢測鎖模式的 懶漢式單例 DCL懶漢式
    public static LazyMan getInstance(){
        if (lazyMan==null){
            synchronized (LazyMan.class){
                if (lazyMan==null){
                    lazyMan = new LazyMan(); 
                }
            }
        }
        return lazyMan;
    }

     public static void main(String[] args) {

         for (int i = 0; i < 10 ; i++) {
             new Thread(()->{
                LazyMan.getInstance();
             }).start();
         }
     }
}

但在極端情況下還是可能出現問題

經歷三個步驟:

1、 分配內存空間

2、 執行構造方法,初始化對象

3、 把這個對象指向這個空間

有可能會發生指令重排的操作!

比如,期望它執行 123 ,但是它真實可能執行132,比如第一個A線程過來執行了132,先分配空間再吧這個空間佔用了,佔用之後再去執行構造方法,如果現在突然來了個B線程,由於A已經指向這個空間了,它會以為這個 lazyMan 不等於 null ,直接return ,此時lazyMan還沒有完成構造,所以必須避免這個問題!

必須加上volatile

// 懶漢式單例
public class LazyMan {


    private LazyMan(){
        System.out.println(Thread.currentThread().getName()+":: ok");
    }
	// 避免指令重排
    private volatile static LazyMan lazyMan;

    // 雙重檢測鎖模式的 懶漢式單例 DCL懶漢式
    public static LazyMan getInstance(){
        if (lazyMan==null){
            synchronized (LazyMan.class){
                if (lazyMan==null){
                    lazyMan = new LazyMan(); 
                }
            }
        }
        return lazyMan;
    }

     public static void main(String[] args) {

         for (int i = 0; i < 10 ; i++) {
             new Thread(()->{
                LazyMan.getInstance();
             }).start();
         }
     }
}

靜態內部類

// 靜態內部類
public class Holder {
    private Holder(){

    }
    public static Holder getInstance(){
        return InnerClass.HOLDER;
    }
    public static  class InnerClass{
        private static final Holder HOLDER = new Holder();
    }
}

也是單例模式的一種,不安全!

單例不安全 反射

// 懶漢式單例
public class LazyMan {


    private LazyMan(){
        System.out.println(Thread.currentThread().getName()+":: ok");
    }

    private volatile static LazyMan lazyMan;

    // 雙重檢測鎖模式的 懶漢式單例 DCL懶漢式
    public static LazyMan getInstance(){
        if (lazyMan==null){
            synchronized (LazyMan.class){
                if (lazyMan==null){
                    lazyMan = new LazyMan(); //不是一個原子性操作
                }
            }
        }
        return lazyMan;
    }


    //反射
     public static void main(String[] args) throws Exception {
         LazyMan instance1 = LazyMan.getInstance();
         Constructor<LazyMan> declaredConstructor = LazyMan.class.getDeclaredConstructor(null);
         declaredConstructor.setAccessible(true); // 無視了私有的構造器
         // 通過反射創建對象
         LazyMan instance2 = declaredConstructor.newInstance();

         System.out.println(instance1);
         System.out.println(instance2);
     }
}

結論:反射可以破壞這種單例

解決

// 懶漢式單例
public class LazyMan {

    private LazyMan(){
        synchronized (LazyMan.class){
            if (lazyMan!=null){
                throw new RuntimeException("不要試圖使用反射破環 異常");
            }
        }
        System.out.println(Thread.currentThread().getName()+":: ok");
    }

    private volatile static LazyMan lazyMan;

    // 雙重檢測鎖模式的 懶漢式單例 DCL懶漢式
    public static LazyMan getInstance(){
        if (lazyMan==null){
            synchronized (LazyMan.class){
                if (lazyMan==null){
                    lazyMan = new LazyMan(); //不是一個原子性操作
                }
            }
        }
        return lazyMan;
    }

    //反射
     public static void main(String[] args) throws Exception {
         LazyMan instance1 = LazyMan.getInstance();
         Constructor<LazyMan> declaredConstructor = LazyMan.class.getDeclaredConstructor(null);
         declaredConstructor.setAccessible(true); // 無視了私有的構造器
         // 通過反射創建對象
         LazyMan instance2 = declaredConstructor.newInstance();

         System.out.println(instance1);
         System.out.println(instance2);
     }
}

但是如果都用反射創建對象的情況下,還是會破環單例!

測試

※南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

解決

// 懶漢式單例
public class LazyMan {
      // 標誌位
    private static boolean abc = false;

    private LazyMan(){
        synchronized (LazyMan.class){
            if (abc==false){
                abc=true;
            }else {
                throw new RuntimeException("不要試圖使用反射破環 異常");
            }
          
        }
        System.out.println(Thread.currentThread().getName()+":: ok");
    }
    private volatile static LazyMan lazyMan;

    // 雙重檢測鎖模式的 懶漢式單例 DCL懶漢式
    public static LazyMan getInstance(){
        if (lazyMan==null){
            synchronized (LazyMan.class){
                if (lazyMan==null){
                    lazyMan = new LazyMan(); //不是一個原子性操作
                }
            }
        }
        return lazyMan;
    }

    //反射
    public static void main(String[] args) throws Exception {
        //LazyMan instance1 = LazyMan.getInstance();
        Constructor<LazyMan> declaredConstructor = LazyMan.class.getDeclaredConstructor(null);
        declaredConstructor.setAccessible(true); // 無視了私有的構造器
        // 通過反射創建對象
        LazyMan instance2 = declaredConstructor.newInstance();
        LazyMan instance1 = declaredConstructor.newInstance();

        System.out.println(instance1);
        System.out.println(instance2);
    }
}

但是如果被人知道 abc這個變量,也可以破環!

單例又被破環了!

看一下源碼

它說不能使用反射破環枚舉,枚舉是jdk1.5出現的,自帶單例模式!

測試,寫一個枚舉類

// enum 本身就是一個class類
public enum EnumSingle {

    INSTANCE;
    public EnumSingle getInstance(){
        return INSTANCE;
    }
}

查看它的源碼

試圖破環!

// enum 本身就是一個class類
public enum EnumSingle {

    INSTANCE;
    public EnumSingle getInstance(){
        return INSTANCE;
    }
}
class Test{
    public static void main(String[] args) throws Exception {
        EnumSingle instance1 = EnumSingle.INSTANCE;
        Constructor<EnumSingle> declaredConstructor = EnumSingle.class.getDeclaredConstructor(null);
        declaredConstructor.setAccessible(true);
        EnumSingle instance2 = declaredConstructor.newInstance();
        System.out.println(instance1);
        System.out.println(instance2);
    }
}

它竟然說我現在的這個枚舉類中沒有空參構造器!

然後就去源碼里分析!

找到這個class文件!利用javap反編譯一下!

發現這個也显示有一個空參構造,證明這個也不對,用第三方的工具查看!

利用它再吧class文件生成java文件!

打開這個java文件

證明是idea和源碼騙了我!

再次嘗試破環!

// enum 本身就是一個class類
public enum EnumSingle {

    INSTANCE;
    public EnumSingle getInstance(){
        return INSTANCE;
    }
}
class Test{
    public static void main(String[] args) throws Exception {
        EnumSingle instance1 = EnumSingle.INSTANCE;
        Constructor<EnumSingle> declaredConstructor = EnumSingle.class.getDeclaredConstructor(String.class,int.class);
        declaredConstructor.setAccessible(true);
        EnumSingle instance2 = declaredConstructor.newInstance();
        System.out.println(instance1);
        System.out.println(instance2);
    }
}

結論:反射無法破環枚舉類!

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。