日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

亿联本科java_厦门亿联2018面试题

發(fā)布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 亿联本科java_厦门亿联2018面试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、選擇器

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)測試代碼能輸出“相等”的結(jié)果(單選)

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("數(shù)組越界");

} finally {

System.out.println("程序結(jié)束");

}

}

}

輸出結(jié)果是(C);

結(jié)果:數(shù)組越界 程序結(jié)束

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:沒有拋出異常的代碼不能出現(xiàn)在try代碼塊內(nèi)

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);

}

當(dāng)x=2;時,運(yùn)行結(jié)果是(C)。(單選)

C:單選結(jié)果是3和4

5.在java中,關(guān)鍵字(A)使類不能派生出子類(單選)

A:final

6.下面關(guān)于servlet的陳述正確的是:(B C)

A:我們在瀏覽器的地址欄直接輸入要請求的Servlet,該servlet默認(rèn)會使用doPost方法處理請求

B:servlet運(yùn)行在服務(wù)端

C:servlet的生命周期包括:實(shí)例化,初始化,服務(wù),破壞,不可以用

D:servlet不能向?yàn)g覽器發(fā)送Html標(biāo)簽

注:Servlet生命周期分為三個階段:

1、初始化階段 , 調(diào)用init()方法;

2、響應(yīng)客戶請求階段, 調(diào)用service()方法;

3、終止階段, 調(diào)用destroy()方法。

7.在JAVA編程中,以下(B)命令能將java源文件轉(zhuǎn)換為類文件。(單選)

A:appletviewer(小程序?yàn)g覽器)  B:javac

C:java      D:以上所有選項(xiàng)都不正確

javac是JDK的標(biāo)準(zhǔn)編譯工具,常見的形式為:javac 。它可能的選項(xiàng)包括:

-g:生成所有調(diào)試信息。

-g:none:生成無調(diào)試信息。

-g:{lines,vars,source}:生成只有部分調(diào)試信息。

-nowarn:生成無警告。

-verbose:輸出關(guān)于編譯器正在做的信息。

-deprecation:輸出使用了不鼓勵使用的API的源程序位置。

-classpath :指定用戶類文件的位置。

-sourcepath :指定輸入源文件的位置。

-bootclasspath :覆蓋自舉類文件的位置。

-extdirs :覆蓋安裝的擴(kuò)展類的位置。

-d :指定輸出類文件的位置。

-encoding :指定源文件中所用的字符集編碼。

-target :生成指定虛擬機(jī)版本的類文件。

java命令是JDK默認(rèn)的java執(zhí)行程序,在這里值得注意的是在執(zhí)行帶包的.class文件時,需要使用標(biāo)準(zhǔn)的Java包形式。

Windows下文件名為jar.exe,Linux下文件名為jar。它的運(yùn)行需要用到JDK安裝目錄下lib目錄中的tools.jar文件。jar命令行格式為:

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目錄] 文件名

其中{ctxu}是jar命令的子命令,每次jar命令只能包含一個子命令,這些子命令含義如下。

-c:創(chuàng)建新的JAR文件包。

-t:列出JAR文件包的內(nèi)容列表。

-x:展開JAR文件包的指定文件或者所有文件。

-u:更新已存在的JAR文件包(添加文件到JAR文件包中)。

[vfm0M]中的選項(xiàng)可以任選,也可以不選,它們是jar命令的選項(xiàng)參數(shù)。

-v:生成具體報告并打印到標(biāo)準(zhǔn)輸出。

-f:指定JAR文件名,通常這個參數(shù)是必須的。

-m:指定需要包含的MANIFEST清單文件。

-0:只存儲,不壓縮,這樣產(chǎn)生的JAR文件包會比不用該參數(shù)產(chǎn)生的體積大,但速度更快。

-M:不產(chǎn)生所有項(xiàng)的清單(MANIFEST〕文件,此參數(shù)會忽略-m參數(shù)。

8.下面對http請求消息使用Get和Post方法陳述正確的是:(B C)

A:post方法提交信息可以保存為書簽,而get則不行

B:可以使用GET方法提交敏感數(shù)據(jù)

C:使用POST提交數(shù)據(jù)量沒有限制

D:使用post方法提交數(shù)據(jù)比get方法快

注:

A錯,說的剛好相反

可以使用GET方法提交敏感數(shù)據(jù),但不安全,所以不建議

GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),理論上POST沒有限制,可傳較大量的數(shù)據(jù)

post方法提交數(shù)據(jù)比get方法慢

GET的優(yōu)點(diǎn):

1.執(zhí)行效率比POST高。

2.可以通過url傳遞數(shù)據(jù),查找數(shù)據(jù)的時候就會體現(xiàn)到它的好處。

GET的缺點(diǎn):

1.安全性很低,因?yàn)樯蟼鞯臄?shù)據(jù)都會顯示在url上,所以一般用在上傳無關(guān)緊要的數(shù)據(jù)上。

2.上傳的數(shù)據(jù)量較小,一般不能超過4K.這也是因?yàn)閡rl的長度而被限制的。

POST優(yōu)點(diǎn):

1.安全性高,但是也不是很高,如果想要高安全性的話就用https傳輸協(xié)議。

2.上傳的數(shù)據(jù)量比GET大得多。“理論上講,POST是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,說“POST數(shù)據(jù)量存在 80K/100K的大小限制”是不準(zhǔn)確的,POST數(shù)據(jù)是沒有限制的,起限制作用的是服務(wù)器的處理程序的處理能力。”

POST缺點(diǎn):

1.執(zhí)行效率比GET低,但是現(xiàn)在的計(jì)算機(jī)都很強(qiáng)大,這些幾乎可以忽略不計(jì),所以建議一般都使用POST方式。

2.不可以通過url傳遞數(shù)據(jù),有時候可能會不方便.

9.在web應(yīng)用程序中web.xml配置類Servlet的信息,如果你的項(xiàng)目為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 用來放置應(yīng)用程序用到的自定義類(.class),必須包括包(package)結(jié)構(gòu)。

(3)/WEB-INF/lib 用來放置應(yīng)用程序用到的JAR文件。

10.jsp在轉(zhuǎn)移階段生成文件的擴(kuò)張名是(A,B)

A:class  B:java

C:exe    C:bin

注:web容器處理JSP文件請求的三個階段

翻譯階段:這一個階段,編寫好的jsp文件首先被web容器中的jp引擎轉(zhuǎn)換成java源代碼

編譯階段:jsp文件所翻譯的java源代碼會被編譯成可執(zhí)行的字節(jié)碼

請求階段:當(dāng)容器接受了客戶端請求之后,就執(zhí)行jsp編譯的字節(jié)碼文件,處理完成請求之后,容器再把生成的頁面反饋給客戶端顯示。

簡答題

1.String和StringBuder,stringbuff的區(qū)別?

對字符串操作三者在執(zhí)行速度方面的比較

StringBuilder StringBuffer String

String

String:字符串常量

StringBuffer:字符創(chuàng)變量

StringBuilder:字符創(chuàng)變量

從上面的名字可以看到,String是“字符創(chuàng)常量”,也就是不可改變的對象。

String s = "abcd";

s = s+1;

System.out.print(s);// result : abcd1

JVM是這樣解析這段代碼的:首先創(chuàng)建對象s,賦予一個abcd,然后再創(chuàng)建一個新的對象s用來;執(zhí)行第二行代碼,也就是說我們之前對象s并沒有變化,所以我們說String類型是不可改變的對象了,由于這種機(jī)制,每當(dāng)用String操作字符串時,實(shí)際上是在不斷的創(chuàng)建新的對象,而原來的對象就會變?yōu)槔?#xff27;C回收掉,可想而知這樣執(zhí)行效率會有多底。

而StringBuffer與StringBuilder就不一樣了,他們是字符串變量,是可改變的對象,每當(dāng)我們用它們對字符串做操作時,實(shí)際上是在一個對象上操作的,這樣就不會像String一樣創(chuàng)建一些而外的對象進(jìn)行操作了,當(dāng)然速度就快了。

StringBuilder:線程非安全的

StringBuffer:線程安全的

當(dāng)我們在字符串緩沖去被多個線程使用是,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當(dāng)然大多數(shù)情況下就是我們是在單線程下進(jìn)行的操作,所以大多數(shù)情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。

我的博客里有關(guān)于字符串的詳解http://www.cnblogs.com/yangliguo/p/7496431.html

2、描述下HsahMap、hashtable、hashset的共同點(diǎn)與不同點(diǎn)

編程題

編寫一個工具類CollectionTools,為其編寫一個方法insertSect,功能是計(jì)算連個集合(Collection)的交集:傳入?yún)?shù)是兩個集合,返回結(jié)果是計(jì)算出來的交集。

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));

}

}

也可以用依次讀出數(shù)據(jù)進(jìn)行比較簡單然后把相同的寫到一個集合中。或者把兩個集合的數(shù)據(jù)放到set集合中利用set的不含重復(fù)元素得到一個并集,然后求得他們的交集。

2.編寫一個對數(shù)據(jù)庫表t_user進(jìn)行update操作的完整java代碼,請參考鏈接數(shù)據(jù)庫和異常等的處理

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;

//驅(qū)動程序名

String driver = "com.mysql.jdbc.Driver";

//URL指向要訪問的數(shù)據(jù)庫名mydata

String url = "jdbc:mysql://localhost:3306/sqltestdb";

//MySQL配置時的用戶名

String user = "root";

//MySQL配置時的密碼

String password = "123456";

//遍歷查詢結(jié)果集

try {

//加載驅(qū)動程序

Class.forName(driver);

//1.getConnection()方法,連接MySQL數(shù)據(jù)庫!!

con = DriverManager.getConnection(url,user,password);

//2.創(chuàng)建statement類對象,用來執(zhí)行SQL語句!!

Statement statement = con.createStatement();

//要執(zhí)行的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類,用來存放獲取的結(jié)果集!!

int rs = statement.execute(sql);

con.close();

} catch(ClassNotFoundException e) {

//數(shù)據(jù)庫驅(qū)動類異常處理

System.out.println("Sorry,can`t find the Driver!");

e.printStackTrace();

} catch(SQLException e) {

//數(shù)據(jù)庫連接失敗異常處理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println("數(shù)據(jù)庫數(shù)據(jù)成功獲取!!");

}

}

}

數(shù)據(jù)庫連接方法比較多這里是最基礎(chǔ)的。

總結(jié)

以上是生活随笔為你收集整理的亿联本科java_厦门亿联2018面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。