2017/12/08

200年一遇

97歳で大往生の祖父は一生のうちに三つの日本の元号(大正、昭和、平成)をまたぐことになった。あと2年くらい、昭和に生まれた私はまさか3つも体験できる。正直に言えば、想像もつかなかった。

2017/11/18

日本語の原点



若要說這輩子學日文有什麼遺憾的話那就是沒上過劉元孝センセイ的侯文
日本語の原点なんだ。この写真を見るたびに「初心を忘れず」ということわざを思い出す

2017/09/15

帥氣的火箭推手

之前在臉書上看到網友轉載黃創夏先生的文章,稱許台灣自製的福衛五號
發射成功,是台灣人在最艱困的環境,咬緊牙關創造歷史的見證。

...那些只會炒短線的政客與官僚,多次都想要裁撤掉一年預算只有不到
20億元台幣的國家太空中心,這些政客和官僚甚至是怕自己投入資源後,
而是幫下一任做政績,根本不支持太空中心,還想乾脆砍了,以免後任
撿便宜。幸好,彰化田尾草地人出身,努力向學而曾任美國航太總署NASA
研究員的前國科會主委李羅權積極奔走遊說...

...沒有後路,不成功就裁撤、只有汗水,沒空流淚、沒有英雄、只有團隊
的艱困壓力之下,政府只給寒酸預算、政客背後猛扯後腿之下,這段期間,
屢屢有不分藍綠的政客都不時想要拿工程發包的油水,發現國家太空中心
是窮單位後,惱羞成怒還黑函滿天飛,福衛五號蹣跚前行‧‧‧幸好,台灣
真正的軟實力,就是這些木訥不擅宣傳膨風的本土理工人才,以不到
兩百人的人力(NASA的僱員是一萬八千八百多人),終於打造出百分
之百的台灣自製衛星福衛五號...

若不是台灣的半導體大廠特別擠壓賺錢的生產線,專為福衛五號開一條專屬
生產線,賠本供應,若不是台灣中部機密機械工業能力協助,做到了抗40G
震動的技術(F-16戰機空中迴旋是9G,飛行員不慎就會斷頸),若不是台灣
廠商研發提供的超級黏膠,讓火箭衝出大氣層時,不會因為瞬間4000度溫差
的極度熱漲冷縮而解體,若不是一群工程師常在下班後,又主動在半夜回到
廠房進行測量,我們絕對無法共享這項得來不易的成果與榮耀,是他們用
寶貴的10年歲月,換得福衛五號在宇宙「看見」台灣,也讓全世界看見台灣
「軟」中帶「硬」的研發實力。

對比少數似乎永遠無法跟立場不同的人協調、溝通、合作(可能處理法案比
火箭升上太空還要難上一百倍吧?)的政客(不分藍綠),打從心底覺得,那群
「沒有聲音」,木訥到不會也隨波逐流,去拍桌、潑水、撒冥紙、丟雞蛋、
搶功勞、搶麥克風、搶鎂光燈焦點的火箭推手的身影,特別令人尊敬與動容。

2017/08/12

Java的static和non-static

- 被宣告成static的變數、方法,都是被共用的,而且已經存在於記憶體
- 若以時間軸來看,static的變數、方法是一開始就存在於記憶體,
not-static對它而言是「未來式」。所以not-static可以使用或呼叫static
變數、方法,但static不可以使用或呼叫non-static變數、方法

- static method儘量以【類別】名稱來使用它,不要用【物件】名稱

使用static的適當時機

(1)該類別內若不需要儲存任何使用者的資訊,只是純粹做計算
(2)該類別內有【類別變數】,但此【類別變數】是為了讓數個【物件】
共用,此時須注意同步的問題(通常會發生在多執行緒)

2017/08/05

猜數字遊戲(Java)

import java.util.Scanner;

public class GuessNumber {

static Scanner scn = new Scanner(System.in);

public static void main(String[] args) {
int digit = 4;
guessRand(getRandom(digit));
scn.close();
}

public static String getRandom(int digit) {
String stringRandom = "";

for (int i = 1; i <= digit; i++) {
int randomNumber = ((int) (Math.random() * 10));
if (((stringRandom.length() == 0) && (randomNumber != 0))
|| ((stringRandom.length() > 0) && (stringRandom.indexOf(String.valueOf(randomNumber)) == -1))) {
stringRandom = stringRandom + randomNumber;
} else {
i--;
}
}

return stringRandom;
}

public static void guessRand(String randomNumber) {
int A = 0, B = 0;
String userNumber = "";

while (!randomNumber.equals(userNumber)) {
System.out.printf("請輸入%d位數的數字:", randomNumber.length());
userNumber = scn.next();
for (int i = 0; i < randomNumber.length(); i++) {
if (randomNumber.charAt(i) == userNumber.charAt(i))
A++;
else if (randomNumber.indexOf(userNumber.charAt(i)) != -1)
B++;
}
System.out.printf("%dA%dB\n", A, B);
A = 0;
B = 0;
}
System.out.printf("恭喜你答對了,正確數字是" + userNumber);
}
}

2017/07/29

每列顯示N行的九九乘法表(Java)

public class MultiplicationClass {

public static void main(String[] args) {
multiplication_table(3);
}

static void multiplication_table(int column) {
for (int i = 1; i <= 9; i += column) {
for (int j= 1; j <= 9; j++) {
for (int k = 0; ((k < column) && (i + k) <= 9); k++) {
System.out.printf("%d * %d = %d\t", (i + k), j, (i + k)*j);
}
System.out.println();
}
System.out.println();
}
}

}