ホームページ  >  記事  >  Java  >  Java の入門的な質問を共有する

Java の入門的な質問を共有する

PHP中文网
PHP中文网オリジナル
2017-06-21 09:37:461521ブラウズ

説明

数日前にZhihuでこのような質問を見つけたので、何気なく答えを確認しました。昨日は別の高度な質問があり、その一部はまだ記録する必要があるため、この入門的な質問から始めました。
質問と回答は Alibaba Cloud University - Zhihu Column からのものです

質問

  1. 次に、次のプログラムがあるとします

    class Happy {public static void main(String args[])     {int i = 1 ;    int j = i++ ;if((i==(++j))&&((i++)==j))     {
                i += j ;
            }
            System.out.println("i = "+i);
        }
    }

    上記を実行した後の i 出力の値は何ですか?コード? i的值是多少?

    A. 4

    B. 5

    C. 3

    D. 6

  2. 下面的数据声明及赋值哪一个是没有错误的?

    A. float f = 1.3;

    B. char c = "a"

    C. byte b = 257

    D. int i = 10

  3. 编译Java源程序文件产生的字节码文件的扩展名为?

    A. java

    B. class

    C. html

    D. exe

  4. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
            System.out.println(flag ? "aliyunedu" : "yootk") ;
        }
    }

    以上程序的最终执行结果是什么?

    A. aliyunedu

    B. yootk

    C. true

    D. 程序出错

  5. 现在假设有如下程序:

    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) ;
        }
    }

    以上程序的最终执行结果是什么?

    A. 10202.0

    B. 0212.0

    C. 302.0

    D. 1020.210

  6. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {
            String str = "" ;for (int x = 0 ; x < 5 ; x ++) {
                str += x ;
            }
            System.out.println(str) ;
        }
    }

    以上程序最终的执行结果是什么?

    A. 01234

    B. 10

    C. 14

    D. 25

  7. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {
            System.out.println(inc(10) + inc(8) + inc(-10)) ;
        }public static int inc(int temp) {if (temp > 0) {return temp * 2 ;
            }return -1 ;
        }
    }

    以上程序的最终执行结果是什么?

    A. 35

    B. 8

    C. 28

    D. 12

  8. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {char c = &#39;A&#39; ;int num = 10 ;switch(c) {case &#39;B&#39; :
                    num ++ ;case &#39;A&#39; :
                    num ++ ;case &#39;Y&#39; :
                    num ++ ;break ;default :
                    num -- ;
            }
            System.out.println(num) ;
        }
    }

    以上程序的最终执行结果是什么?

    A. 11

    B. 13

    C. 12

    D. 10

  9. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {continue ;
                }
            }
            System.out.println(sum) ;
        }
    }

    以上程序的最终执行结果是什么?

    A. 6

    B. 0

    C. 程序错误,死循环

    D. 45

  10. 现在假设有如下程序:

    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {break ;
                }
            }
            System.out.println(sum) ;
        }
    }

    以上程序的最终执行结果是什么?

    A. 6

    B. 0

    C. 程序错误,死循环

    D. 45

答案

BDBBA AACDB

个人解析

  1. 主要考验i++++i的区别,只要记住“先++,先自增;后++,后自增”,这道题就只剩下考验细心了。

    class Happy {public static void main(String[] args) {int i = 1;int j = i++; // i = 2, j = 1if ((i == (++j)) && ((i++) == j)) { // 第一个判断:j先自增1变为2后与i比较// 第二个判断:i先与j比较后再自增1,// if内为true,i = 3, j = 2i += j; // i = 5, j = 2}
    
            System.out.println("i = " + i);
        }
    }
  2. 如果选项A最后没有那个;,那么这道题就没有争议了

  • int b = 257;

  • byte b = 57;

  • char c = 'a';

  • String c = "a";

  • float f = 1.3f;

  • double f = 1.3;

  • float f =(float) 1.3;

  • double f = 1.3f;

  • A. float f = 1.3;
    1.3默认是double类型,java中基本数据类型由高级向低级转换需要强转。

  • B. char c = "a"
    java中的字符常量应该用单引号括起来,双引号括起来的为字符串。(末尾少了个分号)

  • C. byte b = 257
    byte的范围是 -128~127。(末尾少了个分号)

  • D. int i = 10
    (末尾少了个分号)

  • public class Demo {public static void main(String args[]) {boolean flag = 10 % 2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;// 10对2取余为0,故flag为falseSystem.out.println(flag ? "aliyunedu" : "yootk") ;
        }
    }

    &&(短路与)一旦前面的条件为false,就会跳过后面的条件。
    X = 条件 ? A : B为三元表达式,与

    if (条件) {
        X = A;
    } else {
        X = B;
    }

    意思相同

  • 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) ;
        }
    }

    *的优先度高于+,故优先计算乘法,随后从左往右依次进行+。当有字符串参与+运算时,加法变为字符串拼接,结果为字符串。故最后为字符串"10"202.0的拼接。

  • 见上

  • public class Demo {public static void main(String args[]) {
            System.out.println(inc(10) + inc(8) + inc(-10)) ; // 20 + 16 - 1}public static int inc(int temp) {if (temp > 0) {return temp * 2 ;
            }return -1 ;
        }
    }

    如果为正数,返回参数的2倍值;如果不是正数,返回-1。结果为20 + 16 + (-1)

  • public class Demo {public static void main(String args[]) {char c = &#39;A&#39; ;int num = 10 ;switch(c) {case &#39;B&#39; :
                    num ++ ;case &#39;A&#39; :// 匹配成功,开始执行num ++ ; // num = 11case &#39;Y&#39; :
                    num ++ ; // num = 12break ;// 因break跳出switchdefault :
                    num -- ;
            }
            System.out.println(num) ;
        }
    }

    switch-case语句块中break的重要性

  • public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {continue ;
                }
            }
            System.out.println(sum) ;
        }
    }

    感觉这道题sum += x

    A. 4
  • B. 3
    D. 次のデータ宣言と割り当てのうち、エラーがないものはどれですか? 🎜🎜A. float f = 1.3;🎜🎜B. char c = "a"🎜🎜C. byte b = 257 D. int i = 10🎜🎜🎜🎜 Java ソース プログラム ファイルをコンパイルして生成されるバイトコード ファイルの拡張子は何ですか? 🎜🎜A. java🎜🎜B. クラス🎜🎜C. html🎜🎜 ここで、次のプログラムがあるとします。 🎜🎜rreee🎜🎜 🎜🎜A. aliyunedu🎜🎜B. yootk🎜🎜C. true🎜🎜次のプログラムがあるとします: 🎜🎜
    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {break ;
                }
            }
            System.out.println(sum) ;
        }
    }
    🎜🎜 🎜🎜A. 10202.0🎜🎜B. 302.0🎜🎜D. 次のプログラムがあるとします。上記プログラムの実行結果は? 🎜🎜A. 01234🎜🎜B. 10🎜🎜C. 25🎜🎜🎜🎜上記のプログラムの最終的な実行結果は何でしょうか? 🎜🎜A. 35🎜🎜B. 8🎜🎜C. 12🎜🎜🎜 さて、上記のプログラムの最終的な実行結果は何でしょうか? 🎜🎜A. 11🎜🎜B. 13🎜🎜C. 10🎜🎜🎜🎜上記のプログラムの最終的な実行結果は何でしょうか? 🎜🎜A. 6🎜🎜B. 0🎜🎜C. プログラムエラー、無限ループ🎜🎜D. 次のプログラムがあるとします。 🎜🎜rreee🎜🎜プログラム? 🎜🎜A. 6🎜🎜B. 0🎜🎜C. プログラムエラー、無限ループ🎜🎜🎜答え🎜🎜BDBBA AACDB🎜🎜メインテストi++ ++i の違い。「++ が最初に自己インクリメント、次に ++、その後自己インクリメント」と覚えていれば、この質問はあなたの能力をテストするだけです。慎重さ。 🎜🎜rrreee🎜🎜🎜🎜 オプション A の最後に ; がない場合、この質問は議論の余地がありません🎜🎜
      🎜🎜 int b = 257;🎜🎜🎜🎜byte b = 57;🎜🎜
      🎜🎜char c = 'a';🎜🎜🎜🎜String c = "a";🎜🎜
      🎜🎜 float f = 1.3f;🎜🎜🎜🎜double f = 1.3;🎜🎜🎜🎜float f = (float) 1.3;🎜🎜🎜🎜double f = 1.3f;🎜🎜
      🎜🎜A. float f = 1.3;🎜1.3デフォルトは double 型です。Java の高レベルの基本データ型から低レベルのデータ型への変換には、強制的な変換が必要です。 🎜🎜🎜🎜B. char c = "a"🎜 Java の文字定数は一重引用符で囲む必要があり、二重引用符で囲まれたものは文字列です。 (末尾のセミコロンが抜けています)🎜🎜🎜🎜C. byte b = 257🎜 バイトの範囲は-128~127です。 (末尾にセミコロンがありません)🎜🎜🎜🎜D. int i = 10🎜 (末尾にセミコロンがありません)🎜🎜
    🎜🎜None 🎜🎜🎜🎜rrreee🎜🎜&& (短絡 AND) 前の条件が false になると、次の条件はスキップされます。 🎜X = Condition? A : B は 3 項式であり、🎜🎜rrreee🎜🎜🎜🎜🎜🎜rrreee🎜🎜* よりも優先度が高いことを意味します。 + であるため、最初に乗算が計算され、次に + が左から右に実行されます。文字列が + 操作に関与する場合、加算は文字列連結となり、結果は文字列になります。したがって、最終的な結果は、文字列 "10"202.0 の連結になります。 🎜🎜🎜🎜上記参照🎜🎜🎜🎜rrreee🎜🎜それが正の数の場合は、パラメータの値の 2 倍を返し、正の数でない場合は、-1 を返します。結果は20 + 16 + (-1)です🎜🎜🎜🎜rrreee🎜🎜switch-caseステートメントブロックのbreakの重要性🎜🎜🎜🎜rrreee🎜🎜こんな質問のような気がします>sum + = x の位置が間違っている可能性があります。if の後にあるか、単純に次の質問と比較している可能性があります。このコードでは if がほとんど使用されていません。結果は if を使用しない場合と同じで、1+2+…+9=45 になります。 🎜🎜🎜🎜りー🎜

    前の質問と似ていますが、iの初期値が0になり、ifの続行がbreakになります。 0~3の余りは0なので、ループを直接抜け出して合計0の値を出力します。

  • 以上がJava の入門的な質問を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。