JAVA面試題 (一)

 一、JAVA

A:概念題

1.     請說明List與Vector之差異。

標準樣板函式庫STL (Standard Template Library)是一個C++軟體庫 

List適用:物件數量變化大,物件複雜,插入和刪除頻繁。

               如果你需要大量的插入和刪除,而不關心隨即存取,則應使用List。

Vector適用:物件數量變化少,簡單物件,隨機訪問元素頻繁。

      如果你需要高效的隨即存取,而不在乎插入和刪除的效率,使用Vector。 

2.物件的三大特性,並說明三個特性是什麼。

封裝:將物件內部的資料隱藏起來(設定private權限),只能透過物件本身所提供的介面

(interface) 取得物件內部屬性或者方法。

繼承:子類別比原本的類別(稱為父類別)要更加具體化,子類別繼承了父類原有的屬性以及方

法,也可以再新增了自己特有的屬性,產品(父類別),筆電(子類別)。 

多形:相同名稱的方法(Method),多個相同名稱的方法,傳入不同的參數,會執行不同的述。

3.請寫出static及final特性。

Static:當一變數被宣告為Static時,具有唯一值,會固定占用一記憶體位置,

   可以直接存取,不 用new物件,因為怎麼操作都是同一個記憶體。

 

Final:當”類別”被宣告為Final時,無法被繼承;

  當”方法”被宣告為Final時,無法被繼承之子類別覆寫;

  當”變數”被宣告為Final時,為一常數,無法修改。

 

B:實作題

1.     有一String為"a,b,c,d,e,f,g…",請分別列印出"a1"、"b1"、"c1"、"d1"、"e1"、"f1"、"g1"…。

package demo1;

public class StringABC {

public static void main(String[] args){

     String s = "a,b,c,d,e,f,g,h";  

     String[] ss = s.split(",");

     for(int i=0;i<ss.length; i++){  //i=i+2

         System.out.println(ss[i]+"1");

     }

}

}

 













2.請用程式畫出下列圖型:

 

     *

    **

   ***

  ****

*****

 

package demo1;

public class Trapezoid {

public static void main(String[] args) {

     int height = 5; //指定層數

             for(int i=1; i<=height; i++) { //起始值i=1,迴圈直到超過i<=5停止

         for(int j=1; j<=(height -i); j++)  //判斷需要給幾個" "

         System.out.printf(" ");

         for(int k=1; k<=i; k++)         //判斷要給幾個"*"

         System.out.printf("*");

         System.out.printf("\n");        //執行結束換行迴圈

   }

  }

}

 

 

 

 

 

二、DB

table name:student

s_no(學號)

s_name(名字)

s_age(年紀)

A1

JOHN

16

A2

JOE

16

A3

TONY

17

create table "student"

(s_no nvarchar(80) NULL,

s_name nvarchar(80) NULL,

s_age nvarchar(80) NULL)

 

insert into student (s_no, s_name, s_age)

values  (N'A1', N'JOHN', 16), (N'A2', N'JOE', 16), (N'A3', N'TONY', 17) 

 









table name:subject

s_no(學號)

subject(科目)

score(分數)

A1

Math

58

A1

History

70

A2

English

49

A2

History

90

A3

Math

35

A3

English

77

 

create table "subject"

(s_no nvarchar (80) NULL,

subject nvarchar(80) NULL,

score nvarchar(80) NULL)

insert into subject (s_no, subject, score)

values  (N'A1', N'Math', 58), (N'A1',N'History', 70), (N'A2', N'English', 49) , (N'A2', N'History', 90), (N'A3', N'Math', 35), (N'A3', N'English', 77)

SELECT A.s_no, A.s_name, A.s_age, B.subject, B.score

  FROM student A

  JOIN subject B ON A.s_no=B.s_no

一、撈出JOE的名字、年紀、及格科目。

SELECT s_name,s_age,subject,score

FROM student A JOIN subject B ON A.s_no=B.s_no

WHERE s_name='JOHN'and score>=60

二、教授讓給JOHN一個機會,讓他的數學(Math)及格,請寫出update語法讓JOHN及格。

UPDATE subject

SET score=60

FROM student A JOIN subject B ON A.s_no=B.s_no

WHERE s_name='JOHN' and subject='Math'

三、算出TABLE subject所有科目各別的分數總和(GROUP BY)

SELECT subject,sum(score) as 總和

from subject

group by subject


留言

這個網誌中的熱門文章

MSSQL Create Insert Select Update GROUP BY(總和)

擷取資料未整理