float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK
生活随笔
收集整理的這篇文章主要介紹了
float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.float 與 double
1.1 字面量屬于 double 類型,不能直接將 1.1 直接賦值給 float 變量,因為這是向下轉型。
// float f = 1.1;Java 不能隱式執行向下轉型,因為這會使得精度降低。
1.1f 字面量才是 float 類型。
float f = 1.1f;2. 隱式類型轉換
因為字面量 1 是 int 類型,它比 short 類型精度要高,因此不能隱式地將 int 類型下轉型為 short 類型。
short s1 = 1; // s1 = s1 + 1;但是使用 += 運算符可以執行隱式類型轉換。
s1 += 1;上面的語句相當于將 s1 + 1 的計算結果進行了向下轉型:
s1 = (short) (s1 + 1);3.?switch
從 Java 7 開始,可以在 switch 條件判斷語句中使用 String 對象。
String s = "a";switch (s) {case "a":System.out.println("aaa");break;case "b":System.out.println("bbb");break; }switch 不支持 long,是因為 switch 的設計初衷是對那些只有少數的幾個值進行等值判斷,如果值過于復雜,那么還是用 if 比較合適。
// long x = 111; // switch (x) { /* Incompatible types. Found: 'long',* required:'char, byte, short, int, * Character, Byte, Short, Integer, String, or an enum'*/// case 111:// System.out.println(111);// break;// case 222:// System.out.println(222);// break; // }4.?重寫與重載
4.1 重寫(Override)
存在于繼承體系中,指子類實現了一個與父類在方法聲明上完全相同的一個方法。
為了滿足里式替換原則,重寫有有以下兩個限制:
- 子類方法的訪問權限必須大于等于父類方法;
- 子類方法的返回類型必須是父類方法返回類型或為其子類型。
使用 @Override 注解,可以讓編譯器幫忙檢查是否滿足上面的兩個限制條件。
4.2 重載(Overload)
存在于同一個類中,指一個方法與已經存在的方法名稱上相同,但是參數類型、個數、順序至少有一個不同。
應該注意的是,返回值不同,其它都相同不算是重載。
5.?Java 與 C++ 的區別
- Java 是純粹的面向對象語言,所有的對象都繼承自 java.lang.Object,C++ 為了兼容 C 即支持面向對象也支持面向過程。
- Java 通過虛擬機從而實現跨平臺特性,但是 C++ 依賴于特定的平臺。
- Java 沒有指針,它的引用可以理解為安全指針,而 C++ 具有和 C 一樣的指針。
- Java 支持自動垃圾回收,而 C++ 需要手動回收。
- Java 不支持多重繼承,只能通過實現多個接口來達到相同目的,而 C++ 支持多重繼承。
- Java 不支持操作符重載,雖然可以對兩個 String 對象支持加法運算,但是這是語言內置支持的操作,不屬于操作符重載,而 C++ 可以。
- Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。
- Java 不支持條件編譯,C++ 通過 #ifdef #ifndef 等預處理命令從而實現條件編譯。
6.JRE or JDK
- JRE is the JVM program, Java application need to run on JRE.
- JDK is a superset of JRE, JRE + tools for developing java programs. e.g, it provides the compiler "javac
總結
以上是生活随笔為你收集整理的float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缓冲池、String/StringBuf
- 下一篇: Executor框架、ThreadPoo