亿联本科java_厦门亿联2018面试题
一、選擇器
public class EqTest {
public static void main(String[] args) {
EqTest e = new EqTest();
}
public EqTest() {
String s = "Java";
String s2 = "java";
//if (s.equalsIgnoreCase(s2))
{
System.out.println("相等");
} else {
System.out.println("不相等");
}
}
}
在上面的java代碼的注釋行位置,放置(C)測試代碼能輸出“相等”的結果(單選)
C:if (s.equalsIgnoreCase(s2))
2.研究下馬的java代碼:
public class TestException {
public static void main(String[] args) {
int n[] = {
0, 1, 2, 3, 4
};
int sum = 0;
try {
for (int i = 1; i < 6; i++) {
sum = sum + n[i];
}
System.out.println("sum+" + sum);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("數組越界");
} finally {
System.out.println("程序結束");
}
}
}
輸出結果是(C);
結果:數組越界 程序結束
3.考慮下列java代碼:
public class A {
public static void main(String[] args) {
try {
System.out.println("HelloWorld!");
}
}
}
程序報的錯為:Syntax error, insert "Finally" to complete BlockStatements
其中錯誤的是(A)。(單選)
A:沒有catch和finally塊 B:沒有拋出異常的代碼不能出現在try代碼塊內
C:如果沒有catch塊而使用try,main()會總是拋職異常 D:class A 沒有throws IOException
try要一個catch或者finally
4.研究下面的java代碼:
switch (x) {
case 1:
System.out.println(1);
case 2:
case 3:
System.out.println(3);
case 4:
System.out.println(4);
}
當x=2;時,運行結果是(C)。(單選)
C:單選結果是3和4
5.在java中,關鍵字(A)使類不能派生出子類(單選)
A:final
6.下面關于servlet的陳述正確的是:(B C)
A:我們在瀏覽器的地址欄直接輸入要請求的Servlet,該servlet默認會使用doPost方法處理請求
B:servlet運行在服務端
C:servlet的生命周期包括:實例化,初始化,服務,破壞,不可以用
D:servlet不能向瀏覽器發送Html標簽
注:Servlet生命周期分為三個階段:
1、初始化階段 , 調用init()方法;
2、響應客戶請求階段, 調用service()方法;
3、終止階段, 調用destroy()方法。
7.在JAVA編程中,以下(B)命令能將java源文件轉換為類文件。(單選)
A:appletviewer(小程序瀏覽器) B:javac
C:java D:以上所有選項都不正確
javac是JDK的標準編譯工具,常見的形式為:javac 。它可能的選項包括:
-g:生成所有調試信息。
-g:none:生成無調試信息。
-g:{lines,vars,source}:生成只有部分調試信息。
-nowarn:生成無警告。
-verbose:輸出關于編譯器正在做的信息。
-deprecation:輸出使用了不鼓勵使用的API的源程序位置。
-classpath :指定用戶類文件的位置。
-sourcepath :指定輸入源文件的位置。
-bootclasspath :覆蓋自舉類文件的位置。
-extdirs :覆蓋安裝的擴展類的位置。
-d :指定輸出類文件的位置。
-encoding :指定源文件中所用的字符集編碼。
-target :生成指定虛擬機版本的類文件。
java命令是JDK默認的java執行程序,在這里值得注意的是在執行帶包的.class文件時,需要使用標準的Java包形式。
Windows下文件名為jar.exe,Linux下文件名為jar。它的運行需要用到JDK安裝目錄下lib目錄中的tools.jar文件。jar命令行格式為:
jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目錄] 文件名
其中{ctxu}是jar命令的子命令,每次jar命令只能包含一個子命令,這些子命令含義如下。
-c:創建新的JAR文件包。
-t:列出JAR文件包的內容列表。
-x:展開JAR文件包的指定文件或者所有文件。
-u:更新已存在的JAR文件包(添加文件到JAR文件包中)。
[vfm0M]中的選項可以任選,也可以不選,它們是jar命令的選項參數。
-v:生成具體報告并打印到標準輸出。
-f:指定JAR文件名,通常這個參數是必須的。
-m:指定需要包含的MANIFEST清單文件。
-0:只存儲,不壓縮,這樣產生的JAR文件包會比不用該參數產生的體積大,但速度更快。
-M:不產生所有項的清單(MANIFEST〕文件,此參數會忽略-m參數。
8.下面對http請求消息使用Get和Post方法陳述正確的是:(B C)
A:post方法提交信息可以保存為書簽,而get則不行
B:可以使用GET方法提交敏感數據
C:使用POST提交數據量沒有限制
D:使用post方法提交數據比get方法快
注:
A錯,說的剛好相反
可以使用GET方法提交敏感數據,但不安全,所以不建議
GET方式提交的數據最多只能是1024字節,理論上POST沒有限制,可傳較大量的數據
post方法提交數據比get方法慢
GET的優點:
1.執行效率比POST高。
2.可以通過url傳遞數據,查找數據的時候就會體現到它的好處。
GET的缺點:
1.安全性很低,因為上傳的數據都會顯示在url上,所以一般用在上傳無關緊要的數據上。
2.上傳的數據量較小,一般不能超過4K.這也是因為url的長度而被限制的。
POST優點:
1.安全性高,但是也不是很高,如果想要高安全性的話就用https傳輸協議。
2.上傳的數據量比GET大得多。“理論上講,POST是沒有大小限制的,HTTP協議規范也沒有進行大小限制,說“POST數據量存在 80K/100K的大小限制”是不準確的,POST數據是沒有限制的,起限制作用的是服務器的處理程序的處理能力。”
POST缺點:
1.執行效率比GET低,但是現在的計算機都很強大,這些幾乎可以忽略不計,所以建議一般都使用POST方式。
2.不可以通過url傳遞數據,有時候可能會不方便.
9.在web應用程序中web.xml配置類Servlet的信息,如果你的項目為LoginDemo,那么最可能位于哪個目錄下(D)
A:LoginDemo/ B:LoginDemo/src
C:LoginDemo/WEB-INF/bin/ D:LoginDemo/WEB-INF/
注:web.xml文件是用來初始化配置信息,web.xml是放置在WEB-INF目錄中
(1)/WEB-INF/web.xml 是部署描述文件
(2)/WEB-INF/classes 用來放置應用程序用到的自定義類(.class),必須包括包(package)結構。
(3)/WEB-INF/lib 用來放置應用程序用到的JAR文件。
10.jsp在轉移階段生成文件的擴張名是(A,B)
A:class B:java
C:exe C:bin
注:web容器處理JSP文件請求的三個階段
翻譯階段:這一個階段,編寫好的jsp文件首先被web容器中的jp引擎轉換成java源代碼
編譯階段:jsp文件所翻譯的java源代碼會被編譯成可執行的字節碼
請求階段:當容器接受了客戶端請求之后,就執行jsp編譯的字節碼文件,處理完成請求之后,容器再把生成的頁面反饋給客戶端顯示。
簡答題
1.String和StringBuder,stringbuff的區別?
對字符串操作三者在執行速度方面的比較
StringBuilder StringBuffer String
String
String:字符串常量
StringBuffer:字符創變量
StringBuilder:字符創變量
從上面的名字可以看到,String是“字符創常量”,也就是不可改變的對象。
String s = "abcd";
s = s+1;
System.out.print(s);// result : abcd1
JVM是這樣解析這段代碼的:首先創建對象s,賦予一個abcd,然后再創建一個新的對象s用來;執行第二行代碼,也就是說我們之前對象s并沒有變化,所以我們說String類型是不可改變的對象了,由于這種機制,每當用String操作字符串時,實際上是在不斷的創建新的對象,而原來的對象就會變為垃圾被GC回收掉,可想而知這樣執行效率會有多底。
而StringBuffer與StringBuilder就不一樣了,他們是字符串變量,是可改變的對象,每當我們用它們對字符串做操作時,實際上是在一個對象上操作的,這樣就不會像String一樣創建一些而外的對象進行操作了,當然速度就快了。
StringBuilder:線程非安全的
StringBuffer:線程安全的
當我們在字符串緩沖去被多個線程使用是,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當然大多數情況下就是我們是在單線程下進行的操作,所以大多數情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。
我的博客里有關于字符串的詳解http://www.cnblogs.com/yangliguo/p/7496431.html
2、描述下HsahMap、hashtable、hashset的共同點與不同點
編程題
編寫一個工具類CollectionTools,為其編寫一個方法insertSect,功能是計算連個集合(Collection)的交集:傳入參數是兩個集合,返回結果是計算出來的交集。
import java.util.HashSet;
import java.util.Set;
public class CollectionTools {
public static Set insertSet(Set C1, Set C2) {
C1.retainAll(C2);
System.out.println(C1);
return C1;
}
public static void main(String[] args) {
Set c1 = new HashSet();
c1.add(3);
c1.add(2);
Set c2 = new HashSet();
c2.add(2);
c2.add(4);
System.out.println(CollectionTools.insertSet(c1, c2));
}
}
也可以用依次讀出數據進行比較簡單然后把相同的寫到一個集合中。或者把兩個集合的數據放到set集合中利用set的不含重復元素得到一個并集,然后求得他們的交集。
2.編寫一個對數據庫表t_user進行update操作的完整java代碼,請參考鏈接數據庫和異常等的處理
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class main {
public static void main(String[] args) {
//聲明Connection對象
Connection con;
//驅動程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要訪問的數據庫名mydata
String url = "jdbc:mysql://localhost:3306/sqltestdb";
//MySQL配置時的用戶名
String user = "root";
//MySQL配置時的密碼
String password = "123456";
//遍歷查詢結果集
try {
//加載驅動程序
Class.forName(driver);
//1.getConnection()方法,連接MySQL數據庫!!
con = DriverManager.getConnection(url,user,password);
//2.創建statement類對象,用來執行SQL語句!!
Statement statement = con.createStatement();
//要執行的SQL語句
String sql = "update t_user set id="+user.getId+"name"=user.getName+"login_name"+user.getLogin_name+"role_id"+user.getRole_id+"password"+user.getPsssword+"mobile"+user.getMobile;
//3.ResultSet類,用來存放獲取的結果集!!
int rs = statement.execute(sql);
con.close();
} catch(ClassNotFoundException e) {
//數據庫驅動類異常處理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//數據庫連接失敗異常處理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("數據庫數據成功獲取!!");
}
}
}
數據庫連接方法比較多這里是最基礎的。
總結
以上是生活随笔為你收集整理的亿联本科java_厦门亿联2018面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 快速构建ssm项目_SSM快速
- 下一篇: mysql 表单属性_php表单常用属性