激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

上汽集團Java開(kāi)發(fā)筆試題目

時(shí)間:2023-04-03 04:35:05 筆試題目 我要投稿
  • 相關(guān)推薦

上汽集團Java開(kāi)發(fā)筆試題目

  一、J2EE(總分20分。每題2分)

上汽集團Java開(kāi)發(fā)筆試題目

  簡(jiǎn)述String和StringBuffer的區別。

  String 對一串字符進(jìn)行操作。不可變。一旦被創(chuàng )建,就不能修改它的值。

  StringBuffer 也是對一串字符進(jìn)行操作,但是可變類(lèi)。

  運行時(shí)異常(RuntimeException)與一般異常有何不同?

  一般異常是可捕捉到的。運行時(shí)異常是不可預知的異常。

  Sleep()和wait()有什么區別?

  sleep是線(xiàn)程類(lèi)(Thread)的方法,導致此線(xiàn)程暫停執行指定時(shí)間,把執行機會(huì )給其他線(xiàn)程,但是監控狀態(tài)依然保持,到時(shí)后會(huì )自動(dòng)恢復。調用sleep不會(huì )釋放對象鎖。

  wait().會(huì )釋放鎖

  實(shí)現多線(xiàn)程有幾種方法?

  三種,

  1.繼承Thread類(lèi),重寫(xiě)run函數

  2.實(shí)現Runnable接口,重寫(xiě)run函數

  3.實(shí)現Callable接口,重寫(xiě)call函數

  簡(jiǎn)述線(xiàn)程的基本狀態(tài)及狀態(tài)之間的關(guān)系。

  Thread.ThreadState 屬性提供一個(gè)位掩碼,用它指示線(xiàn)程的當前狀態(tài)。一個(gè)線(xiàn)程至少總是處于 ThreadState 枚舉中一個(gè)可能狀態(tài),并且可以同時(shí)處于多個(gè)狀態(tài)。

  一旦線(xiàn)程由于調用 Thread.Start 而離開(kāi) Unstarted 狀態(tài),則它將永遠無(wú)法返回到 Unstarted 狀態(tài)。同樣,線(xiàn)程也永遠無(wú)法離開(kāi) Stopped 狀態(tài)。

  什么是線(xiàn)程同步,何如實(shí)現線(xiàn)程的同步?

  當兩個(gè)或多個(gè)線(xiàn)程需要訪(fǎng)問(wèn)同一資源時(shí),它們需要以某種順序來(lái)確保該資源某一時(shí)刻只能被一個(gè)線(xiàn)程使用的方式稱(chēng)為同步。要想實(shí)現同步操作,必須要獲得每一個(gè)線(xiàn)程對象的鎖。獲得它可以保證在同一時(shí)刻只有一個(gè)線(xiàn)程訪(fǎng)問(wèn)對象中的共享關(guān)鍵代碼,并且在這個(gè)鎖被釋放之前,其他線(xiàn)程就不能再進(jìn)入這個(gè)共享代碼。此時(shí),如果還有其他線(xiàn)程想要獲得該對象的鎖,只得進(jìn)入等待隊列等待。只有當擁有該對象鎖的線(xiàn)程退出共享代碼時(shí),鎖被釋放,等待隊列中第一個(gè)線(xiàn)程才能獲得該鎖,從而進(jìn)入共享代碼區。

  JSP或Servlet中的forward和redirect有什么區別?

  forward是服務(wù)器內部重定向,程序收到請求后重新定向到另一個(gè)程序,客戶(hù)機并不知道;redirect則是服務(wù)器收到請求后發(fā)送一個(gè)狀態(tài)頭給客戶(hù),客戶(hù)將再請求一次,這里多了兩次網(wǎng)絡(luò )通信的來(lái)往。redirect 是送到客戶(hù)端后再一次 request , 所以資料不被保留.

  簡(jiǎn)述JDBC調用數據庫的基本步驟。

  1,加載驅動(dòng)

  2,創(chuàng )建連接

  3,獲取語(yǔ)句對象

  4,執行sql語(yǔ)句

  5,如果是查詢(xún),還可以使用結果集

  6,關(guān)閉連接

  7,捕捉和處理異常

  簡(jiǎn)述Servlet的生命周期。

  Servlet被服務(wù)器實(shí)例化后,容器運行其init方法,請求到達時(shí)運行其service方法,service方法自動(dòng)派遣運行與請求對應的do方法(doGet,doPost)等,當服務(wù)器決定將實(shí)例銷(xiāo)毀的時(shí)候調用其destroy方法。

  二、算法(總共20分)

  請列舉幾種排序算法,并用JAVA實(shí)現快速排序算法。(6分)

  冒泡排序,快速排序,shaker排序,堆排序。

  public void quick(Integer[] str) {

  if (str.length > 0) { //查看數組是否為空

  _quickSort(str, 0, str.length – 1);

  }

  }

  public void _quickSort(Integer[] list, int low, int high) {

  if (low < high) {

  int middle = getMiddle(list, low, high); //將list數組進(jìn)行一分為二

  _quickSort(list, low, middle – 1); //對低字表進(jìn)行遞歸排序

  _quickSort(list, middle + 1, high); //對高字表進(jìn)行遞歸排序

  }

  }

  public int getMiddle(Integer[] list, int low, int high) {

  int tmp = list[low]; //數組的第一個(gè)作為中軸

  while (low < high) {

  while (low < high && list[high] > tmp) {

  high–;

  }

  list[low] = list[high]; //比中軸小的記錄移到低端

  while (low < high && list[low] < tmp) {

  low++;

  }

  list[high] = list[low]; //比中軸大的記錄移到高端

  }

  list[low] = tmp; //中軸記錄到尾

  return low; //返回中軸的位置

  }

  用Java實(shí)現二叉樹(shù)前序遍歷、中序遍歷和后序遍歷。(8分)

  public class Tree {

  private int data;// 數據節點(diǎn)

  private Tree left;// 左子樹(shù)

  private Tree right;// 右子樹(shù)

  public Tree(int data) {

  this.data = data;

  this.left = null;

  this.right = null;

  }

  /**

  * 創(chuàng )建二叉樹(shù),返回根結點(diǎn)

  */

  public static Tree createTree(int[] input) {

  Tree root = null;

  Tree temp = null;

  for (int i = 0; i < input.length; i++) {

  // 創(chuàng )建根節點(diǎn)

  if (root == null) {

  root = temp = new Tree(input[i]);

  } else {

  // 回到根結點(diǎn)

  temp = root;

  // 添加節點(diǎn)

  while (temp.data != input[i]) {

  if (input[i] <= temp.data) {

  if (temp.left != null) {

  temp = temp.left;

  } else {

  temp.left = new Tree(input[i]);

  }

  } else {

  if (temp.right != null) {

  temp = temp.right;

  } else {

  temp.right = new Tree(input[i]);

  }

  }

  }

  }

  }

  return root;

  }

  /**

  * 前序遍歷

  */

  public static void preOrder(Tree tree) {

  if (tree != null) {

  System.out.print(tree.data + “”);

  preOrder(tree.left);

  preOrder(tree.right);

  }

  }

  /**

  * 中序遍歷

  */

  public static void midOrder(Tree tree) {

  if (tree != null) {

  midOrder(tree.left);

  System.out.print(tree.data + “”);

  midOrder(tree.right);

  }

  }

  /**

  * 后序遍歷

  */

  public static void posOrder(Tree tree) {

  if (tree != null) {

  posOrder(tree.left);

  posOrder(tree.right);

  System.out.print(tree.data + “”);

  }

  }

  /**

  * 求二叉樹(shù)的深度

  */

  public static int length(Tree tree){

  int depth1;

  int depth2;

  if(tree == null) return 0;

  //左子樹(shù)的深度

  depth1 = length(tree.left);

  //右子樹(shù)的深度

  depth2 = length(tree.right);

  if(depth1>depth2)

  return depth1+1;

  else

  return depth2+1;

  }

  public static void main(String[] args) {

  int[] input = { 4, 2, 6, 1, 3, 5, 7,8,10 };

  Tree tree = createTree(input);

  System.out.print(“前序遍歷:“);

  preOrder(tree);

  System.out.print(“\n中序遍歷:“);

  midOrder(tree);

  System.out.print(“\n后序遍歷:“);

  posOrder(tree);

  }

  }

  三、閱讀代碼,并回答問(wèn)題(6分)

Public String listToString( Vector strList) {

String str = new String();

SortedSet set = new TreeSet();

set.addAll(strList);

for(Iterator iter=set.iterator(); iter.hasNext();

String currStr = (String) iter.next();

Str += currStr + “;”;

}

return str;

  問(wèn)題1:

  這段代碼完成什么功能?如果輸入列表{“To” , “SAIC” , “Welcome”},輸入結果是什么?

  數組元素拼接。TreeSet是按字母順序存儲的,結果是:SAIC;To;Welcome;

  問(wèn)題2這段代碼中有什么地方有錯誤或者可以改善的地方嗎?

  錯誤:for(Iterator iter=set.iterator(); iter.hasNext();后面缺少“)”

  改善:拼接到最后時(shí),最后一個(gè)分號應去掉。

  四、設計模式(總分10分,每題5分)

  編程實(shí)現設計模式:Singleton(單例模式)。

  class Singleton {

  private static Singleton s;

  private Singleton(){

  }

  public static Singleton getSigleton()

  {

  if(s==null)s=new Singleton();

  return s;

  }

  }

  畫(huà)出抽象工廠(chǎng)(Abstract Factory)的UML類(lèi)圖。

  五、數據庫(總分20分)

  SOL查詢(xún)語(yǔ)句的左外連接、右外連接、全外連接、內聯(lián)接之間的區別。

  左外連接的結果集包括LEFT OUTER子句中指定的左表的所有行,而不僅僅是連接列所匹配的行

  右外連接是左向外連接的反向連接。將返回右表的所有行。

  全外連接返回左表和右表中的所有行。當某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結果集行包含基表的數據值。

  內連接使用比較運算符根據每個(gè)表共有的列的值匹配兩個(gè)表中的行。

  舉例說(shuō)明GROUP BY 和HAVING 子句的意義和使用方法。

  每個(gè)部門(mén)有多少人

  就要用到GROUP BY

  select DepartmentID as ‘部門(mén)名稱(chēng)‘,

  COUNT(*) as ‘個(gè)數‘ from BasicDepartment group by DepartmentID

  顯示每個(gè)地區的總面積.僅顯示那些面積超過(guò)1000000的地區。

  SELECT region, SUM(area)

  FROM bbc

  GROUP BY region

  HAVING SUM(area)>1000000

  IN和 EXISTS的區別(4分)

  比如in(1,2) 就是 = 1 or = 2的一種簡(jiǎn)單寫(xiě)法,所以一般在元素少的時(shí)候使用IN,如果多的話(huà)就用exists指定一個(gè)子查詢(xún)。

  編寫(xiě)SQL語(yǔ)句

  為管理崗位業(yè)務(wù)培訓信息,建立3個(gè)表。

  S(S#,SN,SD,SA)S#,SN,SD,SA分別代表學(xué)號、

  學(xué)員姓名、所屬單位、學(xué)員年齡

  C(C#,CN)C#,CN分別代表課程編號,課程名稱(chēng)。

  SC(S#,C#,G)S#,C#,G 分別代表學(xué)號,課程編號、學(xué)習成績(jì)

  問(wèn)題1:使用標準嵌套SQL語(yǔ)句查詢(xún)選修課程名稱(chēng)為“稅收基礎“的學(xué)員學(xué)號和姓名。

  Select

  ssc s#, ssc.sn

  from c

  left join

  ( select s.*,sc.c#

  From sc

  Left join s

  on s.s#=sc.s#

  ) as ssc

  on ssc.c#=c.c#

  where c.cn=’稅收基礎‘

  問(wèn)題2:查詢(xún)選修課程為“C2″的所有學(xué)員的學(xué)號、姓名、所屬單位、成績(jì),并按照所屬單位升序、成績(jì)降序排列。

  select sc.c#,s.sn,s.sd,sc.g

  From sc

  Left join s

  on s.s#=sc.s#

  where c. c#=’ C2′

  order by s.sd asc,sc.g.desc

  問(wèn)題3:查詢(xún)所有學(xué)員選修課程的數量,列出學(xué)號、姓名、所選課程數,并按照課程數降序排列。

  Select sc.s#,s.sn, sc.count

  (

  select count(s#) as count,s#

  from sc

  group by sc.s#

  ) sc

  Left join s

  on s.s#=sc.s#

  order by sc.count desc

  問(wèn)題4:查詢(xún)選修課程數超過(guò)5次學(xué)員的學(xué)號、姓名、所屬單位、所選課程數,并按照學(xué)號升序排列。

  SELECT

  S#,

  SN,

  SD,

  (SELECTCOUNT(DISTINCT C#)FROM SC

  Where S#=s. S#

  ) as count

  FROM S

  WHERE S# IN(

  SELECT [S#] FROM SC

  GROUP BY [S#]

  HAVING COUNT(DISTINCT [C#])>5)

  六、框架(總分30分)

  JSF

  以JSF為例簡(jiǎn)述MVC設計模式。

  簡(jiǎn)述JSF請求處理三命周期

  1. 恢復視圖

  2. 應用請求的值;處理驗證

  3. 更新模型值;處理事件

  4. 調用程序;處理事件

  5. 進(jìn)行響應;處理事件

  JSF中的Backing Bea是干什么用的?

  Backing bean定義了頁(yè)面上的UI組件的屬性和處理邏輯。每一個(gè)backing bean的屬性對應一個(gè)組件或者組件的值。Backing bean同時(shí)定義了一組執行組件功能的方法,比如驗證組件的數據,處理組件觸發(fā)的事件,當組件activate時(shí)處理與導航相關(guān)的操作。

  JSF中的Converter是干什么用的?

  輸入變換:在用戶(hù)提交時(shí)對用戶(hù)輸入值進(jìn)行變換

  輸出變換:在畫(huà)面顯示前對顯示值進(jìn)行變換

  JSF中的Validator是干什么用的?

  對用戶(hù)輸入的數據進(jìn)行驗證。

  簡(jiǎn)述Value-change Events、Action Events、Data Mooel Events、Phase Events。

  值改變事件,動(dòng)作事件,數據模型事件,階段事件

  JSF Request Processing Lifecycle 的六個(gè)階段。

  回復畫(huà)面(Restore View)

  套用申請值(Apply Request Values)

  執行驗證(Process Validations)

  更新模型值(Update Model Values)

  喚起應用程序(Invoke Application)

  繪制回應(Render Response)

  CommandButton 的immediate屬性起什么作用?

  JSF視圖組件在取得請求中該取得的值之后,即立即處理指定的事件,而不再進(jìn)行后續的轉換器處理、驗證器處理、更新模型值等流程。

  的用途

  將封裝在內的元件作為一個(gè)元件來(lái)看待

  的用途

  想要放入非JSF元件,例如簡(jiǎn)單的模板(template)文字,那么就需要使用 標簽來(lái)處理。

  Spring

  簡(jiǎn)述依賴(lài)注入(Dependency Injeciton,DI)和控制反轉(Inversion ofControl,IOC )的基本概念。

  依賴(lài)注入DI是一個(gè)程序設計模式和架構模型,

  一些時(shí)候也稱(chēng)作控制反轉,盡管在技術(shù)上來(lái)講,依賴(lài)注入是一個(gè)IOC的特殊實(shí)現,依賴(lài)注入是指一個(gè)對象應用另外一個(gè)對象來(lái)提供一個(gè)特殊的能力,例如:把一個(gè)數據庫連接已參數的形式傳到一個(gè)對象的結構方法里面而不是在那個(gè)對象內部自行創(chuàng )建一個(gè)連接?刂品崔D和依賴(lài)注入的基本思想就是把類(lèi)的依賴(lài)從類(lèi)內部轉化到外部以減少依賴(lài)

  應用控制反轉,對象在被創(chuàng )建的時(shí)候,由一個(gè)調控系統內所有對象的外界實(shí)體,將其所依賴(lài)的對象的引用,傳遞給它。也可以說(shuō),依賴(lài)被注入到對象中。所以,控制反轉是,關(guān)于一個(gè)對象如何獲取他所依賴(lài)的對象的引用,這個(gè)責任的反轉。

  簡(jiǎn)述AOP基本概念(Advice、Joinpoint、Polntcut、Aspect)以及在Spring AOP實(shí)現的特點(diǎn)和局限。

  Advice:用于定義攔截行為

  JoinPoint:提供訪(fǎng)問(wèn)當前被通知方法的目標對象、代理對象、方法參數等數據

  Polntcut:捕獲所有的連接點(diǎn)在指定的方法執行中,包括執行方法本身

  Aspect:切入點(diǎn)指示符用來(lái)指示切入點(diǎn)表達式目的。

  Spring Autorwiring by name 和Autowiring by type是什么意思?

  byType是通過(guò)類(lèi)型在“MyIdProviderManager”類(lèi)里找屬性名字為“myIdProviderManager”的對象,然后為其注入

  byName是通過(guò)名稱(chēng)找的。

【上汽集團Java開(kāi)發(fā)筆試題目】相關(guān)文章:

中興2013年Java開(kāi)發(fā)筆試題目及答案02-10

java筆試題,筆試題目分享08-10

java筆試題目及答案02-16

仁寶集團筆試題目11-21

博惠思華Java開(kāi)發(fā)工程師筆試題目及答案02-10

JAVA筆試題目之邏輯題02-25

JAVA經(jīng)典筆試題目及答案(精選7套)08-03

JAVA筆試經(jīng)驗08-01

星網(wǎng)銳捷硬件開(kāi)發(fā)的筆試題目11-21

四大名企選才標準 上汽集團筆試要考智商02-04

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频