牛客网刷题day04

1.String str1 = “abc”,“abc”分配在内存哪个区域?

  • 字符串常量区
  • 用new创建的对象在堆区

    函数中的临时变量在栈区

    java中的字符串在字符串常量区

  • 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中

    堆:存放用new产生的数据

    静态域:存放在对象中用static定义的静态成员

    常量池:存放常量

    非RAM存储:硬盘等永久存储空间

2.关于final说法正确的是?  ( )

  • final类的方法能否被同一个包的类访问不是由final决定
  • final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。

3.下列java程序的输出结果为____。

public class Example{
    String str=new String("hello");
    char[]ch={'a','b'};
    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]='c';
    }
}

 4.观察以下代码:

public class Example{
    String str=new String("hello");
    char[]ch={'a','b'};
    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]='c';
    }
}
  • hello and cb
  • String类是final类型的,不能继承和修改这个类。str=“tesk ok”,其实是隐含的让Java生成一个新的String对象,那么就与原来的“Hello”没有任何关系,当函数结束,str作用结束,所以输出的还是“Hello”。 char ch[] 是传递引用,修改了原内容。

5. 观察以下代码:

class Car extends Vehicle
{
    public static void main (String[] args)
    {
        new  Car(). run();
    }
    private final void run()
    {
        System. out. println ("Car");
    }
}
class Vehicle
{
    private final void run()
    {
        System. out. println("Vehicle");
    }
}

下列哪些针对代码运行结果的描述是正确的?

  • Car
  • 首先final声明的方法是不能被覆盖的,但是这里并不错误,因为方法是private的,也就是子类没有继承父类的run方法,因此子类的run方法跟父类的run方法无关,并不是覆盖。new Car().run()也是调用子类的run方法。
  • 此题的父类方法有private修饰,所以对子类不可见,子类不能覆盖。所以子类方法和父类是两个方法。

    扩展:如果父类方法将private改为public 会怎样?

            会报错,因为父类方法有final修饰,不能被覆盖。

6.以下关于JAVA语言异常处理描述正确的有?

  • try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。
  • finally语句块是不管有没有出现异常都要执行的内容。
  • Java语言中的异常处理包括声明异常、抛出异常、捕获异常和处理异常四个环节。

    throw用于抛出异常。

    throws关键字可以在方法上声明该方法要抛出的异常,然后在方法内部通过throw抛出异常对象。

    try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。

    cacth用于捕获从try中抛出的异常并作出处理。

    finally语句块是不管有没有出现异常都要执行的内容。

7.下列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对程序进行调试。

  • javac.exe是编译.java文件

  • java.exe是java虚拟机,执行编译好的.class文件

  • javadoc.exe用来制作java文档

  • jdb.exe是java的调试器

  • javaprof,exe是剖析工具

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值