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
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
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
留言
張貼留言