当前位置:   article > 正文

每天进步一点点Java笔试题之【选择题-综合难度】(7)_在java中,存放字符串变量的对象属于类对象

在java中,存放字符串变量的对象属于类对象

每天进步一点点,挑战每天5道笔试题!加油!!!

感谢小伙伴们的监督!每日更新!

正确答案在文末~~

1. 在Java中,main()方法的返回值的类型是:
  • A. public
  • B. static
  • C. void
  • D. String
2. 在 Java 中,存放字符串常量的对象属于( )类对象。
  • A. Character
  • B. String
  • C. StringBuffer
  • D. Vector
3. 在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
  • A. true
  • B. false
4. 下面代码输出结果是什么?
public class Demo {
  public static void main(String args[])
  {
    String str=new String("hello");
    if(str=="hello")
    {
      System.out.println("true");
    }      
    else     {
      System.out.println("false");
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • A. true
  • B. false
5. 执行以下程序后的输出结果是()
public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A"); 
        StringBuffer b = new StringBuffer("B"); 
        operator(a, b); 
        System.out.println(a + "," + b); 
    } 
    public static void operator(StringBuffer x, StringBuffer y) { 
        x.append(y);
        y = x; 
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • A. A,A
  • B. A,B
  • C. B,B
  • D. AB,B

答案

  1. C
    main方法是程序的入口。
    public static void main(String[] args) {…}
    public:公共的,访问权限是最大的。由于main方法是被jvm调用,所以权限要够大。
    static:静态的,不需要创建对象,通过类名就可以。方便jvm的调用。
    void:方法的返回值是返回给调用者,而main方法是被jvm调用。返回内容给jvm没有意义。
    main:是一个常见的方法入口。
    String[] args:这是一个字符串数组。
  2. B
    生成字符串的两个类String和StringBuffer中,前者生成的字符串是不变字符串,不能直接对它的内容进行修改,而后者生成的字符串是可变的,可以对其内容进行修改。
    Character类是对字符类型的类封装。
    Vector类是Java语言提供给用户的一种通用类,是一种链表结构的数组。
  3. A
    Java自JDK1.1之后采用委托事件模型(delegation event model)。委托事件模型是进行图形用户界面设计的核心。
    在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
    关于委托时间模型可以参考这篇文章传送门
  4. B
    == 用来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不要求数据类型严格相同),则只要两个变量的值相等,就返回true;
    对于两个引用类型变量,必须指向同一个对象,== 才会返回true。
    java中使用new String(“hello”)时,jvm会先使用常量池来管理"hello"常量,再调用String类的构造器创建一个新的String对象,新创建的对象被保存在堆内存中;而直接使用"hello"的字符串直接量,jvm会用常量池来管理这些字符串。
    所以结果为false。
  5. D
    在Java中,方法的参数传递都是值传递。
    如果传递的是基本数据类型,则直接是把实参的值给了形参。
    如果传递的是引用数据类型,则是把实参在堆内存中的地址值给了形参。本身引用数据类型在栈内存中存放的就是其在堆内存中的地址值,所以,传递引用数据类型本质上还是值传递。
    那么,对于基本数据类型,无论方法中怎么操作,在方法外的变量总是不受影响。
    对于引用数据类型,如果是对参数(地址)所指向的堆内存中的内容进行修改,则方法外的变量会发生变化。因为实参和形参指向的是同一个对象。
    如果是在方法中对形参重新进行赋值,则只是让形参重新指向一个对象。实参还是原来的指向,没有变。
    本题中:a和x是同个地址,b和y是同个地址,然后执行x.append(y)就把y指向的内容放在x指向的内容里面,此时a地址和x仍然是同一个,所以a就是AB;执行y=x是把x的地址给y,这时候a、x、y属于同一个地址。a、x、y都是AB,然而b还是原来的地址,指向的还是B。

如果你看到了这里,请小伙伴给个一键三连,你的肯定是对我最大的鼓励-

【第5题】对于Java中方法的参数是值传递还是引用传递,说法似乎不太一致。有人说基本类型是值传递,引用类型是引用传递。本博主认为Java中不存在引用传递,无论基本类型还是引用类型都是值传递。引用数据类型的变量本身存放的就是对象在堆内存中的地址,在方法的参数传递时,传递的也是这个地址,所以还是值传递。

小伙伴们怎么看这道题?欢迎在评论区讨论!大家共同进步!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/339565
推荐阅读
相关标签
  

闽ICP备14008679号