刷题日记

这篇博客记录了作者2020年11月10日的Java刷题经历,主要涉及运算符优先级、this调用语句在构造函数中的使用以及获取JVM内存映像的命令。作者详细解释了每道题目背后的原理,并提供了正确答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2020.11.10 刷题总结

经过多次艰难的决定,我觉得还是要开始正对性的刷题,在自学的过程中,缺少题目的练习,对部分知识的掌握程度有限.希望能通过刷题不断地提升自己.

今日刷题分享

1. 以下程序会输出什么?
int a =100,b=50,c=a---b,d=a---b;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);

这道题考察了运算符优先级的知识,下面是运算符优先级表:
在这里插入图片描述
通过表可以看出,- -运算符的优先级要高于-,所以在c=a- - -b可以理解为:c=(a- -)-b;执行改行之后,c = 100 - 50;执行之后 a的值自减,a = 99;
以此类推:得到输出结果为: a = 98 b = 50 c = 48 d = 49

2. This调用语句必须是构造函数中的第一个可执行语句?

错误,this调用语句可以在任何位置,但是this()比必须是构造函数的第一个可执行语句。因为this()是构造方法。这里需要注意:This调用语句并非this()方法

3. 运用下列哪个命令能够获取JVM的内存映像?

A. jinfo B. jmap C.jhat D.jstat

解读:
1、jps:查看本机java进程信息。

2、jstack:打印线程的栈信息,制作线程dump文件。

3、jmap:打印内存映射,制作堆dump文件

4、jstat:性能监控工具

5、jhat:内存分析工具

6、jconsole:简易的可视化控制台

7、jvisualvm:功能强大的控制台

假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?
public class Base
{
   public void methodOne()
   {
      System.out.print("A");
      methodTwo();
   }
 
   public void methodTwo()
   {
      System.out.print("B");
   }
}
 
public class Derived extends Base
{
   public void methodOne()
   {
      super.methodOne();
      System.out.print("C");
   }
 
   public void methodTwo()
   {
      super.methodTwo();
      System.out.print("D");
   }
}

解读:
向上转型:父类只能调用父类方法或者子类覆写后的方法,而子类中的单独方法则是无法调用的。所以程序的执行顺序为:

class Base
{ public void methodOne()  // (3)
    {
        System.out.print("A");
        methodTwo();  //调用子类的重写方法 (4)
    } public void methodTwo() // (7)
    {
        System.out.print("B");
    }
} 
 class Derived extends Base { public void methodOne() // (1)
    { super.methodOne();   // (2)
        System.out.print("C");
    } public void methodTwo()  //该方法为重写了父类的方法 (5)
    { super.methodTwo(); //(6)
        System.out.print("D");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值