• 3道Java基础题


    1

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

    1. public class Example{
    2. String str=new String("tarena");
    3. char[]ch={'a','b','c'};
    4. public static void main(String args[]){
    5. Example ex=new Example();
    6. ex.change(ex.str,ex.ch);
    7. System.out.print(ex.str+" and ");
    8. System.out.print(ex.ch);
    9. }
    10. public void change(String str,char ch[]){
    11. //引用类型变量,传递的是地址,属于引用传递。
    12. str="test ok";
    13. ch[0]='g';
    14. }
    15. }

    正确答案: tarena and gbc

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

     按道理修改str和ch时会影响原来的值,但是由于string是不可变的, 对string的修改实际 上是new
    了-个新对象(这也是string和stringbuffer的区别, stringbuffer的底层是char数组, 所以可以直
    接修改), 而对char数组的修改则会影响原值。所以如下图。

     2

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

    1. public static void main(String args[]) {
    2.     List  Listlist1 = new ArrayList();
    3.     Listlist1.add(0);
    4.     List Listlist2 = Listlist1;
    5.     System.out.println(Listlist1.get(0) instanceof Integer);
    6.     System.out.println(Listlist2.get(0) instanceof Integer);
    7. }

    List集合中的元素必须是对象。 Listlist1.add(0); JDK1.5之后支持自动装箱(int类型自动装箱成Integer),编译通过。

    instanceof:前一个参数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是一个接口, 它用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。

    List没有使用泛型,说明使用get(0)取出的元素的编译类型Object型的, 但运行时类型是 Integer。所以打印true。这边体现了多态。 而Listlist1把引用赋给了List list2,说明两个指向同一个对象。第二个打印的也是true

    3

     以下程序的输出结果为

    1. class Base{
    2. public Base(String s){
    3. System.out.print("B");
    4. }
    5. }
    6. public class Derived extends Base{
    7. pub1ic Derived (String s) {
    8. System.out.print("D");
    9. }
    10. public static void main(String[] args){
    11. new Derived("C");
    12. }
    13. }

    BD
    DB
    C
    编译错误       ------------>正确答案

     

     

    子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用,修改子类构造方法如下即可:
    public Derived(String s){
        super("s");
        System.out.print("D");
    }

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

     

  • 相关阅读:
    Oracle/PLSQL: From_Tz function
    Mysql 基础命令增删改查
    RealSense D435 的开发日记(API 汇总)
    【密码学】块加密(分组加密)的工作模式
    国产FTP文件传输服务器需要具备哪些关键特性?
    记一次BootCDN被黑产挂马导致站点跳转博彩网站的问题
    darknet c++源码阅读笔记-01-activation_kernels.cu
    [论文笔记] SecPod:一个基于虚拟化安全系统的框架
    5.CAS原理
    双网关备份(bfd+VRRP+策略路由配置)企业网搭建
  • 原文地址:https://blog.csdn.net/qq_61557294/article/details/126756877