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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java直接对list使用sql语句_Java和SQL语句阶段考试错题集

發(fā)布時(shí)間:2024/9/19 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java直接对list使用sql语句_Java和SQL语句阶段考试错题集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.Java部分

1.選擇題

3.關(guān)于 Java 堆,下面說法錯(cuò)誤的是()。

A.所有類的實(shí)例都是在堆上分配內(nèi)存。

B.對(duì)象所占的堆內(nèi)存是由自動(dòng)內(nèi)存管理系統(tǒng)回收。

C.堆內(nèi)存由存活和死亡的對(duì)象,空閑碎片區(qū)組成。

D.數(shù)組是分配在棧中的

錯(cuò)選A -->原因:對(duì)基本概念不熟悉

正確答案D

堆內(nèi)存用于存放由new創(chuàng)建的對(duì)象和數(shù)組。 數(shù)組和對(duì)象在沒有引用變量指向它的時(shí)候,才變成垃圾,不能再被使用,但是仍然占著內(nèi)存,在隨后的一個(gè)不確定的時(shí)間被垃圾回收器釋放掉。這個(gè)也是java比較占內(nèi)存的主要原因,實(shí)際上,棧中的變量指向堆內(nèi)存中的變量,這就是 Java 中的指針!

6.觀察如下代碼,正確顯示結(jié)果為()。

class A{

void callme(){

System.out.println("InsideA'scallme()method");

}

}

class B extends A{

void callme(){

System.out.println("InsideB'scallme()method");

}

}

class C extends B{

void callme(){

System.out.println("InsideC'scallme()method");

}

}

public class Dispatch{

public static void main(String args[]){

A a=new C();

a.callme();

}

}

A.InsideA’scallme()method

B.InsideB’scallme()method

C.InsideC’scallme()method

D.拋出異常

錯(cuò)選A-->原因:忽略了方法被重寫,方法重寫子類會(huì)覆蓋父類方法

正確答案C

8.觀察如下代碼,正確的顯示結(jié)果是()。

class MyException extends Exception{

public MyException(String msg){

super(msg);

}

}

public class MyClass{

public static void main(String[] args){

try{ if(true) throw new MyException("bad");

System.out.println("OK");

}catch(MyExceptione){

System.out.print(e.getMessage());

}

System.out.print("bye");

}

}

A. bad B. badbye C. OKbad D. OKbadbye

錯(cuò)選C-->原因:對(duì)異常處理機(jī)制不熟悉

正確答案B

異常處理機(jī)制如下:

12.Thread 類用來創(chuàng)建和控制線程,一個(gè)線程從下面()方法開始執(zhí)行。

A.init() B.start() C.run() D.notifyAll()

錯(cuò)選C-->原因:看題不仔細(xì),題目是要開始執(zhí)行的方法,想都沒想就選了run執(zhí)行主體邏輯的方法

正確答案B

15.以下關(guān)于 Java 的 List Set 和 Map 集合的描述,錯(cuò)誤的是()(多選)。

A) List 集合的元素是有序的,元素可以重復(fù)

B) HashSet 集合的元素是無序的,可以重復(fù)的;TreeSet 是有序的,基于 TreeMap 實(shí)現(xiàn) 的

C) HashMap 的 Key 必須唯一,Value 同樣不可以重復(fù)

D) LinkedList 線程不安全,它是鏈表結(jié)構(gòu)

E) List 集合具有以下幾種常用的方法:add(E e) clear() hashCode() iterator() toArray()

錯(cuò)選了BCD-->原因:對(duì)集合中線程安全不太了解

正確答案BC

集合中線程安全類:

Vector:就比ArrayList多了個(gè)同步化機(jī)制(線程安全),因?yàn)樾瘦^低,現(xiàn)在已經(jīng)不太建議使用。

在web應(yīng)用中,特別是前臺(tái)頁(yè)面,往往效率(頁(yè)面響應(yīng)速度)是優(yōu)先考慮的。

Statck:堆棧類,先進(jìn)后出

HashTable:比HashMap多了個(gè)線程安全,其他比較見簡(jiǎn)答題2

Enumeration:枚舉,相當(dāng)于迭代器 除了這些之外,其他的都是非線程安全的類和接口。

2.簡(jiǎn)答題

2.HashMap 和 Hashtable 有什么區(qū)別?

HashMap平時(shí)用得較多,HashTable沒咋關(guān)注

答案如下:

(1) HashMap 非線程安全,HashTable 是線程安全的。Java 5 提供了 ConcurrentHashMap, 它是 HashTable 的替代,比 HashTable 的擴(kuò)展性更好

(2) HashMap 可以接受為 null 的鍵值(key)和值(value),而 Hashtable 則不行。

(3) HashMap 的迭代器(Iterator)是 fail-fast 迭代器,而 Hashtable 的 enumerator 迭代器不是 fail-fast 的。 由于 Hashtable 是線程安全的,也就是 synchronized,所以在單線程環(huán)境下它比 HashMap 要 慢。如果不需要同步,只需要單一線程,那么使用 HashMap 性能要好過 Hashtable

4.Java 中創(chuàng)建線程哪幾種方式?需要實(shí)現(xiàn)什么方法?優(yōu)缺點(diǎn)是什么?

答案如下:

(1) 繼承 Thread 類創(chuàng)建線程類,并重寫該類的 run 方法,該 run()方法的方法體就代表了線 程要完成的任務(wù)。調(diào)用線程對(duì)象的 start()方法來啟動(dòng)該線程

(2) 實(shí)現(xiàn) Runnable 接口,并重寫該接口的 run()方法,該 run()方法的方法體同樣是該線程的 線程執(zhí)行體。調(diào)用線程對(duì)象的 start()方法來啟動(dòng)該線程。

(3) 實(shí)現(xiàn) Callable 接口,并實(shí)現(xiàn) call()方法,該 call()方法將作為線程執(zhí)行體,并且有返回值。 創(chuàng)建一個(gè) Callable 實(shí)現(xiàn)類的實(shí)例對(duì)象,再使用 FutureTask 類來包裝 Callable 對(duì)象,該 FutureTask 對(duì)象封裝了該 Callable 對(duì)象的 call()方法的返回值

繼承 Thread 類的優(yōu)缺點(diǎn) 優(yōu)點(diǎn): 編寫簡(jiǎn)單, 如果需要訪問當(dāng)前線程, 直接使用 this 即可獲得當(dāng)前線程, 無需使用 Thread.currentThread()方法 缺點(diǎn): 線程類已經(jīng)繼承了 Thread 類, 不能繼承其他類 實(shí)現(xiàn)

runnable 或者 Callable 接口的優(yōu)缺點(diǎn) 優(yōu)點(diǎn): 線程類只是實(shí)現(xiàn)了接口, 還可以繼承其他的類 缺點(diǎn): 訪問當(dāng)前線程時(shí), 需要使用 Thread.currentThread(0)方法

忽略了第三種平時(shí)12用得較多,2使用的最多

3.編程題

1.給定一個(gè)長(zhǎng)字符串 A 和一個(gè)短字符串 B,請(qǐng)問如何最快判斷字符串 B 中的所有字符是否 都在字符串 A 中

答案代碼如下:

//判斷每個(gè)數(shù)組是否存在

public boolean stringContains(String A,String B){

//判斷結(jié)果

booleanb=true;

//將帶判斷的小字符串轉(zhuǎn)成字符數(shù)組,以遍歷判斷是否存在于大字符串中

char[]ch=B.toCharArray();

for(charc:ch){

if(A.indexOf(c)<0){

b=false;

break;

}

}

//返回結(jié)果

returnb;

}

編程題最后寫的時(shí)間不夠

二.SQL部分

1.簡(jiǎn)答題

2.union 和 unionall 的區(qū)別?(3 分)

Union:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,不包括重復(fù)行,同時(shí)進(jìn)行默認(rèn)規(guī)則的排序;

UnionAll:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序;

平時(shí)用的較少,基本只用了幾次union,而且只知道是連接兩個(gè)表內(nèi)容并集操作

3.in 和 exists 的區(qū)別?(3 分, 答對(duì)兩條即可)

(1) 運(yùn)用情況不同 sql 中 in 適用于子查詢得出的結(jié)果集記錄較少,主查詢中的表較大且又有索引的表,。 sql 中 exist 適用于外層的主查詢記錄較少,子查詢中的表大,又有索引的時(shí)候。

(2) 驅(qū)動(dòng)順序不同 IN 是先查詢子查詢的表,然后將內(nèi)表和外表做一個(gè)笛卡爾積,然后按照條件進(jìn)行篩選。 exists 是以外層表為驅(qū)動(dòng)表,先被訪問。

(3) 對(duì) NULL 值處理不同 IN 不對(duì) NULL 進(jìn)行處理,exists 會(huì)對(duì) NULL 值進(jìn)行處理。

(4) 底層原理不同 in 是把外表和內(nèi)表作 hash 連接,而 exists 是對(duì)外表作 loop 循環(huán),每次 loop 循環(huán)再對(duì) 內(nèi)表進(jìn)行查詢。

in平時(shí)用得較多,而exists基本沒用過,不太了解

5.char 和 varchar 的區(qū)別?(3 分)

CHAR 的長(zhǎng)度是固定的,而 VARCHAR 的長(zhǎng)度是可以變化的

varchar用的習(xí)慣了,都快忘了char這個(gè)類型了~

2.編程題

5.怎么樣把下面的表 A 數(shù)據(jù)查詢成表 B 的數(shù)據(jù)

分析:行列互轉(zhuǎn)-->在新字段使用一個(gè)子查詢,如下:

數(shù)據(jù)庫(kù)的數(shù)據(jù)如下:

SELECT DISTINCT b.`year` `year`,

(SELECT amount FROM a a1 WHERE a1.`month`=1 AND b.`year`=a1.year) AS m1,

(SELECT amount FROM a a1 WHERE a1.`month`=2 AND b.`year`=a1.year) AS m2,

(SELECT amount FROM a a1 WHERE a1.`month`=3 AND b.`year`=a1.year) AS m3,

(SELECT amount FROM a a1 WHERE a1.`month`=4 AND b.`year`=a1.year) AS m4

FROM a b;

執(zhí)行效果如下:

答案代碼如下:

SELECT `year`,SUM(CASE WHEN MONTH='1' THEN amount ELSE 0 END) m1,

SUM(CASE WHEN MONTH='2' THEN amount ELSE 0 END) m2,

SUM(CASE WHEN MONTH='3' THEN amount ELSE 0 END) m3,

SUM(CASE WHEN MONTH='4' THEN amount ELSE 0 END) m4

FROM a

GROUP BY `year`;

原因-->時(shí)間不夠2333

本文地址:https://blog.csdn.net/sun_0128/article/details/107071587

希望與廣大網(wǎng)友互動(dòng)??

點(diǎn)此進(jìn)行留言吧!

總結(jié)

以上是生活随笔為你收集整理的java直接对list使用sql语句_Java和SQL语句阶段考试错题集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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