1. 程式人生 > >Java日常刷題第十一天

Java日常刷題第十一天

選擇題

1.類 ABC 定義如下:

1 . public  class  ABC{

2 .     public  double  max( double  a, double  b) {   }

3 .

4 . }

將以下哪個方法插入行 3 是不合法的。(B)
A.public float max(float a, float b, float c){ }
B.public double max (double c, double d){ }
C.public float max(float a, float b){ }
D.private int max(int a, int b, int c){ }
解析:這題考的是對方法過載(overload)的理解。
過載要求:在同一個類中,有兩個或兩個以上的方法,
1、方法名一致;
2、形參列表不一致,即:形參個數不一致 或 形參型別不一致 或 不同型別的形參的順序不一致(其中有一項不一樣即可),並且與形參變數名是否相同無關;
3、方法返回值型別可以一樣,也可以不一樣。
2

如下Java語句

double x= 3.0;
int y=5;
x/=–y;
執行後, x的值是(D)
A.3
B.0.6
C.0.4
D.0.75
解析:--y和y--,前者優先順序最高參與運算之前減1。y--優先順序最低一般參與運算之後再減1,區別開這兩種情況 這類題就簡單了
3 Math.round(11.5) 等於:(C)
A.11
B.11.5
C.12
D.12.5
解析:Math.round()方法實現的時候是將原來的數字加上0.5後再向下取整,有0.5的地方,加上0.5再向下取整。這就好理解多了,注意向下是指小於等於它的最大整數
4 方法通常儲存在程序中的哪一區(D)
A.堆區
B.棧區
C.全域性區
D.方法區
解析:Java執行時的資料區包括:(其中前兩個是執行緒共享的)
1.方法區(Method Area) 儲存已被虛擬機器載入的類資訊、常量、靜態變數、即時編譯器編譯後的程式碼等資料
2.堆(Heap) 存放物件例項,幾乎所有物件例項都在這裡分配記憶體
3.虛擬機器棧(VM Stack) 描述的是Java方法執行的記憶體模型:每個方法在執行的同時會建立一個Stack Frame(方法執行時的基礎資料結構)用於儲存區域性變量表、運算元棧、動態連線、方法出口等資訊
4.本地方法棧(Native Method Stack) 與虛擬機器棧了類似,不過則為虛擬機器使用的到的Native方法服務。(有的虛擬機器譬如Sun HotSpot虛擬機器直接把本地方法棧和虛擬機器棧合二為一)
5.程式計數器(Program Counter Register) 可看作當前執行緒所執行的位元組碼的行號的標識器
5

關於Float,下列說法錯誤的是©
A.Float是一個類
B.Float在java.lang包中
C.Float a=1.0是正確的賦值方法
D.Float a= new Float(1.0)是正確的賦值方法
解析:Float是類,float不是類.
檢視JDK原始碼就可以發現Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
Float正確複製方式是Float f=1.0f,若不加f會被識別成double型,double無法向float隱式轉換.
Float a= new Float(1.0)是正確的賦值方法,但是在1.5及以上版本引入自動裝箱拆箱後,會提示這是不必要的裝箱的警告,通常直接使用Float f=1.0f.
6
經過強制型別轉換以後,變數a,b的值分別為多少?B

short a =128;
byte b =(byte) a;

A.128 127
B.128 - 128
C.128 128
D.編譯錯誤
解析:[1000 0000]作為補碼錶示-128不是算出來的, 是規定的,因為-0原碼[1000 0000]在用原碼規則來表示數是沒有意義的,就浪費了這個編碼, 所有要讓這個編碼有意義,就 整出來取反+1這套規則剛好能把-0原碼【1000 0000】整到了-127【1000 0001】後面,所以用它來表示-128, 邏輯也正確: -128 = -127 - 1 = 【1000 0001】 - 1 = 【1000 0000】, 然後就把這套規則命名為補碼,所以-0原碼【1000 0000】在補碼系統中表示-128不是推導的,是直接將-0原碼【1000 0000】在補碼系統中直接規定為補碼錶示-128

1.short型別,a的二進位制是:0000 0000 1000 0000;
2.強制轉換byte是8位,所以擷取後的長度是8位,正數用源碼錶示,負數用補碼錶示,第一位是符號。
3.因此,a擷取後8位的二進位制是:1000 0000,第一位是1,表示是一個負數,第一位為1表示是負數 即000 0000 是補碼,要求出原碼 而補碼的補碼即原碼 000 0000取反加1後得1000 0000 即128,二進位制的值是128,所以結果是 -128。
7下面有關maven和ant的描述,描述錯誤的是?
A.Ant 沒有正式的約定如一個一般專案的目錄結構,你必須明確的告訴 Ant 哪裡去找原始碼
B.Maven 擁有約定,因為你遵循了約定,它已經知道你的原始碼在哪裡
C.maven和ant都有“生命週期”的概念,當你輸入一個命令後,maven或者ant會執行一系列的有序的步驟,直到到達你指定的生命週期
D.Ant構建檔案預設命名為build.xml,Maven預設構建檔案為pom.xml
解析:Ant和Maven都是基於Java的構建(build)工具。理論上來說,有些類似於(Unix)C中的make ,但沒有make的缺陷。Ant是軟體構建工具,Maven的定位是軟體專案管理和理解工具。
Ant特點 ›
沒有一個約定的目錄結構 ›必須明確讓ant做什麼,什麼時候做,然後編譯,打包 ›沒有生命週期,必須定義目標及其實現的任務序列 ›沒有整合依賴管理
Maven特點
›擁有約定,知道你的程式碼在哪裡,放到哪裡去 ›擁有一個生命週期,例如執行 mvn install 就可以自動執行編譯,測試,打包等構建過程 ›只需要定義一個pom.xml,然後把原始碼放到預設的目錄,Maven幫你處理其他事情 ›擁有依賴管理,倉庫管理
8設有下面兩個賦值語句:

a = Integer.parseInt(“1024”);

b = Integer.valueOf(“1024”).intValue();

下述說法正確的是(D)
A.a是整數型別變數,b是整數類物件。
B.a是整數類物件,b是整數型別變數。
C.a和b都是整數類物件並且它們的值相等。
D.a和b都是整數型別變數並且它們的值相等。
解析:parseInt得到的是基礎資料型別int,valueof得到的是裝箱資料型別Integer,然後再通過Intvalue轉換成int,所以選擇D
intValue()是把Integer物件型別變成int的基礎資料型別;
parseInt()是把String 變成int的基礎資料型別;
Valueof()是把String 轉化成Integer物件型別;(現在JDK版本支援自動裝箱拆箱了。)
9What is displayed when the following is executed;(A)

double d1=-0.5;
System.out.println(“Ceil d1=”+Math.ceil(d1));
System.out.println(“floor d1=”+Math.floor(d1));
A.Ceil d1=-0.0
floor d1=-1.0
B.Ceil d1=0.0
floor d1=-1.0
C.Ceil d1=-0.0
floor d1=-0.0
D.Ceil d1=0.0
floor d1=0.0
E. Ceil d1=0
floor d1=-1
解析:ceil:大於等於 x,並且與它最接近的整數。
floor:小於等於 x,且與 x 最接近的整數。
10Model-View-Controller(MVC) is an architectural pattern that frequently used in web applications. Which of the following statement(s) is(are) correct?(ABC)
A。Models often represent data and the business logics needed to manipulate the data in the application
B。A view is a (visual) representation of its model. It renders the model into a form suitable for interaction, typically a user interface element
C。A controller is the link between a user and the system. It accepts input from the user and instructs the model and a view to perform actions based on that input
D。The common practice of MVC in web applications is, the model receives GET or POST input from user and decides what to do with it, handing over to controller and which hand control to views(HTML-generating components)
E。None of the above
翻譯:
MVC是一種在web應用中常用的架構,下列說法正確的是()

A. 模型通常代表應用程式中的資料以及用於操縱資料的業務邏輯;

B. 檢視是其對應的模型的視覺化呈現,檢視 將模型渲染成適合於互動的形式(通常為使用者介面元素);

C. 控制器是使用者與系統之間的紐帶,它接受使用者輸入,並指示模型和檢視基於使用者輸入執行操作(處理資料、展示資料);

D. MVC模式在web應用中的常見實踐是:模型接受來自於使用者的GET或POST請求資料並決定如何處理,模型將使用者資料轉交給控制器,控制器將控制權轉交給檢視(檢視由HTML生成);

E. 以上全不是。
解析:D應該是controller接收使用者post或者get方式的請求

模型(model)它是應用程式的主體部分,主要包括業務邏輯模組(web專案中的Action,dao類)和資料模組(pojo類)。模型與資料格式無關,這樣一個模型能為多個檢視提供資料。由於應用於模型的程式碼只需寫一次就可以被多個檢視重用,所以減少了程式碼的重複性
檢視(view) 使用者與之互動的介面、在web中檢視一般由jsp,html組成
控制器(controller)接收來自介面的請求 並交給模型進行處理 在這個過程中控制器不做任何處理只是起到了一個連線的作用。 本題中顯然D錯誤,應該是控制器接收請求,並將其交給模型進行處理,