一些有趣的题目(java)持续更新

不念不忘少年蓝@ 2023-02-23 10:58 168阅读 0赞

有趣的编程题

  • 1.面试题
  • 2.某公司面试题

1.面试题

在这里插入图片描述
此处为正确的代码

  1. package Java.king01.Test;
  2. class MicrosoftTest {
  3. public static void main(String[] args) {
  4. int[] arr = new int[]{12,3,3,34,56,78,432};
  5. for(int i = arr.length - 1;i >= 0;i--){
  6. arr[i] = arr[i]/arr[0];
  7. }
  8. for(int i = 0;i < arr.length;i++){
  9. System.out.println(arr[i]);
  10. }
  11. }
  12. }
  • 此处如果是直接从第一数组开始,那么就只有第一个数组元素会变成1,其余的后面的数组之后都是除以第一个数组元素arr[0]=1,其余的都是不变的,属于面试题的一个小陷阱

2.某公司面试题

在这里插入图片描述

貌似是考察方法的参数传递,但是其实构造完方法之后,里面的a,b值虽然变了,但是最后通过输出语句输出的一样的是原来的值。

  1. class Demo {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 10;
  5. method(a,b);
  6. System.out.println("a=" + a);
  7. System.out.println("b=" + b);
  8. }
  9. public static void method(int a, int b){
  10. a = a * 10;
  11. b = b * 20;
  12. }
  13. //虽然里面的a,b改变了,但是最后main方法里面的还是输出了原来的数值10,20

**正确的代码 **

  1. package Java.king01.Test;
  2. class Demo {
  3. public static void main(String[] args) {
  4. int a = 10;
  5. int b = 10;
  6. method(a,b);
  7. System.out.println("a=" + a);
  8. System.out.println("b=" + b);
  9. }
  10. public static void method(int a, int b){
  11. a = a * 10;
  12. b = b * 20;
  13. System.out.println(a);//如果不在这里输出的话,那么a,b的值没有改变,依旧是10和20,
  14. //改变的只是method里面的a,b,但是最后输出的话依旧不能达到100和200的目的,是一个面试题
  15. //面向对象(上)PPT的第79页
  16. System.out.println(b);
  17. System.exit(0); //直接终止JVM的运行
  18. }
  19. }

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读