更多“下面这段代码会产生( )个String对象。Strings1="hello";Strings2=s1.substring(2,3);S ”相关问题
  • 第1题:

    下列代码的执行结果是()。publicclasstest5{publicstaticvoidmain(Stringargs[]){Strings1=newString("hello");Strings2=newString("hello");System.out.prim(s1==s2);System.out.print(",");System.out.println(s1.equals(s2));}

    A.true,false

    B.true,true

    C.false,true

    D.false,false


    正确答案:C

  • 第2题:

    下列哪个程序段可能导致错误?

    A.String s="hello"; String t= "good"; String k=s+ t;

    B.String s="hello"; String t; t=s[3]+"one";

    C.String s="hello"; String standard=s. toUpperCase

    D.String s="hello"; String t =s+ "good"


    正确答案:B
    解析:选项A)String类型可以直接使用“+”运算符进行连接运算。选项B)String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。选项C)toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String类型)。选项D)同选项A)。

  • 第3题:

    下列语句输出结果为( )。 public class test { public static void main (String args[]) { Strings1=newString("HOW"); Strings2=newString("How"); System.out.println(!(s1.equals(s2))): } }

    A.假

    B.真

    C.0

    D.1


    正确答案:A

  • 第4题:

    阅读下面程序 publicclass Operators AndExpressions{ voidequalsMethodl(){ Strings1=newString("howareyou"); Strings2=newString("howareyou"); System.out.println(s1==s2); } publicstaticvoidmain(Stringargs[]){ OperatorsAndExpressionsOperAndExp=newOperatorsAndExpressions (); //用于复合类型数据的“==”运算符 OperAndExp.equalsMethodl(); } } 程序运行结果是( )。

    A.==

    B.true

    C.false

    D.equal


    正确答案:C
    解析: 本题考查的足Java语言中运算符的特殊用法。相等比较运算符“==”,不仅可用于基本类型的数据之间的比较,还可以用于复合数据类型之间的比较。但是,对于复合类型数据的“==”运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象s1和s2,然后输出表达式“s1==s2”的结果。根据上面介绍的相等比较运算符的用法,字符串对象s1和s2是复合数据类型,因此表达式“s1==s2”比较的是s1和s2是否同一个对象。显然,s1和s2虽然具有相同的值,即“howareyou”,但它们是两个不同的对象。因此,本题的正确答案足C,

  • 第5题:

    下列代码的执行结果是______。 public class ex55 { public static void main(String args[] ) { String s1=new String("hello"); String s2=new String("hello"); System.out.print (s1==s2); System.out.print (","); System.out.println (s1.equals (s2)); } }

    A.true, false

    B.true, true

    C.false, true

    D.false, false


    正确答案:C

  • 第6题:

    下列程序的执行结果是 public class Testhh { public static void main(String args [] ) { Strings1=new String("I am boy"); Strings2=new String("I am boy"); System.out.println(s1.equals(s2)); } }

    A.真

    B.假

    C.I am boy

    D.都不正确


    正确答案:A
    解析:如果需要比较两个对象的值是否相同,则可以调用equals()方法,如果比较的两个对象的值相等则返回true,否则返回false。对于equals()方法和运算符“==”的区别没有掌握,运算符“==”是用来比较两者是不是同一个对象,是同一个对象则返回true,否则返回false。注意:equals()方法是Java的根类Object的方法,但是Java类库的许多子类,都重写了equals()方法。

  • 第7题:

    下列的( )程序段可能导致错误。

    A.String s="hello": Sting t="good"; String k=s+t;

    B.Sting s="hello"; String t; t=s [3] + "one";

    C.Sting s="hello"; String standard=s.toUpperCase( );

    D.String s="hello": Stringt s +"good";


    正确答案:B

  • 第8题:

    执行以下代码会输出什么结果?()   public class Test {    StringgetStr(String s){  return s + “hello”;  }  public static void main(String arg[]) {           Test t= new Test();  System.out.println(t.getStr(“LiLei/n”));     } } 

    • A、 编译报错
    • B、 LiLei    hello
    • C、 LiLeihello
    • D、 无任何输出

    正确答案:B

  • 第9题:

    设String对象s="H",运行语句System.out.println(s.concat("ello!"));后String对象s的内容为"Hello!",所以语句输出为"Hello!"。


    正确答案:错误

  • 第10题:

     public class X {   public static void main (String[]args)   {   string s = new string (“Hello”);   modify(s);   System.out.printIn(s);   }   public static void modify (String s)  {   s += “world!”;      }   }      What is the result?()    

    • A、 The program runs and prints “Hello”
    • B、 An error causes compilation to fail.
    • C、 The program runs and prints “Hello world!”
    • D、 The program runs but aborts with an exception.

    正确答案:A

  • 第11题:

    单选题
    给定如下所示的JAVA代码,则运行时,会产生()类型的异常。 String s=null; s.concat("abc");
    A

    ArithmeticException

    B

    NullPointerException

    C

    IOException

    D

    ClassNotFoundException


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    public class X {   public static void main (String[]args)   {   string s = new string (“Hello”);   modify(s);   System.out.printIn(s);   }   public static void modify (String s)  {   s += “world!”;      }   }      What is the result?()
    A

     The program runs and prints “Hello”

    B

     An error causes compilation to fail.

    C

     The program runs and prints “Hello world!”

    D

     The program runs but aborts with an exception.


    正确答案: D
    解析: 暂无解析

  • 第13题:

    下列的哪个程序段可能导致错误? ( )

    A.String s="hello"; String t="good"; String k=s+t;

    B.String s="hello"; String t; t=s[3]+"one";

    C.String s="hello"; String standard=s.toUpperCase();

    D.String s="hello"; String t=s+"good";


    正确答案:B

  • 第14题:

    给出下列的代码,则以下哪个选项返回true? String s="hello"; String t="hello"; char c []= {'h','e','1','1','o'};A)s.equals(t);

    A.t. equals(

    B.;

    C.s==t;

    D.t==c;


    正确答案:A
    解析:==操作符比较的是操作符两端的操作数是否是同一个对象,而String的equals()方法比较的是两个 String对象的内容是否一样。s. equals(t)方法比较字符串s与字符串t中的内容是否一致,两个字符串中的内容一致,所以返回true。

  • 第15题:

    String s = "Hello";s = s + " world!";这两行代码执行后,

    原始的String 对象中的内容到底变了没有?


    正确答案:

     

    没有。因为String 被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。

    在这段代码中,s 原先指向一个String 对象,内容是 "Hello",然后我们对s 进行了+

    操作,那么s 所指向的那个对象是否发生了改变呢?答案是没有。这时,s 不指向原来那个对象了,而指向了另一个 String 对象,内容为"Hello world!",原来那个对象还

    存在于内存之中,只是s 这个引用变量不再指向它了。

    通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修

    改,或者说,不可预见的修改,那么使用String 来代表字符串的话会引起很大的内存

    开销。因为 String 对象建立之后不能再改变,所以对于每一个不同的字符串,都需要

    一个String 对象来表示。这时,应该考虑使用StringBuffer 类,它允许修改,而不是每

    个不同的字符串都要生成一个新的对象。并且,这两种类的对象转换十分容易。

    同时,我们还可以知道,如果要使用内容相同的字符串,不必每次都new 一个String。

    例如我们要在构造器中对一个名叫s 的String 引用变量进行初始化,把它设置为初始

    值,应当这样做:

    public class Demo {

    private String s;

    ...

    public Demo {

    s = "Initial Value";

    }

    ...

    }

    而非

    s = new String("Initial Value");

    后者每次都会调用构造器,生成新对象,性能低下且内存开销大,并且没有意义,因

    为String 对象不可改变,所以对于内容相同的字符串,只要一个String 对象来表示就

    可以了。也就说,多次调用上面的构造器创建多个对象,他们的String 类型属性s 都

    指向同一个对象。

    上面的结论还基于这样一个事实:对于字符串常量,如果内容相同,Java 认为它们代

    表同一个String 对象。而用关键字new 调用构造器,总是会创建一个新的对象,无论

    内容是否相同。

    至于为什么要把String 类设计成不可变类,是它的用途决定的。其实不只String,很

    多Java 标准类库中的类都是不可变的。在开发一个系统的时候,我们有时候也需要设

    计不可变类,来传递一组相关的值,这也是面向对象思想的体现。不可变类有一些优

    点,比如因为它的对象是只读的,所以多线程并发访问也不会有任何问题。当然也有

    一些缺点,比如每个不同的状态都要一个对象来代表,可能会造成性能上的问题。所

    以Java 标准类库还提供了一个可变版本,即 StringBuffer。

  • 第16题:

    下列代码段的执行结果是( )。 public class Test { public static void main(String args[ ]) { String s1= new String("hello"); String s2= new String("hello"); System.out.println(s1==s2); System.out.println(s1.equal(s2)); } }

    A.true false

    B.true true

    C.false true

    D.false false


    正确答案:C
    解析:本题考查比较运算符(==)的使用。比较运算符不仅可以用于基本数据类型的数据之间的比较,还可以用于复合数据类型的数据之间的比较。题中s1和s2的值虽然都是hello,但是由于它们是不同的对象,因此运算后的结果为false。如果需要比较两个对象的值是否相同,则可以调用equals()方法。所以程序最后输出false和true。

  • 第17题:

    下面的程序执行后,屏幕上显示的应是( )。 publicclassExam{ publicstaticvoidmain(String[]args){ charcharl[]={'t','e','s','t'}; charchar2[]={'t','e,'s','t','1'}; Strings1=newString(char1); Strings2=newString(char2,0,4); System.out.println(s1.equals(S2)); } }

    A.true

    B.false

    C.test

    D.编译错误


    正确答案:A
    解析: 本题考查考生对字符数组的理解。首先可以通过字符数组来生成一个字符串对象:String(char()value)和 String(char[]value,intstartlndex,intnumChars),其中,startlndex指定字符串在数组中的起始下标,numChars表示字符个数。然后再测试字符串是否相等,可调用equals()方法,两个字符串相等则返回true,否则返回false。题目中s1和s2都是“test”,所以最后返回是true,选项A正确。

  • 第18题:

    给出下列的代码则以下哪个选项返回true? String s = "hello" ; String s = "hello" ; char c[] = { 'h' ,'e','l','o'};

    A.s.equals(t);

    B.t.equals(c);

    C.s = =t

    D.t = = c;


    正确答案:A
    解析:==操作符比较的是操作符两端的操作数是否是同一个对象,String的equals()方法比较的是两个String对象的内内容是否一样。s.equals(1)方法比较字符串s与字符串t中的内容是否一致,所以返回true。

  • 第19题:

    下面的代码实现一个简单的Applet: import java.applet.Applet; import java.awt.*; public class Sample extends Applet { private String text="Hello World"; public void init() { add(new Label(text)); } public Sample(String string) { text=string; } } 通过下面的HTML文件访问: <html> <title>Sample Applet</title> <body> <applet code="Sample.class"width=200 height=200></applet> </body> </html> 当编译和运行该小程序时会出现什么结果,请选择正确的答案。( )

    A.将会出现“Hello World"

    B.将会产生一个运行时错误

    C.什么都没有

    D.产生一个编译时错误


    正确答案:D
    解析:该题考查对Applet具体编程的理解。实际上就是考查APplet编程与 Application编程的区别。在应用程序编程中,通常由主类的构造函数和main()方法,在主类的构造函数里面进行一些一次性的初始化工作。而在小程序的编程中,也有主类,既然有类也就有相应的构造函数。但是要知道,Applet是在浏览器或者是通过专门的工具运行的,在创建Applet时,不能通过任何手段给Applet传递参数,所以构造函数应该是不能有参数的。但是,这种错误在编译时并不报错,因为它并没有任何的语法错误,只是会在运行时出错,系统会告诉你无法实例化小程序。注意,本题如果将构造函数改成下面的形式,则编译与运行时都不会出错。public Sample (String string){text="aaaaa";}它的效果与将语句text="aaaaa"放在init()函数里的效果是—样的。也就是说,创建Applet时的初始化工作能放在构造函数里实现的,完全可以放到init()函数里实现。但是,反之,能在init()函数里实现的代码却不一定能在构造函数里实现。这也就是为什么在小程序编程中不用构造函数的原因。故本题答案是D。

  • 第20题:

    下面哪些代码中声明的变量可以存放10个String对象()

    • A、String[]a;
    • B、Object[]a;
    • C、String[50]a;
    • D、chara[][];

    正确答案:A,B

  • 第21题:

    String s= "hello";     String t = "hello";  char c[] = {’h’,’e’,’l’,’l’,’o’} ;     Which return true?()   

    • A、 s.equals(t);
    • B、 t.equals(c);
    • C、 s==t;
    • D、 t.equals(new String("hello"));
    • E、 t==c;

    正确答案:A,C,D

  • 第22题:

    判断题
    设String对象s="H",运行语句System.out.println(s.concat("ello!"));后String对象s的内容为"Hello!",所以语句输出为"Hello!"。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

    单选题
    执行以下代码会输出什么结果?()   public class Test {    StringgetStr(String s){  return s + “hello”;  }  public static void main(String arg[]) {           Test t= new Test();  System.out.println(t.getStr(“LiLei/n”));     } }
    A

     编译报错

    B

     LiLei    hello

    C

     LiLeihello

    D

     无任何输出


    正确答案: B
    解析: 暂无解析