>  기사  >  Java  >  Java 소개 질문 공유

Java 소개 질문 공유

PHP中文网
PHP中文网원래의
2017-06-21 09:37:461521검색

Description

며칠 전 Zhihu에서 이런 질문을 보고 그냥 아무 생각 없이 답변을 확인했습니다. 어제 또 다른 고급 질문이 있었고 그 중 일부는 아직 녹음이 필요하므로 이 소개 질문으로 시작했습니다.
질문과 답변은 Alibaba Cloud University - Zhihu 칼럼

Question

  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.5
    C.3🎜🎜D.6🎜🎜🎜🎜다음 중 오류가 없는 데이터는 무엇인가요? 🎜🎜A. float f = 1.3;🎜🎜B. char c = "a"🎜🎜C. D. int i = 10🎜🎜🎜🎜Java 소스 프로그램 파일을 컴파일하여 생성된 바이트코드 파일의 확장자는 무엇입니까? 🎜🎜A.java🎜🎜B.class🎜🎜C.html🎜🎜D.exe🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정합니다. 🎜🎜
    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.aliyunedu🎜🎜B.yootk🎜🎜C.true🎜🎜D. 프로그램 오류🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정해 보겠습니다. 🎜🎜rrreee🎜🎜 위 프로그램의 최종 실행 결과는 무엇입니까? 🎜🎜A.10202.0🎜🎜B.0212.0🎜🎜C.302.0🎜🎜D.1020.210🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정합니다. 🎜🎜rrreee🎜🎜 위 프로그램의 실행 결과는? 🎜🎜A.01234🎜🎜B.10🎜🎜C.14🎜🎜D.25🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정해 보겠습니다. 🎜🎜rrreee🎜🎜 위 프로그램의 최종 실행 결과는 무엇입니까? 🎜🎜A.35🎜🎜8🎜🎜C.28🎜🎜D.12🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정해 보겠습니다. 🎜🎜rrreee🎜🎜 위 프로그램의 최종 실행 결과는 무엇입니까? 🎜🎜A.11🎜🎜B.13🎜🎜C.12🎜🎜D.10🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정해 보겠습니다. 🎜🎜rrreee🎜🎜 🎜🎜A.6🎜🎜B.0🎜🎜C. 프로그램 오류, 무한 루프 🎜🎜D.45🎜🎜🎜🎜이제 다음 프로그램이 있다고 가정합니다. 🎜🎜rrreee🎜🎜 위 프로그램? 🎜🎜A.6🎜🎜B.0🎜🎜C. 프로그램 오류, 무한 루프🎜🎜D.45🎜🎜🎜Answer🎜🎜BDBBA AACDB🎜🎜기본 테스트 ++ ++i의 차이점은 "++ 먼저, 먼저 자체 증가, 그 다음 ++, 그 다음 자체 증가"를 기억하는 한 이 질문은 귀하의 테스트만 수행할 것입니다. 조심성. 🎜🎜rrreee🎜🎜🎜🎜옵션 A의 끝에 ;가 없으면 이 질문은 논란의 여지가 없습니다🎜🎜
      🎜🎜 int b = 257;🎜🎜🎜🎜바이트 b = 57;🎜🎜
      🎜🎜문자 c = 'a';🎜🎜🎜🎜문자열 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 = 조건? A : B는 삼항 표현식입니다. 이는 🎜🎜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입니다. 🎜🎜🎜🎜rrreee🎜

    이전 질문과 비슷하지만 i의 초기 값은 0이 되고 if의 계속은 break가 됩니다. 0부터 3까지의 나머지는 0이므로 루프에서 직접 점프하여 합이 0인 값을 출력합니다.

  • 위 내용은 Java 소개 질문 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.