0066 阿里雲大學的幾道Java基礎測試題


阿里雲大學的幾道Java基礎測試題:
https://edu.aliyun.com/clouder/exam/intro/15
https://edu.aliyun.com/clouder/exam/intro/17

byte數據類型可以正常保存200這個數字?

Java數據類型的byte,長度是1個字節,其取值是-128~+127,即-27~+27-1

關於0%3=?

沒錯,模就是0,商也是0

關於Java整數類型的取值范圍

記住:byte/short/int/long分別是1/2/4/8個字節
取值范圍都是從-X~+X-1,且X是偶數

Java的assert關鍵字

見得少,表示斷言。見Java核心技術第九版P493

關於Java基本類型的自動類型轉換

具體見Java核心技術第九版P43
總的來說:
小字節類型可以往大字節類型轉,反之不可以自動轉換,但可以強制轉換
兩個操作數,如果其中一個是double/float/long類型,另一個數要往字節多的一個類型轉;如果這三種類型都沒有,那就都轉為int進行計算

注意這個情況

public class Test {
    public static void main(String[] args) {
        int num = 2147483647 ;
        //num=num+2L;注意這個不符合語法,但下面這行是符合語法的,有點像強制類型轉換
        num += 2L ;
        System.out.println(num) ;
    }
}

關於加號+

public class Demo {
     public static void main(String args[]) {
         int x = 10 ;
         double y = 20.2 ;
         long z = 10L;
         String str = "" + x + y * z ;
         System.out.println(str) ;
     }
 } 

上面的程序輸出是:10202.0
第一、二個加號都是字符串的拼接符,后面的y*z才會參與數學運算,且是double跟long運算,會轉為double

關於自增運算符的的運算規則

public class Test {
    public static void main(String[] args) {
        int i = 1 ;						//第01行
        int j = i++ ;					//第02行
        if((i==(++j))&&((i++)==j)) {	//第03行
            i += j ;					//第04行
        }
        System.out.println("i = "+i);   //輸出:i=5
    }
}

運算過程:
第02行:
自增在后面,因此『先用后加』,所以:j=1,i=2
第03行:
i(++j):自增在前面,『先加后用』,所以比較的結果是true,此時i=2,j=2
(i++)
j:自增在后面,『先用后加』,所以比較的結果還是true,此時i=3,j=2
第04行:
i+=j:此時i=5

零碎

try后面可以沒有catch,但如果沒有catch就得有finally
父類的private方法對子類來說就是不存在的,因此完全可以在子類中定義一個跟父類中的private方法完全相同的方法
所有程序可處理異常的共同父類是Exception
Java的元注解有6個:@Retention/@Target/@Documented/@Inherited/@Repeatable/@Native
Java的基本注解有5個:@Override/@Deprecated/@SuppressWarnings/@SafeVarargs/@FunctionalInterface


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM