亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

試題

計算機考試二級java模擬試題(含答案)

時間:2025-03-11 02:54:39 晶敏 試題 我要投稿

計算機考試二級java模擬試題(含答案)

  在社會的各個領域,我們或多或少都會接觸到試題,借助試題可以為主辦方提供考生某方面的知識或技能狀況的信息。一份好的試題都具備什么特點呢?下面是小編收集整理的計算機考試二級java模擬試題(含答案),供大家參考借鑒,希望可以幫助到有需要的朋友。

計算機考試二級java模擬試題(含答案)

  計算機考試二級java模擬試題(含答案) 1

  1)Java 中能創(chuàng)建 Volatile 數組嗎?

  能,Java 中可以創(chuàng)建 volatile 類型數組,不過只是一個指向數組的引用,而不是整個數組。我的意思是,如果改變引用指向的數組,將會受到 volatile 的保護,但是如果多個線程同時改變數組的元素,volatile 標示符就不能起到之前的保護作用了。

  2)volatile 能使得一個非原子操作變成原子操作嗎?

  一個典型的例子是在類中有一個 long 類型的成員變量。如果你知道該成員變量會被多個線程訪問,如計數器、價格等,你最好是將其設置為 volatile。為什么?因為 Java 中讀取 long 類型變量不是原子的,需要分成兩步,如果一個線程正在修改該 long 變量的值,另一個線程可能只能看到該值的一半(前 32 位)。但是對一個 volatile 型的 long 或 double 變量的讀寫是原子。

  3)volatile 修飾符的有過什么實踐?

  一種實踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。double 和 long 都是64位寬,因此對這兩種類型的讀是分為兩部分的,第一次讀取第一個 32 位,然后再讀剩下的 32 位,這個過程不是原子的,但 Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復符的另一個作用是提供內存屏障(memory barrier),例如在分布式框架中的應用。簡單的`說,就是當你寫一個 volatile 變量之前,Java 內存模型會插入一個寫屏障(write barrier),讀一個 volatile 變量之前,會插入一個讀屏障(read barrier)。意思就是說,在你寫一個 volatile 域時,能保證任何線程都能看到你寫的值,同時,在寫之前,也能保證任何數值的更新對所有線程是可見的,因為內存屏障會將其他所有寫的值更新到緩存。

  4)volatile 類型變量提供什么保證?(答案)

  volatile 變量提供順序和可見性保證,例如,JVM 或者 JIT為了獲得更好的性能會對語句重排序,但是 volatile 類型變量即使在沒有同步塊的情況下賦值也不會與其他語句重排序。 volatile 提供 happens-before 的保證,確保一個線程的修改能對其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數據類型,像 long 和 double 都不是原子的,但 volatile 類型的 double 和 long 就是原子的。

  5) 10 個線程和 2 個線程的同步代碼,哪個更容易寫?

  從寫代碼的角度來說,兩者的復雜度是相同的,因為同步代碼與線程數量是相互獨立的。但是同步策略的選擇依賴于線程的數量,因為越多的線程意味著更大的競爭,所以你需要利用同步技術,如鎖分離,這要求更復雜的代碼和專業(yè)知識。

  6)你是如何調用 wait()方法的?使用 if 塊還是循環(huán)?為什么?(答案)

  wait() 方法應該在循環(huán)調用,因為當線程獲取到 CPU 開始執(zhí)行的時候,其他條件可能還沒有滿足,所以在處理前,循環(huán)檢測條件是否滿足會更好。下面是一段標準的使用 wait 和 notify 方法的代碼:

  // The standard idiom for using the wait method

  參見 Effective Java 第 69 條,獲取更多關于為什么應該在循環(huán)中來調用 wait 方法的內容。

  計算機考試二級java模擬試題(含答案) 2

  1、編寫一個Java程序,用if-else語句判斷某年份是否為閏年。

  閏年特點:

 、、普通年能被4整除;且不能被100整除的為閏年。(如2004年就是閏年,1901年不是閏年)

 、、世紀年能被400整除的是閏年。(如2000年是閏年,1900年不是閏年) ③、對于數值很大的年份,既能整除3200,又能整除172800是閏年。如172800年是閏年,86400年不是閏年(因為雖然能整除3200,但不能整除172800)。

  2、編寫一個Java程序在屏幕上輸出1!+2!+3!+??+10!的和。

  3、打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個 "水仙花數 ",因為153=1的三次方+5的三次方+3的三次方。

  4、利用遞歸方法求5!。

  5、一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

  6、編寫一個Java應用程序,要求如下

  1)從控制臺輸入兩個字符串;

  2)重載三個方法,方法名add,分別完成字符串拼接、整數相加、浮點數相加,返回 String,并在控制臺分別輸出返回結果;

  3)要求處理異常,輸入字符串不符合要求時給出提示,不能使程序崩潰;

  4)輸入“esc”時退出程序,否則可以重復執(zhí)行。

  7、、有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。

  8、大整數計算器,要求從控制臺輸入。

 。ɡ纾100000000000000000000+20000000000000000000)

  9、(1)編寫一個圓類Circle,該類擁有:

 、僖粋成員變量

  Radius(私有,浮點型); // 存放圓的半徑;

 、趦蓚構造方法

  Circle( ) // 將半徑設為0

  Circle(double r ) //創(chuàng)建Circle對象時將半徑初始化為r

  ③ 三個成員方法

  double getArea( ) //獲取圓的.面積

  double getPerimeter( ) //獲取圓的周長

  void show( ) //將圓的半徑、周長、面積輸出到屏幕

 。2)編寫一個圓柱體類Cylinder,它繼承于上面的Circle類。還擁有:

  Java筆試題

 、僖粋成員變量

  double hight(私有,浮點型); // 圓柱體的高;

 、跇嬙旆椒

  Cylinder (double r, double h ) //創(chuàng)建Circle對象時將半徑初始化為r ③ 成員方法

  double getVolume( ) //獲取圓柱體的體積

  void showVolume( ) //將圓柱體的體積輸出到屏幕

  編寫應用程序,創(chuàng)建類的對象,分別設置圓的半徑、圓柱體的高,計算并分別顯示圓半徑、圓面積、圓周長,圓柱體的體積。(20分)

  計算機考試二級java模擬試題(含答案) 3

  1.Spring的事務有哪些?

  什么是數據庫事務:訪問并可能改變數據庫中個數據項的一個程序執(zhí)行單元。

  實現方式共有兩種:編碼方式即采用注解的方式(類頭的@Transactional為默認事務配置);聲明式事務管理方式(bean)。

  基于AOP技術實現的聲明式事務管理,實質就是:在方法執(zhí)行前后進行攔截,然后在目標方法開始之前創(chuàng)建并加入事務,執(zhí)行完目標方法后根據執(zhí)行情況提交或回滾事務。

  聲明式事務管理又有兩種方式:基于XML配置文件的方式;另一個是在業(yè)務方法上進行@Transactional注解,將事務規(guī)則應用到業(yè)務邏輯中。

  2.Java的鎖有哪幾種?

  1、自旋鎖:自旋鎖是采用讓當前線程不停地的在循環(huán)體內執(zhí)行實現的,當循環(huán)的條件被其他線程改變時 才能進入臨界區(qū)。

  2、自旋鎖的其他種類

  3、阻塞鎖:常用的有五個狀態(tài)的鎖都是阻塞所。

  4、可重入鎖:ReentrantLock

  5、讀寫鎖:寫鎖是排他鎖,讀鎖是共享鎖。

  6、互斥鎖

  7、悲觀鎖:在整個數據處理過程中,將數據處于鎖定狀態(tài)。 悲觀鎖的實現,往往依靠數據庫提供的鎖機制。

  8、樂觀鎖:樂觀鎖假設認為數據一般情況下不會造成沖突,所以在數據進行提交更新的時候,才會正式對數據的沖突與否進行檢測,如果發(fā)現沖突了,則讓返回用戶錯誤的信息,讓用戶決定如何去做。

  公平鎖(Fair):加鎖前檢查是否有排隊等待的線程,優(yōu)先排隊等待的線程,先來先得

  非公平鎖(Nonfair):加鎖時不考慮排隊等待問題,直接嘗試獲取鎖,獲取不到自動到隊尾等待

  18、信號量

  3.join的優(yōu)勢是什么?

  mysql不支持Full join。

  select * from A inner join B on A.name = B.name;

  在ON匹配階段 WHERE 子句的條件都不會被使用。僅在匹配階段完成以后,WHERE 子句條件才會被使用。它將從匹配階段產生的數據中檢索過濾。

  cross join:交叉連接,得到的結果是兩個表的乘積,即笛卡爾積。

  還有inner join,left join,right join。

  4.用線程實現輸出1A2B3C....

  5.抽象類和接口的區(qū)別

  6.JDK1.8和之前版本的區(qū)別

  JDK7新特性:

  1,switch中可以使用字串了

  2,"<>"這個玩意兒的運用ListtempList = new ArrayList<>(); 即泛型實例化類型自動推斷

  3. 自定義自動關閉類

  4. 新增一些取環(huán)境信息的工具方法

  5. Boolean類型反轉,空指針安全,參與位運算

  6. 兩個char間的equals

  7,安全的加減乘除

  8.數值可加下劃線

  例如:intone_million = 1_000_000;

  9.支持二進制文字

  例如:int binary = 0b1001_1001;

  10、在try catch異常撲捉中,一個catch可以寫多個異常類型,用"|"隔開

  11、jdk7之前,你必須用try{}finally{}在try內使用資源,在finally中關閉資源,不管try中的代碼是否正常退出或者異常退出。jdk7之后,你可以不必要寫finally語句來關閉資源,只要你在try()的括號內部定義要使用的資源。

  JDK8:

  一、接口的默認方法

  Java 8允許我們給接口添加一個非抽象的方法實現,只需要使用 default關鍵字即可,這個特征又叫做擴展方法

  二、Lambda 表達式

  Collections.sort(names, (a, b) -> b.compareTo(a));

  三、函數式接口?

  四、方法與構造函數引用 ::

  Java 8 在包java.time下包含了一組全新的時間日期API。

  7.常用集合類

  我的說的HashMap,他問為什么不是List。

  1。JSP的內置對象及方法。

  在JSP中無需創(chuàng)建就可以使用的9個對象,它們是:request、response、session、application、out、pagecontext、config、page、exception

  lout(JspWriter):等同與response.getWriter(),用來向客戶端發(fā)送文本數據;

  1. void clear() ;

  清除輸出緩沖區(qū)的內容,但是不輸出到客戶端。

  2. void clearBuffer() ;

  清除輸出緩沖區(qū)的內容,并輸出到客戶端。

  3. void close() ;

  關閉輸出流,清除所有內容。

  4. void flush() ;

  輸出緩沖區(qū)里面的數據。

  5. int getBufferSize() ;

  獲取以kb為單位的目前緩沖區(qū)大小。

  6. int getRemaining() ;

  獲取以kb為單位的緩沖區(qū)中未被占用的空間大小。

  7. boolean isAutoFlush() ;

  是否自動刷新緩沖區(qū)。

  8. void newLine() ;

  輸出一個換行字符。

  lconfig(ServletConfig):對應“真身”中的ServletConfig,config對象用來存放Servlet初始的`數據結構;config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。

  lpage(當前JSP的真身類型):當前JSP頁面的“this”,即當前對象,page對象代表JSP對象本身,或者說代表編譯后的servlet對象,可以用( (javax.servlet.jsp.HttpJspPage)page )來取用它的方法和屬性;

  lpageContext(PageContext):頁面上下文對象,它是最后一個沒講的域對象,pageContext對象存儲本JSP頁面相關信息,如屬性、內建對象等;pageContext 對象的作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。

  lexception(Throwable):只有在錯誤頁面中可以使用這個對象,錯誤對象,只有在JSP頁面的page指令中指定isErrorPage="true"后,才可以在本頁面使用exception對象;

  lrequest(HttpServletRequest):即HttpServletRequest類的對象,request對象包含所有請求的信息,如請求的來源、標頭、cookies和請求相關的參數值等,request對象代表了客戶端的請求信息,主要用于接受通過HTTP協(xié)議傳送到服務器的數據。(包括頭信息、系統(tǒng)信息、請求方式以及請求參數等)。request對 象的作用域為一次請求。;

  getParameterNames() 獲取客戶端提交的所有參數的名字。

  lresponse(HttpServletResponse):即HttpServletResponse類的對象,response對象主要將JSP容器處理后的結果傳回到客戶端,response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效;

  response.sendRedirect(index.jsp)

  lapplication(ServletContext):即ServletContext類的對象,主要功用在于取得或更改Servlet的設定;

  setAttribute(String key,Object obj):將參數Object指定的對象obj添加到Application對象中,并為添加的對象指定一個索引關鍵字。

  getAttribute(String key):獲取Application對象中含有關鍵字的對象。

  lsession(HttpSession):即HttpSession類的對象,不是每個JSP頁面中都可以使用,如果在某個JSP頁面中設置<%@pagesession=”false”%>,說明這個頁面不能使用session,session對象表示目前個別用戶的會話狀態(tài),用來識別每個用戶。

  public String getId():獲取Session對象編號。

  public void setAttribute(String key,Object obj):將參數Object指定的對象obj添加到Session對象中,并為添加的對象指定一個索引關鍵字。

  public Object getAttribute(String key):獲取Session對象中含有關鍵字的對象。

  public Boolean isNew():判斷是否是一個新的客戶。

  2.說說ArrayList(對比著LinkedList來說);

  1.ArrayList是實現了基于動態(tài)數組的數據結構,ArrayList不具有線程安全性,LinkedList基于鏈表的數據結構,LinkedList可以看做為一個雙向鏈表,LinkedList也是線程不安全的。

  2.對于隨機訪問get和set,ArrayList覺得優(yōu)于LinkedList,因為LinkedList要移動指針。

  3.對于新增和刪除操作add和remove,LinedList比較占優(yōu)勢,因為ArrayList要移動數據。

  Vector是線程安全的

  26.數組(Array)和列表(ArrayList)有什么區(qū)別?什么時候應該使用Array而不是ArrayList?

  下面列出了Array和ArrayList的不同點:

  Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。

  Array大小是固定的,ArrayList的大小是動態(tài)變化的。

  ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。

  對于基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。

  27.ArrayList和LinkedList有什么區(qū)別?

  ArrayList和LinkedList都實現了List接口,他們有以下的不同點:

  ArrayList是基于索引的數據接口,它的底層是數組。它可以以O(1)時間復雜度對元素進行隨機訪問。與此對應,LinkedList是以元素列表的形式存儲它的數據,每一個元素都和它的前一個和后一個元素鏈接在一起,在這種情況下,查找某個元素的時間復雜度是O(n)。

  相對于ArrayList,LinkedList的插入,添加,刪除操作速度更快,因為當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。

  LinkedList比ArrayList更占內存,因為LinkedList為每一個節(jié)點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。

  28.Comparable和Comparator接口是干什么的?列出它們的區(qū)別。

  Java提供了只包含一個compareTo()方法的Comparable接口。這個方法可以個給兩個對象排序。具體來說,它返回負數,0,正數來表明輸入對象小于,等于,大于已經存在的對象。

  Java 提供了包含compare()和equals()兩個方法的Comparator接口。compare()方法用來給兩個輸入參數排序,返回負數,0,正 數表明第一個參數是小于,等于,大于第二個參數。equals()方法需要一個對象作為參數,它用來決定輸入參數是否和comparator相等。只有當 輸入參數也是一個comparator并且輸入參數和當前comparator的排序結果是相同的時候,這個方法才返回true。

  3.寫一個單例模式。我寫的是靜態(tài)內部類的單例,然后他問我這個地方為什么用private,這兒為啥用static,這就考察你的基本功啦

  類的構造函數定義為private的,保證其他類不能實例化此類,static保證每個類訪問到的都是同一個。

  餓漢模式:

  publicclassSingleton{

  privatestaticSingletoninstance=newSingleton();

  privateSingleton(){}

  publicstaticSingletonnewInstance(){

  returninstance;

  }

  }缺點,在類加載之后就被創(chuàng)建,即使沒有用到

  懶漢模式:

  publicclassSingleton{

  privatestaticSingletoninstance=null;

  privateSingleton(){}

  publicstaticsynchronizedSingletonnewInstance(){

  if(null==instance){

  instance=newSingleton();

  }

  returninstance;

  }

  }在特定時間加載,延遲加載

  雙重校驗鎖:

  publicclassSingleton{

  privatestaticvolatile Singletoninstance=null;

  privateSingleton(){}

  publicstaticSingletongetInstance(){

  if(instance==null){

  synchronized(Singleton.class){

  if(instance==null){//2

  instance=newSingleton();

  }

  }

  }

  returninstance;

  }

  }線程安全

  靜態(tài)內部類:

  publicclassSingleton{

  privatestaticclassSingletonHolder{

  publicstaticSingletoninstance=newSingleton();

  }

  privateSingleton(){}

  publicstaticSingletonnewInstance(){

  returnSingletonHolder.instance;

  }

  }

  枚舉:

  publicenumSingleton{

  instance;

  publicvoidwhateverMethod(){}

  }很少使用

【計算機考試二級java模擬試題(含答案)】相關文章:

全國計算機等級考試《二級Java》模擬試題(含答案)06-10

計算機二級JAVA考試模擬試題06-24

計算機二級考試JAVA模擬試題10-12

計算機二級JAVA考試精選模擬試題08-12

計算機二級JAVA考試模擬試題及答案10-16

計算機java考試模擬試題10-23

計算機二級考試Java模擬試題及答案201710-25

全國計算機二級考試Java模擬試題08-19

計算機二級模擬試題含答案10-23