java程序設計習題總結

---恢復內容開始---java

  1. main()方法的參數名能夠改變;main()方法的參數個數不能夠改變。
  2. 當一個程序沒有main()方法是,是能夠編譯經過的,可是不能給運行,由於找不到一個主函數入口。
  3. 標識符以字母、數字、下劃線、美圓符號組成;不能以數字開頭,區分大小寫。
  4. boolean(布爾類型)只有true、false兩個值,沒有0和1。
  5. java數據類型分爲簡單數據類型(8個)和複雜數據類型(class interface Array等,沒有界面類型)
  6. 相同優先級中,按結合順序計算。大多數運算是從左至右計算,只有三個優先級是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
  7. x=5;y=x--;z=--x;結果爲:4,4  優先級問題
  8. new運算符用於對象和數組的實例化:建立數組 int[] a = new int[6] 或 int a[] = new int[6]
  9. java中的數組長度是使用變量length;如:a.length;
  10. java變量分爲三類:成員變量、局部變量、靜態變量;

    做用域分別爲:當前對象、方法內部、類;算法

    局部變量:在方法體中定義的變量,局部變量只在定義它的方法中有效。數組

   成員變量:在整個類中都有效(全局變量是C語言中的叫法,Java中沒有全局變量的概念)。
     成員變量又分爲 實例變量(非靜態變量) 和 類變量(靜態變量).
       實例變量:沒有使用static關鍵字修飾的變量,它又稱爲屬性,對該類不一樣的對象來講,屬性是不一樣的。
      類變量:使用static關鍵字修飾的變量,一個類中只有一個該變量,該類不一樣的對象共享同一個靜態成員變量。
多線程

   11. 對象內存分配:jvm內存劃分爲方法區、堆、棧、PC寄存器和本地方法棧等5個區域;併發

   方法區:用於存儲被裝載類型的信息和類變量的邏輯內存區域;異步

   堆:運行時建立的全部實例或數組都放在同一個堆中,一個jvm實例只存在一個堆空間,全部線程都將共享這個堆;jvm

   棧:每啓動一個新線程jvm時,都會爲它分配一個java棧,java棧以幀爲單位保存線程的運行狀態;函數

   棧幀:由局部變量區、操做數棧和幀數據區組成;spa

   本地方法棧:java程序常常會調用本地方法,本地方法能夠經過本地方法接口來訪問jvm的運行時的數據區,因此一個運行的java程序可能會用到一些與本地方法相關的數據區,即:本地方法棧;線程

  12. transient:聲明變量爲臨時變量,當對象再也不被使用時,jvm須要將對象的全部成員變量和方法進行保存,若是但願jvm忽略變量的保存,可使用transient來定義暫時變量; transient int id;

  13. volatile:聲明同步變量,保護變量受異步,在多線程運行環境中,一個成員變量可能被多個線程修改,使用volatile來聲明變量,維護變量在併發線程的先後一致;

  14.native:定義本地方法,用於java跨語言進行系統底層操做;

  15.strictfp, 即 strict float point (精確浮點)。
    strictfp 關鍵字可應用於類、接口或方法。使用 strictfp 關鍵字聲明一個方法時,該方法中全部的float和double表達式都嚴格遵照FP-strict的限制,符合IEEE-754規範。當對一個類或接口使用 strictfp 關鍵字時,該類中的全部代碼,包括嵌套類型中的初始設定值和代碼,都將嚴格地進行計算。嚴格約束意味着全部表達式的結果都必須是 IEEE 754 算法對操做數預期的結果,以單精度和雙精度格式表示。
  若是你想讓你的浮點運算更加精確,並且不會由於不一樣的硬件平臺所執行的結果不一致的話,能夠用關鍵字strictfp.

下面的示例演示了一個使用 strictfp 修飾符聲明的類。
Java代碼 
package com.magical;  
 
// Example of precision control with strictfp  
public strictfp class MyClass {  
    public static void main(String[] args)  
    {  
        float aFloat = 0.6710339f;  
        double aDouble = 0.04150553411984792d;  
        double sum = aFloat + aDouble;  
        float quotient = (float)(aFloat / aDouble);  
        System.out.println("float: " + aFloat);  
        System.out.println("double: " + aDouble);  
        System.out.println("sum: " + sum);  
        System.out.println("quotient: " + quotient);  
    }  

package com.magical;

 

// Example of precision control with strictfp
public strictfp class MyClass {
 public static void main(String[] args)
 {
  float aFloat = 0.6710339f;
  double aDouble = 0.04150553411984792d;
  double sum = aFloat + aDouble;
  float quotient = (float)(aFloat / aDouble);
  System.out.println("float: " + aFloat);
  System.out.println("double: " + aDouble);
  System.out.println("sum: " + sum);
  System.out.println("quotient: " + quotient);
 }
}


運行結果:
float: 0.6710339
double: 0.04150553411984792
sum: 0.7125394529774224
quotient: 16.167336

 

---恢復內容結束---

相關文章
相關標籤/搜索