Home  >  Article  >  Java  >  Share a Java introductory question

Share a Java introductory question

PHP中文网
PHP中文网Original
2017-06-21 09:37:461521browse

Description

I saw a question like this on Zhihu a few days ago. I just did it casually and checked the answers. Yesterday there was another advanced question, some of which still need to be recorded, so I started with this introductory question.
Questions and answers are from Alibaba Cloud University - Zhihu Column

Questions

  1. Now assume that there is the following program

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

    What is the value of i output after running the above code?

    A. 4

    B. 5

    C. 3

    D. 6

  2. The following Which one of data declaration and assignment is error-free?

    A. float f = 1.3;

    B. char c = "a"

    C. byte b = 257

    D. int i = 10

  3. Extension of the bytecode file generated by compiling Java source program files Name?

    A. java

    B. class

    C. html

    D. exe

  4. Now suppose There is the following program:

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

    What is the final execution result of the above program?

    A. aliyunedu

    B. yootk

    C. true

    D. Program error

  5. Now Suppose there is the following program:

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

    What is the final execution result of the above program?

    A. 10202.0

    B. 0212.0

    C. 302.0

    D. 1020.210

  6. Now assume There is the following program:

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

    What is the final execution result of the above program?

    A. 01234

    B. 10

    C. 14

    D. 25

  7. Now suppose There is the following program:

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

    What is the final execution result of the above program?

    A. 35

    #B. 8

    C. 28

    D. 12

  8. Now suppose There is the following program:

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

    What is the final execution result of the above program?

    A. 11

    B. 13

    C. 12

    D. 10

  9. Now suppose There is the following program:

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

    What is the final execution result of the above program?

    A. 6

    #B. 0

    C. Program error, infinite loop

    D. 45

  10. Now assume that there is the following program:

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

    What is the final execution result of the above program?

    A. 6

    #B. 0

    C. Program error, infinite loop

    D. 45

Answer

BDBBA AACDB

Personal analysis

  1. Main testi++ and++i The difference is as long as you remember "++ first, self-increment first; second ++, then self-increment", this question will only test your carefulness.

    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. If option A does not have that ; at the end, then this question will not be controversial

  • 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.3The default is double type , the conversion of basic data types in Java from high-level to low-level requires forced conversion.

  • B.
  • char c = "a"

    Character constants in java should be enclosed in single quotes and double quotes It is a string. (There is a semicolon missing at the end)

  • C.
  • byte b = 257

    The range of byte is -128~127. (There is a semicolon missing at the end)

  • D.
  • int i = 10

    # (There is a semicolon missing at the end)

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

  • &&
    (Short circuit AND) Once the previous condition is If false, the following conditions will be skipped.

    X = Condition? A : B is a ternary expression, which has the same meaning as

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

  • *
    has a higher priority than
    +

    , so the multiplication is calculated first, followed by + from left to right. When a string participates in the + operation, the addition becomes string concatenation, and the result is a string. Therefore, the final result is the concatenation of the strings "10" and 202.0. See above

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

  • If it is a positive number, return 2 times the value of the parameter; if it is not a positive number, Return -1. The result is
  • 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) ;
        }
    }

  • The importance of break in switch-case statement block
  • 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) ;
        }
    }

  • I feel that the position of
  • sum += x
    for this question may be wrong. It should be after if, or it may just be the same as the next question. Compared. Now there is almost no use of if in this code. The result is the same as without if, which is 1+2+…+9=45.

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

    Similar to the previous question, but the initial value of i becomes 0, and the continue in if becomes break. Since the remainder of 0 to 3 is 0, we jump out of the loop directly and output the value of sum 0.

  • The above is the detailed content of Share a Java introductory question. For more information, please follow other related articles on the PHP Chinese website!

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn