1、 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的索引