写点什么

Java 必会基础题,量不多,但每天进步一点也是好的

作者:Java-fenn
  • 2022 年 9 月 13 日
    湖南
  • 本文字数:1170 字

    阅读完需:约 4 分钟

1

指出下列程序运行的结果:

public class Example{    String str=new String("tarena");    char[]ch={'a','b','c'};    public static void main(String args[]){        Example ex=new Example();        ex.change(ex.str,ex.ch);        System.out.print(ex.str+" and ");        System.out.print(ex.ch);    }    public void change(String str,char ch[]){   //引用类型变量,传递的是地址,属于引用传递。        str="test ok";        ch[0]='g';    }}
复制代码

正确答案: tarena and gbc

由于 string 和 char 数组都是引用类型,调用方法时传递的是引用,如下图所示

按道理修改 str 和 ch 时会影响原来的值,但是由于 string 是不可变的, 对 string 的修改实际 上是 new

了-个新对象(这也是 string 和 stringbuffer 的区别, stringbuffer 的底层是 char 数组, 所以可以直

接修改), 而对 char 数组的修改则会影响原值。所以如下图。



2

指出下列程序运行的结果:

public static void main(String args[]) {    List  Listlist1 = new ArrayList();    Listlist1.add(0);    List Listlist2 = Listlist1;    System.out.println(Listlist1.get(0) instanceof Integer);    System.out.println(Listlist2.get(0) instanceof Integer);}
复制代码


List集合中的元素必须是对象。 Listlist1.add(0); JDK1.5之后支持自动装箱(int类型自动装箱成Integer),编译通过。instanceof:前一个参数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是一个接口, 它用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。List没有使用泛型,说明使用get(0)取出的元素的编译类型Object型的, 但运行时类型是 Integer。所以打印true。这边体现了多态。 而Listlist1把引用赋给了List list2,说明两个指向同一个对象。第二个打印的也是true
复制代码

3

以下程序的输出结果为

class Base{	public Base(String s){		System.out.print("B");	}}public class Derived extends Base{	pub1ic Derived (String s) {		System.out.print("D");	}	public static void main(String[] args){		new Derived("C");	}}
复制代码

BD

DB

C

编译错误       ------------>正确答案

子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用,修改子类构造方法如下即可:

public Derived(String s){

super("s");

System.out.print("D");

}

上面这些题目来源于牛客网,自己也是刚开始做,分享的题目可能我并没有做错,但是也是给我带来了收获的题目,题解也是挑的下面牛友写的好一些的题解,希望大家有所收获。最近在突然想起来过几天就考六级了,呃呃呃,还剩十几天就考了,之前也没准备过,四级当时也没准备,压线过的,就想着报都报了就准备一下吧,毕竟不想白送钱,所以这两天忙着背单词,就只能每天做几个简单基础题或者算法题了……

用户头像

Java-fenn

关注

需要Java资料或者咨询可加我v : Jimbye 2022.08.16 加入

还未添加个人简介

评论

发布
暂无评论
Java必会基础题,量不多,但每天进步一点也是好的_Java_Java-fenn_InfoQ写作社区