下面java代码执行后,下面java代码执行后不能使用

以下java程序代码执行后的结果是

应该是B,

目前创新互联已为成百上千的企业提供了网站建设、域名、网页空间、网站托管、服务器租用、企业网站设计、嘉鱼网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

在java世界中,所有的对象都直接或间接是Object的子类.

编译和运行下面这段Java代码后,控制台输出的结果是?

选D ,打印结果为3

public class Test {

static {

int x = 5;//形参x 赋值为5,没有调用

}

static int x, y;//本类属性,x,y默认为0

public static void main(String args[]) {

x--;// 本类属性x-- this.x=-1

myMethod();

System.out.println(x + y + ++x);//x = this.x = 1 ,y = 0, ++x = 2

//打印结果为 3 x + y + ++x = 1+0+2 = 3

}

public static void myMethod() {

y = x++ + ++x;

// x++ = -1 , this.x = 0

// ++x = 1 , this.x = 1

//y = -1 + 1 = 0

}

}

java问题:以下代码段执行后的输出结果为( )

答案 是 -1。。

例如

5%3=2

5%-3=2

-5%3=-2

-5%-3=-2

可以认为被除数决定了余数的正负

下面一段java代码的执行结果是什么?请大神解释一下执行顺序。

程序入口 Stem stem=new Stem(3);执行Stem的有参数构造函数;

而Stem继承了Root,构造函数中有super(1);所以进入执行Root的有参数构造函数;

执行完后返回Stem继续执行;

所以,最简单的理解:先执行父类构造,再执行本类构造;声明先于构造先执行;

运行结果:

Component1 construct

Component2 construct

Component3 construct

Root constructor

Component1 construct

Component2 construct

Component3 construct

Stem constructor

以下Java代码执行结果是什么,请详细分析为什么?

第一行输出结果是abc:

原因是:

s.substring(1);

s.replace("bc", "xyz");

这两句话没有任何作用 ~因为String是属于值传递~

第二行 输出结果是false:

原因是:

用==比较字符串,是比较两个变量本身的值,即两个对象在内存中的首地址。用equals比较就会为true,equals比较的是内容是否相同。

附:

1、值传递、引用传递的区别:

值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数

2、用==比较和用equals比较的区别:

对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同.

“==”比较两个变量本身的值,即两个对象在内存中的首地址.

“equals()”比较字符串中所包含的内容是否相同.

下面这段Java代码的运行结果我不太理解求高手指点

这有啥不理解的

首先注意static int i= 47; 是静态的,说明类对象共享

第一步:t2.i=60 输出是60 这个好理解

第二步:t1.call() 之后 i的值变成3 输出就是3

第三步:又调了一次t2.call() 如果再输出i的值 还是3

要明白当你定义i为static的时候,不管你是t1还是t2去修改i的值,都是同一个i,这个和i归类所有,所有这个类的对象都使用这一份,所以不管你输出t1.i 还是t2.i 都是Test::i


名称栏目:下面java代码执行后,下面java代码执行后不能使用
网站路径:http://scyanting.com/article/hsdpjs.html