# 後端/ JAVA 面試考題 ## 1. 分別寫出下面程式碼會印出什麼 a. ```java= class Parent { Parent() { System.out.println("Parent"); } } class Child extends Parent { Child() { super(); System.out.println("Child"); } } public class Main { public static void main(String[] args) { Child child = new Child(); } } ``` b. ```java= class Parent { Parent() { System.out.println("Parent"); } } class Child extends Parent { Child() { System.out.println("Child"); } } public class Main { public static void main(String[] args) { Child child = new Child(); } } ``` c. ```java= class Parent { } class Child extends Parent { Child() { System.out.println("Child"); } } public class Main { public static void main(String[] args) { Child child = new Child(); } } ``` d. ```java= class Parent { static { System.out.println("static Parent"); } } class Child extends Parent { static { System.out.println("static Child"); } Child() { System.out.println("Child"); } } public class Main { public static void main(String[] args) { Child child = new Child(); } } ``` e. ```java= class Parent { static { System.out.println("static Parent"); } } class Child extends Parent { static { System.out.println("static Child"); } Child() { System.out.println("Child"); } } public class Main { static { System.out.println("static Main"); } public static void main(String[] args) { Child child = new Child(); } } ``` f. ```java= class Parent { static { System.out.println("static Parent"); } { System.out.println("instance Parent "); } Parent() { System.out.println("Parent"); } } class Child extends Parent { static { System.out.println("static Child"); } { System.out.println("Instance Child"); } Child() { System.out.println("Child"); } } public class Main { public static void main(String[] args) { Child child = new Child(); } } ``` ## 2. 分別寫出下面程式碼會印出什麼 a. ```java= public class Main { Integer num; public static void main(String[] args) { Main obj = new Main(); System.out.println(obj.num); } } ``` b. ```java= public class Main { public static void main(String[] args) { int num; System.out.println(num); } } ``` c. ```java= class Main { int num; public static void main(String[] args) { Main obj = new Main(); System.out.println(obj.num); } } ``` d. ```java= public class Main { public static void main(String[] args) { Integer num; System.out.println(num); } } ``` ## 3. 請以資料結構的角度去說明Array、List、Map、Slice 四者特性或差異 ## 4. 抽象類別與介面有什麼區別 ## 5. 分別用下面指定方式寫出可以印出 9x9 乘法表程式碼 ***a.*** for ***b.*** while ***c.*** do while ***d.*** forEach ***e.*** 遞迴 ***f.*** Stream API ***g.*** lambda ## 6. 請實作氣泡排序 ## 7. 請實作二元搜尋(Binary Search),不能使用內建函式 ## 8. 給定一個正整數 n,請寫一個函式計算 n 的數字總和(不能使用字串遍歷的方式)。 EX: ``` 123 → 1 + 2 + 3 = 6 9876 → 9 + 8 + 7 + 6 = 30 ``` ## 9. 請實作單例以外的任意設計模式,並說明應用場景 ## 10. 依據下面下面給兩張資料表,回答下面問題 **employees** Table | id | name | department_id | status | | --- | ------- | ------------- | ------ | | 1 | Alice | 1 | 1 | | 2 | Bob | 2 | 1 | | 3 | Charlie | NULL | 2 | | 4 | David | 3 | 1 | | 5 | Lu | 1 | 1 | | 6 | Kevin | 1 | 1 | | 7 | Tom | 3 | 2 | | 8 | Wan | 2 | 1 | **departments** Table | id | department_name | | --- | --------------- | | 1 | HR | | 2 | IT | | 3 | Finance | a. 寫出下面SQL的結果 ```sql= SELECT e.id AS emp_id, e.name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.id; ``` b. 寫出下面SQL的結果 ```sql= SELECT e.id AS emp_id, e.name, d.department_name FROM employees e LEFT JOIN departments d ON e.department_id = d.id; ``` c. 寫出下面SQL的結果 ```sql= SELECT e.id AS emp_id, e.name, d.department_name FROM employees e RIGHT JOIN departments d ON e.department_id = d.id; ``` ## 11. 請根據以下需求並基於RESTful API規範進行API設計 a. 搜尋文章 b. 取得文章詳細資料 c. 新增文章 d. 刪除文章 e. 根據文章ID批次取得文章 ## 12. 請分別說明MVC、MVVM、MVP
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up