當前位置:學識都>好好學習>考研>

用友Java開發工程師筆試題

學識都 人氣:7.38K

1、 Java的關鍵字都有哪些?

用友Java開發工程師筆試題

abstract | continue | for | new | switch

assert*** | default | goto* | package |

synchronized

boolean | do | if | private | this

break | double | implements | protected | throw

byte | else | import | public throws

case | enum**** | instanceof | return | transient

catch | extends | int | short | try

char | final | interface | static | void

class | finally | long | strictfp | volatile

const* | float | native | super |

while

一:transient 使用對象:屬性

字段不是對象持久狀態的一部分,不應該把字段和對象一起串起。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。當串行化某個對象時,如果該對象的某個變量是transient,那麼這個變量不會被串行化進去。也就是說,假設某個類的成員變量是transient,那麼當通過ObjectOutputStream把這個類的某個實例保存到磁盤上時,實際上 transient變量的值是不會保存的。

volatile 使用對象:屬性

介紹:因爲異步線程可以訪問字段,所以有些優化操作是一定不能作用在字段上的。volatile有時

可以代替synchronized。

二: strictfp

使用對象:類、方法

自Java2以來,Java語言增加了一個關鍵字strictfp,雖然這個關鍵字在大多數場合比較少用,但是還是有必要了解一下。

strictfp的意思是FP-strict,也就是說精確浮點的意思。在Java虛擬機進行浮點運算時,如果沒有指定strictfp關鍵字時, Java的編譯器以及運行環境在對浮點運算的表達式是採取一種近似於我行我素的行爲來完成這些操作,以致於得到的結果往往無法令你滿意。而一旦使用了 strictfp來聲明一個類、接口或者方法時,那麼所聲明的範圍內Java的編譯器以及運行環境會完全依照浮點規範IEEE-754來執行。因此如果你想讓你的浮點運算更加精確,而且不會因爲不同的硬件平臺所執行的結果不一致的話,那就請用關鍵字strictfp。

你可以將一個類、接口以及方法聲明爲strictfp,但是不允許對接口中的方法以及構造函數聲明strictfp關鍵字,例如下面的'代碼:

1. 合法的使用關鍵字strictfp

strictfp interface A {}

public strictfp class FpDemo1 {

strictfp void f() {}

}

2. 錯誤的使用方法

interface A {

strictfp void f();

}

public class FpDemo2 {

strictfp FpDemo2() {}

}

一旦使用了關鍵字strictfp來聲明某個類、接口或者方法時,那麼在這個關鍵字所聲明的範圍內所有浮點運算都是精確的,符合IEEE-754規範的。例如一個類被聲明爲strictfp,那麼該類中所有的方法都是strictfp的。

Final考試大-全國最大教育類網站(www.Examda。com) 對與java中的final變量,java編譯器是進行了優化的。每個使用了final類型變量的地方都不會通過連接而進行訪問。比如說 Test類中使用了Data類中一個final的int數字fNumber=77,這時候,java編譯器會將77這個常數編譯到Test類的指令碼或者常量池中。這樣,每次Test類用到fNumber的時候,不會通過引用連接到Data類中進行讀取,而是直接使用自己保存在類文件中的副本。

用程序說話:

C:/>javac Test.javaTest.java:

public class Test{

public static void main(String[] args){

System.out.println(Data.fNumber);

}

}

Data.java:

public class Data{

public static final int fNumber=77;

2、 java設計模式都有哪些?

MVC Factory Proxy Builder Singler 單例模式

作爲對象的創建模式[GOF95], 單例模式確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。這個類稱爲單例類。

單例模式的要點

顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須自行向整個系統提供這個實例。在下面的對象圖中,有一個”單例對象”,而”客戶甲”、”客戶乙” 和”客戶丙”是單例對象的三個客戶對象。可以看到,所有的客戶對象共享一個單例對象。而且從單例對象到自身的連接線可以看出,單例對象持有對自己的引用。

一些資源管理器常常設計成單例模式。

計算機系統中,需要管理的資源包括軟件外部資源,譬如每臺計算機可以有若干個打印機,但只能有一個Printer Spooler, 以避免兩個打印作業同時輸出到打印機中。每臺計算機可以有若干傳真卡,但是隻應該有一個軟件負責管理傳真卡,以避免出現兩份傳真作業同時傳到傳真卡中的情況。每臺計算機可以有若干通信端口,系統應當集中管理這些通信端口,以避免一個通信端口同時被兩個請求同時調用。

需要管理的資源包括軟件內部資源,譬如,大多數的軟件都有一個(甚至多個)屬性(properties)文件存放系統配置。這樣的系統應當由一個對象來管理一個屬性文件。

需要管理的軟件內部資源也包括譬如負責記錄網站來訪人數的部件,記錄軟件系統內部事件、出錯信息的部件,或是對系統的表現進行檢查的部件等。這些部件都必須集中管理,不可政出多頭。

這些資源管理器構件必須只有一個實例,這是其一;它們必須自行初始化,這是其二;允許整個系統訪問自己這是其三。因此,它們都滿足單例模式的條件,是單例模式的應用。

在java中,可以使用一下這種方式使用單例模式創建類的實例:

public class MyBean {

private static MyBean instance = null;

private MyBean(){

//do something

}

public static synchronized MyBean getInstance(){

if(instance == null){

instance = new MyBean();

}

return instance;

}

}

當一個類的實例可以有且只可以一個的時候就需要用到了。爲什麼只需要有一個呢?有人說是爲了節約內存。本人對這個說法持保留態度。只有一個實例確實減少內存佔用,可是我認爲這不是使用單例模式的理由。我認爲使用單例模式的時機是當實例存在多個會引起程序邏輯錯誤的時候。比如類似有序的號碼生成器這樣的東西,怎麼可以允許一個應用上存在多個呢?

Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

一般Singleton模式通常有兩種形式:

第一種形式: 也是常用的形式。

public class Singleton {

private static Singleton instance = null;

private Singleton(){

//do something

}

//這個方法比下面的有所改進,不用每次都進行生成對象,只是第一次使用時生成實例,提高了效率

public static Singleton getInstance(){

if(instance==null){

instance = new Singleton();

}

return instance;

}

}

第二種形式:

public class Singleton {

//在自己內部定義自己的一個實例,只供內部調用

private static Singleton instance = new Singleton();

private Singleton(){

//do something

}

//這裏提供了一個供外部訪問本class的靜態方法,可以直接訪問

public static Singleton getInstance(){

return instance;

}

}

模式三:

public class Singleton {

private static class SingletonHolder {

static Singleton instance = new Singleton();

}

public static Singleton getInstance() {

return SingletonHolder.instance;

}

}

3、 JAVA裏面抽象類和接口的區別是什麼?

1.abstract class 在 Java 語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface。

2.在abstract class 中可以有自己的數據成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的不能被修改的數據成員(也就是必須是static final的,不過在 interface中一般不定義數據成員),所有的成員方法都是abstract的。

3.abstract class和interface所反映出的設計理念不同。其實abstract class表示的是”is-a”關係,interface表示的是”like-a”關係。

4.實現抽象類和接口的類必須實現其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實現方法。

5.接口中定義的變量默認是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。

6.抽象類中的變量默認是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。

7.接口中的方法默認都是 public,abstract 類型的。

結論

abstract class 和 interface 是 Java語言中的兩種定義抽象類的方式,它們之間有很大的相似性。但是對於它們的選擇卻又往往反映出對於問題領域中的概念本質的理解、對於設計意圖的反映是否正確、合理,因爲它們表現了概念間的不同的關係(雖然都能夠實現需求的功能)。這其實也是語言的一種的慣用法,希望讀者朋友能夠細細體會。

4、 JAVA中有幾種方法可以實現一個線程?用什麼關鍵字修飾同步方法?

5、 JavaScript中,通過什麼方法來判斷String 對象內第一次出現子字符串的字符位置?

6、 如何創建數組?通過什麼方法來進行數字計算?通過什麼方法來截取String對象字符串?

7、 通過什麼方法來分割字符串?split

8、 如何循環select並使之選中?如何填加、刪除、修改option數據?如何進行兩個select之間聯動?iframe之間如何調用?

9、

dd html中,如何如何創建一個下拉列表?如何創建一個文本輸入框?,type都有哪些類型?onMouseOver、onMouseOut、onKeyPress、onKeyDown、onScroll、onLoad、onClick、onBlur、onFocus、onReset等等事件的含義?

10、

jsp傳值方式有哪些?如何動態引用jsp頁面

11、 執行數據庫查詢時,如果需要查詢數據很多,假設有1億條,用什麼方法提高查詢效率(速度)?

查的數據很多 但是顯示在頁面上的只能是一部分 所以分頁是一個辦法

還有就是緩存

還有可以做oracle的索引