搜尋此網誌

2014年11月26日 星期三

陣列



package encoding;
public class Empty {
//陣列是一個有固定長度 , 儲存相同型別資料的容器.
public static void main(String[] args) {
//要使用陣列之前必須要先 new 出所需長度的記憶體位置給陣列 , 否則無法儲存資料.
int[] numberGroup1 = new int[1];
numberGroup1[0] = 1;
//存取陣列是由位置 0 開始 .
System.out.println(numberGroup1[0]);
//在new陣列的同時也可以初始化陣列各個位置的值.
int[] numberGroup2 = new int[] { 2, 3 };
//存取陣列是由位置 0 開始 .
System.out.println(numberGroup2[0]);
System.out.println(numberGroup2[1]);
}
}


2014年11月24日 星期一

Java變數命名規則

變數是區分大小寫的, 所以 int a , 和int A是兩個不同的變數.

變數不要用'$' (錢字號) 或 '_' (底線) , 作為開頭.

開頭之後可以為字母, 錢字號 , 數字 或底線.

命名要用有意義的全名, 不要用神秘的縮寫 , 讓程式碼好維護
例如 : int  wheel , 比  int w, 來得好. 但是Java的關鍵字或是保留字
不可作為變數名稱.

假如變數是由兩個單字或以上所組成的 , 那麼第二個單字開始的字母必需要以大寫開頭
例如: iceCream ,  carWheel .

定義常數的話則是每個字母都要大寫 , 單字間要用底線連接
例如 : public static final String CAR_WHEEL = "car wheel"

下面是oracle網站列出的關鍵字和保留字, 列出供參考:

abstract continue for new switch
assert*** default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum**** instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp** volatile
const* float native super while
* not used
** added in 1.2
*** added in 1.4
**** added in 5.0

對很黑的同事好一點.

這個月的月底, 最黑的同事就要離職了.平時應該對他友善一點,好一點的.

因為他離職後 , 主管的重心會移到其他人身上.這對我們並不是好事阿.

不過他的離職, 對於其他成員的好處是 , 我們不必幫他擦屁股了.

他用很隨便的心態在寫code , 又不做unit test,程式一上線很容易就出包.

主管又把錯誤丟給我解, 真是ooxx. 不過在這個時間點離職還真是可惜

再撐兩個多月就能領年終了. 可是對於想離職的人而言,

多待一天公司, 只是多痛苦一天吧.

每個人說起離職的理由都是萬般不得已的決定 , 但是又有誰會把真正的理由說出來呢?

2014年11月5日 星期三

日圓貶值,

雖然最近日元貶值 , 但是新台幣對美元也是貶值的趨勢 , 使得日圓換匯的效益沒有預期明顯.

可是人民幣對美金持平 , 甚至還有微升. 人民幣換日圓的效益會比較明顯.

台幣會朝向 31元靠攏嗎?

2014年4月19日 星期六

常見的Java面試問題與答案11-20

Q11. 甚麼是三元運算

A: 

透過boolean運算子來決定要指定哪一個值給變數.



例如:




public class HelloWorld
{
       
    public static void main(String[] args){
        int i =2 ;
        System.out.println((i > 2 ) ? "bigger" : "small or equal");
    }
}

Q12. Java有哪五種運算元

A: 

1. 算術運算元 : 用來做數學運算.

例如 : + , - , * , / , %(求餘數), ++ (i +=1), - - (i - =1)

2. 關係運算元 : 用來做關係比較.(變數的位址是否相等之類的比較)


例如 : == (相等), !=(不相等 ), > ,< ,<= ,>=

3. 位元運算 : 



例如 : &(all 1) ,| (1 or 0)  ,^, ~ 

4. 邏輯運算 :  邏輯(True or False)的比較




例如 :  &&(and), ||  (or), ! (not)

5. 指定運算元 :  用來指定變數值





例如 :  += , - =,*=,/=


Q13. 甚麼是預設的switch case,請舉例

A: 

在switch敘述句裡面 , 當沒有符合的case, 便會執行default case. default case只可以宣告一次 , 或者不宣告.



public class Hello {

static String str = "Hello";
public static void main(String[] args){

printMsgByOption(1);
printMsgByOption(11);
printMsgByOption(1);

}

private static void printMsgByOption(int option){
switch(option){
case 1:
System.out.println(str);
break;
default:
System.out.println("this is default case");
}
}

}

Q14. 在Java, 所有的類別都繼承自哪一個基礎類別

A: 

java.lang.Object

Q15. 在Java, main方法可以回傳任何資料嗎

A: 

不行 , 作為一個程式的進入點 , 是不會有回傳值的. 所以他一定被宣告為void.

Q16. 甚麼是Java的package, 它的重要性是甚麼

A: 

為了方便類別的找尋和使用 , 並且迴避了類別的命名衝突, 以及增加類別存取的控制,

通常會把有關連性的聯別綁進同一個package裡面.


Q17. 我們可以宣告一個抽象類別 , 但裡面卻沒有任何抽象方法嗎?

A: 

可以的 , 但是此類別還是無法實體化.

Q18. 在Java , 抽象類別和介面的不同點是?

A: 

主要的差別是 , Interface只可以擁有public且未實作的方法 , 但抽象類別可以擁有實作和尚未實

作的方法 , 存取權限可以是private , public 或其他的存取權限.

另一個重要的差別是, 類別必須實作Interface的所有方法. 而繼承抽象類別,並不一定要實作所有
抽象(Abstract)方法.

附帶一提 , 類別可以實作多個介面 , 但只可以繼承一個類別.

Q19. Import 一個package, 同時也會引入(Import)其下的次要package嗎?

A: 

不會的 , 如果要使用次要package的類別, 必須各別import.

Q20. 可以宣告main方法為private存取嗎?

A: 

main方法宣告為public是為了方便程式正確執行 , 方法如果宣告為private並不會有compile error,但

是會出現runtime error



2014年4月10日 星期四

常見的Java面試問題與答案1-10


Q1. 內部類別(InnerClass)和子類別(SubClass)之間的區別是什麼?

A: 內部類別是崁入在另一個類別之中的類別,並且有存取所有外部類別的方法和變數的權限

子類別是繼承自另一個類別(父類別). 並且可以存取父類別的public protected存取修飾子的

方法和欄位.

Q2. Java的存取修飾子有哪些

A: 
public : 類別的方法,欄位,和類別本身 , 在程式碼的任何地方皆可存取.

protected: 類別的方法和欄位, 只有在package內或是package外的子類別才可以使用.

default(無任何修飾子) : 類別的方法和欄位只有在package內部的類別使用.

private: 類別的方法和欄位只有在類別本身內才可以使用.


Q3. 靜態(static)方法和變數的目的是甚麼

A: 當有多個物件需要共享方法和變數的時候 , 可以宣告為static . 但是要注意 , 因為宣告為static

之後 , 變數只有一份拷貝 , 因此任一此類別的物件都可更改變數值 , 如果不想要此靜態變數值

被改變, 可在前面加上final關鍵字.   


Q4. 甚麼是資料封裝 , 它的重要性是甚麼


A: 封裝可以把物件的屬性和方法隱藏在物件內部 , 只能透過物件的公開方法加以存取 , 達到

資料隱藏的目的. 良好的封裝可以增加程式碼的模組化能力, JavaBean的使用, 就是一個非常好

的例子. 物件間彼此獨立不相關 , 但是卻可透過公開介面使用彼此提供的功能.

Q5. 甚麼是獨體類別(Singleton Class) , 舉出一個實際的使用案例


A: 獨體類別 , 顧名思義, 它只可以有一個實體, 無法創建出第二個. 



常用的例子是資料庫的連線, 我們只希望透過一個實體,對資料庫連線, 不希望創建出多個實體



做資料庫連線的時候使用.



Q6. 描述Java的三種迴圈種類




A:  

1. For 迴圈 : 


   用在知道要重複執行多少次的時候.



2. While 迴圈 :

   用在某條件預先滿足的前提下 , 持續不斷的重複執行的時候.



3. Do.While 迴圈:

   和While迴圈很類似.,但是不同的地方在於, Do.While迴圈會在每次執行結束後,做條件的      判 斷

因此最少會執行一次..

Q7. 如何寫Java無限迴圈

A:  
For (;;)

Q8. continue和 break敘述式 , 不同點在哪裡


A:  
1. break : 


   執行迴圈若遇到break敘述 , 迴圈會立刻結束.

2. continue :

   執行迴圈若遇到continue敘述 , 則continue以後的程式碼會跳過 , 直接執行下一個迴圈的判斷.

如下:



public static void main(String[]args){
        for(int i = 0 ; i < 3 ; i++){
            if(i == 2)
            break;
            if(i == 0){
                continue;
            }
            System.out.println(i);
        }
        }

Q9. double和 float變數 , 在Java的不同點是?

A:  
 float占用4bytes的記憶體空間, double占用8bytes記憶體空間. float是單精確度十進位數字,double是倍精確度浮點數.

Q10. 甚麼是final關鍵字, 請舉例?

A:  

 Java利用final關鍵字來宣告常數. final宣告的變數值 , 一旦被賦予值之後 , 便不可再改變或賦值.

 private final int PI = 3.14 , 是以final來宣告圓周率為常數的例子.

當方法前面加上final宣告 , 此方法便不可再被子類別所覆寫.

當類別被宣告為final , 此類別便無法繼承.  好比String, Integer , 和其他的包裹類別(Wrapped Class)

寶寶命名網

2014年3月21日 星期五

佛光山法寶寺---當代生活 "幸福與安樂" 系列講座.

當代生活"幸福與安樂"系列講座,

活動有很多很有意義的主題 , 也找來了大家耳熟能詳的講師.

來參加一定不虛此行 , 請大家告訴大家.

而且地點在新竹 , 不用跑到外縣市喔.

想報名的請message給我,

感謝.