精华内容
下载资源
问答
  • 面试题:下面程序运行结果

    千次阅读 2017-01-13 15:57:09
    摘自:https://zhidao.baidu.com/question/489562987146637292.html下面程序运行结果是什么?public class Dervied extends Base {private String name = "dervied"; public Dervied() { tellName(); printName

    摘自:https://zhidao.baidu.com/question/489562987146637292.html

    下面程序的运行结果是什么?

    public class Dervied extends Base {
    
    private String name = "dervied";
    
        public Dervied() {
            tellName();
            printName();
        }
    
        public void tellName() {
            System.out.println("Dervied tell name: " + name);
        }
    
        public void printName() {
            System.out.println("Dervied print name: " + name);
        }
    
        public static void main(String[] args){
            new Dervied(); 
        }
    }
    
    class Base {
    
        private String name = "base";
    
        public Base() {
            tellName();
            printName();
        }
    
        public void tellName() {
            System.out.println("Base tell name: " + name);
        }
    
        public void printName() {
            System.out.println("Base print name: " + name);
        }
    }

    输出:

    Dervied tell name: null
    Dervied print name: null
    Dervied tell name: dervied
    Dervied print name: dervied

    关键点:问题出在构造函数的地方,对于java中的extends,每个子类构造方法的第一条语句都是隐含的调用super,而且如果父类没有这种形式的构造函数就会报错。

    详细解释
    1,首先先说一下父类与子类方法覆写(overrider)相关的概念,覆写在java中主要是通过方法表来完成,java中每个类型(Class)中都存在一个方法表,其中存放java类型的实例方法(public/protected),static方法属于静态方法,和类型相关,不属于javad实例方法。private和default属于私有方法,private/default修饰的方法不进入类型的方法表。

    2,接下来说一下和方法,其中称为类初始化方法,称为对象实例化方法,该问题就与方法息息相关。
    方法:
    Java在进行对象创建时首先进行类型加载,如果Class类型存在父类型,则需要先加载父类完成以后再加载子类型。并且对static变量进行初始化操作,对static变量或者static代码块初始化的逻辑就封装在方法中。
    Java类型初始化过程中对static变量的初始化操作依赖与对static变量的赋值语句的前后关系,static语句块与static变量声明存在位置关系,java编译器与static变量的赋值位置有关。
    方法:
    Java对象在进行实例化时,首先会进行父类的实例化操作,然后再进行子类的实例化操作。该部分操作封装在方法中,并且子类的方法中会首先对父类方法的调用。
    Java对象实例化过程中对实例域的初始化赋值操作全部在方法中进行,方法显式的调用父类的方法,实例域的声明语句以及实例初始化语句块存在位置关系,方法以构造方法作为结束。

    接下来回到这道题上来,启动java虚拟机:
    第一步:加载应用用到的类,加载顺序为Base–>Dervied,这里涉及到方法的调用,但是当前类型中没有static域或者是static{},所以方法不再讨论。

    第二步:对象实例化操作,首先我们new Dervied();,这样就触发对Dervied.的调用,但是根据以上知识(“并且子类的方法中会首先对父类方法的调用”)我们可以知道,Dervied.首先会调用到Base.方法,所以现在我们调用的方法是Base.,Base.方法中,首先是对name域(父类Base)进行初始化,然后调用tellName()方法,因为子类以及覆写了tellName()方法,所以tellName方法实际调用为Dervied.tellName()方法,tellName方法要打印name域(子类Dervied)的值,但是当前Dervied对象中的name域还没有被初始化,所以打印出来的值为null。printName()方法执行与tellName()方法一致。

    第三步:Base.方法返回到Dervied.方法中,紧接着对name域(子类Dervied)进行初始化操作,然后调用子类Dervied的tellName方法和printName方法,name域(子类Dervied)已经初始化完成,所以能正确打印出来。

    展开全文
  • 阅读下面程序,并写出运行结果

    千次阅读 2016-05-26 09:05:32
    * 文件名称:第12周项目:阅读下面程序,并写出运行结果 * 作者:马康泰 * 完成日期:2016.5.19 * 版本号:v1.0 * * 问题描述:阅读下面程序,并写出运行结果 * 输入描述: * 程序输出: */ //虚...
    /* 
     * Copyright(c)2016,烟台大学计算机与控制工程学院 
     * All rights reserved. 
     * 文件名称:第12周项目:阅读下面的程序,并写出运行结果
     * 作者:马康泰
     * 完成日期:2016.5.19 
     * 版本号:v1.0 
     * 
     * 问题描述:阅读下面的程序,并写出运行结果 
     * 输入描述: 
     * 程序输出: 
    */  
     //虚函数
     #include <iostream>
     using  namespace  std;
     class  A  {
     	int a;
     public:
     	A():a(5){
     		virtual void print()const{cout<<a;}
     	};
     	class  B:  public  A {
    char  b;
    public:
    B()  {  b='E';
    void  print()  const  { cout<<b;  }
    };
    void shoow(A &x){x.print();}
    int main()
    {
    	A d1,*p;
    	B d2;
    	p=&d2;
    	d1.print;
    	d2.print;
    	p->print;
    	show(d1);
    	show(d2);
    	return 0;
    }
    <img src="https://img-blog.csdn.net/20160526090431669?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    //(2)虚析构函数
    #include  <iostream>
    using  namespace  std;
    class  BASE
    {
    	private:
    		char  c;
    	public:
    		BASE(char  n):c(n)  {}
    virtual  ~BASE()  {  cout<<c; }
    };
    class  DERIVED:public  BASE
    {
    private:
    	char  c;
    	public:
    		DERIVED(char  n):BASE(n+1),c(n)  {}
    ~DERIVED(){  cout<<c;  }
    };
    int  main(){
    DERIVED  d('X');
    return  0;
    }
    <img src="https://img-blog.csdn.net/20160526090437812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    //(3)纯虚函数
    #include  <iostream>
    using  namespace  std;
    class  Base
    {
    	public:
    		virtual  void  Who()  =0;
    };
    class  FirstDerived:public  Base
    {
    public:
    void  Who()  {  cout<<"F";  }
    };
    class  SecondDerived:public  Base
    {
    public:
    	void  Who()  {  cout<<"S";  }
    };
    int  main()
    {
    FirstDerived  first_obj;
    SecondDerived  second_obj;
    Base  &bref=first_obj;
    bref.Who();
    bref=second_obj;
    bref.Who();
    Base  *bp;
    bp=&first_obj;
    bp->Who();
    bp=&second_obj;
    bp->Who();
    return  0;
    }
    <img src="https://img-blog.csdn.net/20160526090447622?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
    


    展开全文
  • 最近在使用eclipse遇到了问题,程序无论怎么运行都是之前修改前的程序结果,如下面所示: package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub...

    最近在使用eclipse遇到了问题,程序无论怎么运行都是之前修改前的程序结果,如下面所示:

    package test;
    
    public class test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println("Hello World!");
            System.out.println("Hello!");
    
        }
    
    }

    程序运行后,结果始终如下,不管代码如何修改,结果也一直不变,而这个结果是上次运行程序的结果:
    这里写图片描述

    刚开始在网上查到说可能有以下几个原因:
    检查主函数

    1.有可能main写成了mian

    2.主函数是不是忘了写string []args;

    3.忘记加static修饰

    但仔细检查对照后发现没有问题,后来才发现真正的解决办法:

    选择project->Build Automatically
    这里写图片描述
    勾选之后再次运行,结果如下:
    这里写图片描述
    可以看到,程序恢复正常,问题解决!

    展开全文
  • Visual Studio 2017中程序运行结果无法停留的解决办法解决方法1解决方法2 本人第一篇CSDN博客,因为想试试水,所以想到了这个问题, 在我刚刚接触Visual Studio 2017的时候也碰到过这个问题,下面是这个问题的解决...

    Visual Studio 2017中程序运行结果无法停留的解决办法

    本人第一篇CSDN博客,因为想试试水,所以想到了这个问题, 在我刚刚接触Visual Studio 2017的时候也碰到过这个问题,下面是这个问题的解决办法。

    解决方法1

    使用system(“pause”)语句,不过要添加头文件<Windows.h>

    解决方法2

    使用getchar();
    第2种方法让我们在程序运行结束后必须输入一个字符才会结束

    展开全文
  • 在windows命令行下面运行Python程序

    千次阅读 2018-03-27 10:00:19
    Python程序是以.py结尾的,编译的时候在notepad++里面运行编译,千万不能用电脑自带的记事本进行编写,那个里面会自带一些特殊字符,使得结果出现未知错误。保存好的.py文件,在C盘,建立一个work文件C:\work&gt...
  • Java程序运行机制及其运行过程

    万次阅读 多人点赞 2018-07-31 13:34:46
    本文主要讲的是jvm运行java程序。 (一)终端中如何运行一个java程序(这个是我在mac下运行的,windows下原理是一样的,大同小异) 做这个事情的前提下,一定是jdk已经安装好了并且没任何问题。 首先要想运行java...
  • 其实这也是一个很土鳖的问题,很...而真正的执行(就是对应于vc++6.0的那个感叹号)是绿色的空心三角,在调试菜单下面,如果输入它,那么就会得到点击运行后程序运行完不关闭窗口的特点。 如果你不喜欢这样,还有一种简
  • C语言程序运行并将结果保存到文件中

    万次阅读 热门讨论 2010-08-23 19:09:00
    以前,提到将运行结果保存到文件中,我自然而然的就会想到是用C语言读取文件的方法。但是这对于初学者来说有一定的难度。;">昨天下午上课,老师教了我们一招。编写完C语言程序后,我们会将其编译成.obj文件,再进行...
  • android app程序运行状态的判定

    千次阅读 2015-09-29 14:13:46
    怎么知道手机的一个程序是否在运行,又或是在不在前台运行呢?下面一个方法就可以判定了。 /** * 返回app运行状态 * 1:程序在前台运行 * 2:程序在后台运行 * 3:程序未启动 * 注意:需要配置权限 */ public ...
  • 程序运行时的内存空间分布

    万次阅读 多人点赞 2014-03-21 01:33:18
    其实在程序运行时,由于内存的管理方式是以页为单位的,而且程序使用的地址都是虚拟地址,当程序要使用内存时,操作系统再把虚拟地址映射到真实的物理内存的地址上。所以在程序中,以虚拟地址来看,数据或代码是一块...
  • 问题描述:在Linux服务器上开发的程序,远程连接中断执行这个程序,但是终端关闭后这个运行程序会作为终端窗口的子进程自动关闭。 我要让程序在终端的后台运行,关闭终端后程序仍然可以继续运行。 (1)使程序在...
  • vscode运行c语言 程序

    万次阅读 2019-08-01 22:05:12
    c语言的程序 文件后缀名为 .c 在vscode里面写完代码之后,在终端编译运行 gcc 文件名 -o 编译后的文件名 ...使用下面的命令可以进行文件的运行 ./ 编译后的文件名 接着会在控制台输出结果。 ...
  • 提高程序运行效率的10个简单方法

    万次阅读 多人点赞 2013-07-01 12:06:38
    对于每一个程序员来说,程序的运行效率都是...但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运行效率的方法,希望对大家有所帮助。 注:以C/C++程序为例 一、尽量变
  • 在官网上看演示的时候,发现讲解人就是分块运行显示 请问是怎样做到分块的?又是怎样运行的? M文件进行分块 在菜单栏CELL-- Enable Cell Mode 工具栏会多出来一行 incert cell driver 红色框
  • matlab中记录程序运行时间

    万次阅读 2014-06-26 10:26:48
    使用Matlab运行程序的时候,我们经常需要知道或比较不同程序的具体运行时间,其程序代码如下: st=cputime; % 程序开始运行时的cpu时间 % 程序开始 ...et=cputime-st % 计算程序运行所用的时间
  • 一个程序在计算机中到底是如何运行的?

    万次阅读 多人点赞 2016-09-22 23:46:09
    在《载入内存,让程序运行起来》一节中讲到,程序是保存在硬盘中的,要载入内存才能运行,CPU也被设计为只能从内存中读取数据和指令。 对于CPU来说,内存仅仅是一个存放指令和数据的地方,并不能在内存中完成计算...
  • 如何停止电脑正在运行的VBS程序

    万次阅读 多人点赞 2018-12-20 15:21:24
    任何操作系统,运行一个程序进程。操作系统都会为其分配一个进程号。那么,我们把这个进程号对应的程序关掉就好啦! 也就是:kill 下图,是我展示的一个VBS进程信息: 我们只需要再创建一个VBS程序来杀死这个...
  • 计算Python的代码块或程序运行时间

    万次阅读 多人点赞 2016-11-10 00:44:04
    1.运用场景在很多的时候我们需要计算我们程序的性能,这个时候我们常常需要统计程序运行的时间。下面我们就来说说怎么统计程序的运行时间。2. 实现方法计算Python的某个程序,或者是代码块运行的时间一般有三种方法...
  • 使用Mono打造轻量级的.NET程序运行

    万次阅读 2016-05-03 14:51:53
    在使用Mono让.NET程序跨平台运行这篇文章中,我们已经对Mono以及.NET程序运行机制有了初步的理解。今天我想来谈谈”使用Mono打造轻量级的.NET运行时”这样一个话题。为什么我会有这样一种想法呢?因为Mono和.NET都...
  • 对于c++的初学者来说,在vs上练习编写控制台程序的时候一定会遇到一个问题,那就是程序执行完毕就立即退出,甚至我们还没有来的及看清楚程序运行结果,常常会让我们误以为是不是程序的编写出现问题,也不方便查看...
  • 找到java安装下的bin目录,运行cmd,输入javac,能提示,说明环境配置有问题 cmd输入:path 看看java 相关的java相关路径有没有多余的符号,比如多出分号,逗号(笔者上面是正确的路径展示形式) 看看下载的解压...
  • C++中计算程序运行时间

    万次阅读 多人点赞 2018-09-29 19:19:12
    因此对于程序员来说,如何计算程序运行时间就是一个需要解决的基本问题了。对于C++来说,在C++11之前并没有与时间相关的直接的标准库,基本上是使用C语言中对时间进行处理的相关功能,或者直接使用和平台相关的系....
  • 请检查下面程序,找出其中的错误并改正,然后上机调试,使之能正常运行,从键盘输入,检查输出
  • CLion运行python程序

    千次阅读 2017-09-03 17:04:30
    新建C++ project,然后 下面新增一个python文件hello.py即可,如图: 然后选择Run=>Run 'Hello',会弹出以下对话,设定好interpreter: ...然后选择Run即可看到运行结果,如下: ...
  • python-如何运行py程序

    千次阅读 2019-02-01 15:29:40
    在window环境下运行py程序 一种简单的方法是用批量处理命令打开.py文件,方法如下: 1、在py文件同目录下新建一个txt文件,粘贴虾下面命令 start py -3 "要运行的文件.py" 2、修改文件后缀为bat文件...
  • 在pycharm中右键点击run运行程序,发现没有打开run窗口运行,而是在Python console窗口中运行的。 解决方法: 打开菜单栏 run-&gt;edit configurations, 把下图中的复选框取消。 发现这样只能解决...
  • 下面我们就说说MATLAB中计算程序运行时间的三种常用方法吧! 注意:三种方法由于使用原理不一样,得到结果可能有一定的差距! 1、tic和toc组合(使用最多的) 计算tic和toc之间那段程序之间的运行时间,它的...
  • Linux环境编译运行C语言程序

    万次阅读 多人点赞 2019-04-15 12:57:44
    linux环境下编译并运行C语言程序 打开安装好的Linux系统(ubuntu18.04) 1.安装编辑器 使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安装vim编辑器。(特别提示:在安装vim前最好将软件更新,...
  • .NET概念:.NET程序编译和运行

    千次阅读 多人点赞 2012-02-29 15:46:19
    程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行。 下图为传统代码编译运行过程: .NET的编译和运行过程与之类似,首先编写好的源代码,然后...
  • uni-app创建并运行微信小程序项目

    千次阅读 2019-09-02 13:56:02
    首先点击HBuilder X菜单栏工具下面的设置,然后在运行配置里面设置微信开发者工具的安装路径 在微信开发者工具中,点击设置下面的安全设置,然后开启服务端口 最后在HBuilder X运行配置中填写...运行结果如下 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,300,244
精华内容 920,097
关键字:

下面的程序的运行结果是