精华内容
下载资源
问答
  • 以下代码输出结果是?

    千次阅读 2018-05-31 15:25:20
    class A { public A() { a1(); } public void a1() { System.out.println("A-a1"); } } public class Test extends A { int bb = 0; public Test() { bb = 1000;... Syste...
    class A {
    
    	public A() {
    		a1();
    	}
    
    	public void a1() {
    		System.out.println("A-a1");
    	}
    }
    
    public class Test extends A {
    
    	int bb = 0;
    
    	public Test() {
    		bb = 1000;
    	}
    
    	public void a1() {
    
    		System.out.println("bb is " + bb);
    
    		System.out.println("B-a1");
    
    	}
    
    	public static void main(String[] args) {
    		new Test();
    	}
    }
    

    知道他们的答案了吗?不知道的话,看看我标出的执行顺序吧。

    package com;
    class A{   
        //3
        public A()  {
            a1();
        } 
    
        public void a1()    {
            System.out.println("A-a1");
        }
    }
     
    
    public class B extends A{
        int bb = 0;    //2
    
        public B()   {
            //5
            bb = 1000;
        }
    
        //4
        public void a1()   {
            System.out.println("bb is " + bb);
            System.out.println("B-a1");
        }
        public static void main(String[] args)  {
            //1
            new B();    
    }}

    展开全文
  • 第十四题: 以下代码输出结果是?

    千次阅读 2019-11-14 15:54:27
    以下代码输出结果是? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class B { public static B t1 = new B(); .....

    第十四题:

    以下代码的输出结果是?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    public class B

    {

        public static B t1 = new B();

        public static B t2 = new B();

        {

            System.out.println("构造块");

        }

        static

        {

            System.out.println("静态块");

        }

        public static void main(String[] args)

        {

            B t = new B();

        }

    }

     

    A 静态块 构造块 构造块 构造块
    B 构造块 静态块 构造块 构造块
    C 构造块 构造块 静态块 构造块
    D:构造块 构造块 构造块 静态块

    懵逼树上懵逼果,懵逼树下你和我

    首先看到这道题,我就想着那不是先静态代码块先执行吗

    话不多说,直接跑代码

    public class B
    
    {
    
        public static B t1 = new B();
    
        public static B t2 = new B();
    
        {
    
            System.out.println("构造块");
    
        }
    
        static
    
        {
    
            System.out.println("静态块");
    
        }
    
        public static void main(String[] args)
    
        {
    
            B t = new B();
    
        }
    
    }

    运行结果

    接着我们看看大家的评论


    开始时JVM加载B.class,对所有的静态成员进行声明,t1 t2被初始化为默认值,为null,又因为t1 t2需要被显式初始化,所以对t1进行显式初始化,初始化代码块→构造函数(没有就是调用默认的构造函数),咦!静态代码块咋不初始化?因为在开始时已经对static部分进行了初始化,虽然只对static变量进行了初始化,但在初始化t1时也不会再执行static块了,因为JVM认为这是第二次加载类B了,所以static会在t1初始化时被忽略掉,所以直接初始化非static部分,也就是构造块部分(输出''构造块'')接着构造函数(无输出)。接着对t2进行初始化过程同t1相同(输出'构造块'),此时就对所有的static变量都完成了初始化,接着就执行static块部分(输出'静态块'),接着执行,main方法,同样也,new了对象,调用构造函数输出('构造块')

    最后答案选择C

    文章仅个人理解,来在各大网站。如有不合理之处,欢迎吐槽。

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期科技领域知识)

    歌谣带你看java面试题

    展开全文
  • 以下代码输出结果是什么?

    千次阅读 2017-07-27 17:17:06
    本来是要调用C类的GetData() ,C中未定义,故调用B中的,但是B中也为定义,故调用A中的doGetData() ,因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1. ...

    #include<iostream>
    using namespace std;
    class A{
    	protected:
    		int a;
    	public:
    		A(int data=0)
    		{
    			a=data;
    		}
    		int GetData()
    		{
    			return doGetData();
    		}
    		virtual int doGetData()
    		{
    			return a;
    		}
    };
    
    class B:public A
    {
    	protected:
    		int a;
    	public:
    		B(int data=1)
    		{
    			a=data;
    		}
    	    int doGetData()
    		{
    			return a;
    		}
    };
    
    
    class C:public B
    {
    	protected:
    		int a;
    	public:
    		C(int data=2)
    		{
    			a=data;
    		}
    };
    
    int main()
    {
    	C c(10);
    	cout<<c.GetData()<<endl;
    	cout<<c.A::GetData()<<endl;
    	cout<<c.B::GetData()<<endl;
    	cout<<c.C::GetData()<<endl;
    	cout<<c.doGetData()<<endl;
    	cout<<c.A::doGetData()<<endl;
    	cout<<c.B::doGetData()<<endl;
    	cout<<c.C::doGetData()<<endl;
    	
    	return 0;
    }


    cout<<c.GetData()<<endl;
    本来是要调用C类的GetData() ,C中未定义,故调用B中的,但是B中也为定义,故调用A中的doGetData() ,因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1.

    cout<<c.A::GetData()<<endl;
    因为A中的doGetData() 是虚函数,又因为C类中未重定义该接口,所以调用B类中的doGetData(),故输出1.

    cout<<c.B::GetData()<<endl;
    肯定返回1了。

    cout<<c.C::GetData()<<endl;
    因为C类中未重定义GetData(),故调用从B继承来的GetData(),但是B类也未定义,所以调用A中的GetData(),因为A中的doGetData() 是虚函数,所以调用B类中的doGetData(),而B类的doGetData() 返回B::a,故输出1.

    cout<<c.doGetData()<<endl;
    肯定是B类的返回值1了。

    cout<<c.A::doGetData()<<endl;
    因为直接调用了A的doGetData(),所以输出为0.

    cout<<c.B::doGetData()<<endl;
    因为直接调用了B的doGetData(),所以输出为1.

    cout<<c.C::doGetData()<<endl;
    因为C类中未重新定义该接口,所以调用B类中的doGetData(),故输出为1.





    展开全文
  • 2.以下代码执行后输出结果为( )

    千次阅读 2019-05-13 21:10:24
    以下代码执行后输出结果为( ) public class Test { public static void main(String[] args) { System.out.println("return value of getValue(): " + getValue()); } public static int getValu...

    以下代码执行后输出结果为( )

    public class Test {
        public static void main(String[] args) {
            System.out.println("return value of getValue(): " +
            getValue());
        }
         public static int getValue() {
             try {
                 return 0;
             } finally {
                 return 1;
             }
         }
     }
    A.return value of getValue(): 1
    B.return value of getValue(): 0
    C.return value of getValue(): 0return value of getValue(): 1
    D.return value of getValue(): 1return value of getValue(): 0

    本题选A。

    根据官方的JVM规范:
    如果try语句里有return,返回的是try语句块中变量值。
    详细执行过程如下:

    1. 如果有返回值,就把返回值保存到局部变量中;
    2. 执行jsr指令跳到finally语句里执行;
    3. 执行完finally语句后,返回之前保存在局部变量表里的值。

    如果try,finally语句里均有return,忽略try的return,而使用finally的return.

     

    展开全文
  • java面试题35 给定以下JAVA代码,这段代码运行后输出结果是() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...
  • 下面代码输出结果是什么?

    千次阅读 2020-04-20 22:13:47
    Try…catch…finally与直接throw的区别:try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。main方法,把抛出的RuntimeException抛给了调用者(JVM)。...
  • 以下代码执行后输出结果为() public class Test { public static Test t1=new Test(); { System.out.println("blockA"); } static { System.out.println("blockB"); } public static void main(String...
  • 以下程序输出结果是____。

    千次阅读 2017-08-01 16:27:24
    以下程序输出结果是__。class A { public: virtual void func(int val = 1) { std::cout<<"A->";} virtual void test() { func();} }; class B : public A { public: void func(int val=0
  • 以下程序的输出结果是:

    千次阅读 2018-11-21 23:31:50
    以下程序的输出结果是: #include “stdio.h” main() {char *s,*s1=“here is”,*s2=“key”; s=s1; while (*s1!=’\0’) s1++; while (*s1++!=*s2++) s2=s; while (*s2!=’\0’) s2++; printf ("%d-%d=%d\n&...
  • # 在ipython中输入以下命令,保存的python代码不包含输出 %hist -f 历史记录/history.py 2.利用logstart保存当前session历史记录到文件 # 在ipython中输入以下命令,保存的python代码包含输出 # -o: 保存输出 # -r:...
  • 以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j;j++) putchar('#'); A:无 B:###### C:# D:###
  • 两个线程并发执行以下代码,假设a是全局变量,那么以下输出_哪个是可能的?int a=1; void foo(){ ++a; printf("%d",a); }解析假设线程x和y同时执行,x和y可随时被抢占,a的初始值为1 A:3, 2 y先执行++a,a为2; y再...
  • 两个线程并发执行以下代码,假设a是全局变量,初始为1,那么以下输出______是可能的?
  • # 输入一年份,判断该年份是否是闰年并输出结果。# 注: 凡符合下面两个条件之一的年份是闰年。# 1. 能被4整除但不能被100整除。# 2. 能被400整除。year = int(input("please enter the year: "))if year % 4 == 0 ...
  • 题目(阿里笔试题):下面代码在64位Linux系统编译执行,输出结果是__。#include <stdint.h> #include <stdio.h> void print_size(int32_t array[10]){ printf("%d\n", sizeof(array)); } int main () { int...
  • PHP代码没有解释运行,而是直接将代码输出到浏览的问题可能跟个人代码风格有关;以下就是个人在工作中遇到的问题及解决方案: 图1:这是我自己写代码的风格或者习惯吧! 图2:是同事的写代码风格
  • void ss (char *s,char t) { while (*s) { if(*s==t) *s=t-‘a’+’A’; s++; } } void main() { char str1[100]=“abcddfefdbd”,c=‘d’; ss (str1,c); printf ("%s\n",str1); } ABCDDEFEDBD ...Abcd...
  • 以下程序段的输出结果为()。

    千次阅读 2020-09-13 19:46:25
    for(i=4;i>1;i–) for(j=1;j<i;j++) putchar(’#’); 答案:###### 解析:内部循环完了之后再进行外部循环,第二次外部循环的时候...putchar:c语言函数之一,作用是向终端输出一个字符,这里一共循环输出6次 ...
  • 在32位小端的机器上,如下代码输出是什么: 1 2 3 4 5 char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08};  short *pshort = (s
  • 代码整洁 vs 代码肮脏

    万次阅读 多人点赞 2019-09-16 12:05:12
    写出整洁的代码,是每个程序员的追求。《clean code》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代码;然后通过大量的刻意练习,才能真正写出整洁的代码。 WTF/min是衡量代码质量的唯一标准,...
  • 在32位小端的机器上,如下代码输出是什么:char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 ,0x07 , 0x08}; short *pshort = (short *)array; int *pint = (int *)array; int64 *pint64 = (int64 ...
  • 写了这么久代码,总认为,只要是C编译器,同一段代码总会有相同运行结果的(不考虑随机以及多线程的情况)。 但是,今天在百度知道上看到了一段代码,运行结果不同,本来打算直接说——小子,机器出问题了吧!!但是...
  • vscode runcode出错/运行无输出(python) **问题:**在安装Code Runner后run code 或点击右上角运行图标报错。 **解决办法:**在settings.json添加以下代码即可。其中&&后面为python 解析器地址
  • C++输出自身源代码--Quine

    万次阅读 2020-03-20 08:40:53
    在这道题你需要返回一个字符串,这个字符串就是你提交的代码本身。 C++类形式为: class Solution { public: string q() { } }; 0x02.解决 这其实是一个著名的Quine 程序。 官方解释: A quine is a computer...
  • 在Android Studio中 使用代码在控制台输出语句 有些情况下,不方便使用断点的方式来调试,而是希望在控制台打印输出日志,使用过Eclipse的同学都知道Java可以使用 System.out.println(""); 来在控制台打印输出日志...
  • 6习题6 输出以下的杨辉三角(要求输出10行) 代码 /*6习题6 输出以下的杨辉三角(要求输出10行)1 1 1 1 2 1 1 3 3 1 ...
  • Keras框架下输出模型中间结果

    千次阅读 2019-01-11 18:41:10
    Keras因其简洁便用被越来越多的调参工程师接受了,它具有高可读性的优势,缘于它本身对代码的模块化封装。高度模块化封装之后,很多细粒度操作就变得比较困难了,要不停地阅读它的技术document。 &amp;amp;nbsp...
  • 习题 6.6 输出以下的杨辉三角形(要求输出10行)

    万次阅读 多人点赞 2017-08-20 20:08:09
    C程序设计 (第四版) 谭浩强 习题 7.6 个人设计习题 7.6 输出以下的杨辉三角形(要求输出10行)1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 。。。代码块#include <stdio.h>main() { int a[11][11]; int ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,114,046
精华内容 445,618
关键字:

以下代码的输出结果是