# 英特內軟體股份有限公司 * 面試職位:前端軟體工程師 * 面試時間:2021 年07月 21日 下午14點00分 * 面試地址:線上面試 * 面試者:Fanny * 面試結果:還未面試 * 公司資訊:https://www.104.com.tw/company/18lpfdc0 7/19 12:00 有傳面試題目要我當天繳交 ### **題目:** ![](https://i.imgur.com/7eqwOgL.png) ![](https://i.imgur.com/LJH6ZBq.png) ![](https://i.imgur.com/AjKnHuo.png) ![](https://i.imgur.com/UTZPWzm.png) ![](https://i.imgur.com/zeevCcp.png) ### **我的作答:** (一) 無法執行,因為main方法為程式進入點,存取修飾詞必須設為public才可執行。 (二) public: Java透過不同存取權限來實現封裝性,public表示任何場合都可以被引用。 static: 靜態修飾詞的主要用途為創造類別方法以及類別變數。加上靜態修飾詞的變數,在Java中的記憶體會規劃至靜態域中;與一般的變數不同,被創建至靜態域的變數只會有一個實體,且在程式執行的初期便產生,直到程式結束才會釋放 。 void: 代表main方法不需要回傳值。 main: 方法的名稱。 (String[] args): 這個方法必須可以接受數目不定的String型別的引數,因為執行者可能要附加執行引數。 (三) ```java= public static void foo(){ int sum=0; for (int i = 50; i <= 100; i++) { if((i%3==0)&&(i%2!=0)){ sum+=i; } } System.out.println(sum); } ``` (四) ```java= public static int add(String a, String b){ int sum; int c=0; try { c = Integer.parseInt(a); } catch (NumberFormatException e) { } int d=0; try { d = Integer.parseInt(b); } catch (NumberFormatException e) { } sum=c+d; return sum; } ``` (五) 會報錯誤,因為少了兩個右大括號,方法內容需要完整的用大括號包住ex:{} Java進階應用 (一) (1) ```java= Set<String> keyset=htNumber.keySet(); for (String key:keyset) { System.out.println(key+" "+htNumber.get(key)); } ``` (2) ```java= System.out.println(htNumber.size()); ``` (3) ```java= Set<String> keyset=htNumber.keySet(); boolean flag=false; for (String key:keyset) { if(htNumber.get(key).equals(2)){ flag=true; } } ``` (4) ```java= Set<String> keyset=htNumber.keySet(); for (int i = 0; i < arrValues.length; i++) { boolean flag=true; for (String key:keyset) { if(arrValues[i].equals(key)){ flag=false; break; } } if(flag){ htNumber.put(arrValues[i],new Integer(keyset.size()+1)); } } ``` (6) 印出v1更改後的記憶體位置 SQL (一) (1) select ID,NAME,TEL from AUTHOR where NAME like '王%' 邏輯能力 (一) true false true true false false true true false true (二) &&和&都是表示“與”,區別是&&只要第一個條件不滿足,後面條件就不再判斷。而&要對所有的條件都進行判斷。 ||和|都是表示“或”,區別是||只要滿足第一個條件,後面的條件就不再判斷,而|要對所有的條件進行判斷。 &&是英文的and 表條件都要符合,||是英文的or表示條件只要有一個成立就符合。 (三) (1)(0,0)->0 (0,1)->0 (1,0)->0 (1,1)->1 (2)(0,0)->0 (0,1)->1 (1,0)->1 (1,1)->1 (3)(0)->1 (1)->0 (四) 1. ==是運算子 2. equals是String物件的方法 當用 == 進行比較的時候,比較的是他們在記憶體中的存放地址,如果是同一個new出來的物件,他們的比較後的結果為true,否則結果為false。 java所有的類都是繼承於Object,在Object中定義了一個equals的方法,這個方法的初始行為是比較物件的記憶體位址,但類別被覆寫:如String,Integer,Date在這些類當中equals有其自身的實現,而不再是比較類在堆記憶體中的存放地址了。 對於複合資料型別之間進行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基於他們在記憶體中的存放位置的地址值的,因為Object的equals方法也是用雙等號 == 進行比較的,所以比較後的結果跟雙等號 == 的結果相同。