快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

java运行代码结果 java程序代码运行结果

java下列代码的执行结果是

false,true

成都网站建设、成都做网站服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联公司把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!

第一个为false是因为”==“比较的是两个应用,他们在内存中的地址不一样,所以为false

第二个为true 是因为String类里重写了equals方法,只要两个对象的内容一样,就返回true

谁可以告诉我这段Java代码的运行结果是什么?请说明原因

/*

*一般情况不建议这么使用类对象

*要这么做可以,场景只有一种内部类

*这样的做法违反数据封装设计原则,极少情况会这么用。

*如果非得这么用,设计成私有内部类,这么用少get、set方法,效率会稍有提高

*因为类权限声明符为缺省,因此此类的访问权限为同包内的其它类可使用

*/

class ValHold{

//实例成员变量i初始化为10

public int i = 10;

}

public class Obparm {

public static void main(String[] args) {

/*

*申明int类型变量z,0开头代表8进制表示方法

*换算成10进制整数是:13

*此变量你的整个程序中都未使用到

*/

int z = 015;

/*

*实例化对象本省,因为main方法是程序入口点,静态方法,

*此方法中能直接访问的成员变量必须申明为静态的

*能访问的成员方法,也必须申明为静态的

*此处是为了调用实例方法amethod,所以必须先实例化对象

*/

Obparm o = new Obparm();

/*

*调用Obparm类实例O的amethod方法

*/

o.amethod();

}

public void amethod(){

//申明变量i,栈级别变量,只在当前运行的方法块内生效

int i = 99;

//申明并初始化类ValHold实例变量v,栈级别变量,只在当前运行的方法块内生效

ValHold v = new ValHold();

//修改实例v的成员变量i为30

v.i=30;

//调用Obparm 实例方法,隐含实例指针this,代表实例自身

//此处完整的写法是,this.another(v,i);但this关键字可省略

another(v,i);

System.out.print(v.i);

}

public void another(ValHold v,int i){

//修改实参i

i = 0;

//修改v实例变量i的值为20,实参引用的对象变量i也会被修改

v.i = 20;

//重新实例化一个ValHold对象

ValHold vh = new ValHold();

//修改实参v引用vh,或者让v的指针指向vh

v = vh;

//输出vh实例变量i

System.out.print(v.i);

//输出i

System.out.print(i);

}

}

/*

*********************************************************************************

从以上我做的注释,最终输出结果为:

10020

如果调用

System.out.println

输出结果是:

10

20

我不知道那个老师教你们这个的,如果对初学者,很难理解这么多内容。

他想考你们的是,代码的作用域,类方法的实参参数的传递是引用传递,实参可以当方法中的变量,修改了实参的引用,知会在方法块内生效(或者当前运行栈上生效)。

不知道你能看明白不?

*********************************************************************************

*/

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

第一行输出结果是abc:

原因是:

s.substring(1);

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

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

第二行 输出结果是false:

原因是:

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

附:

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

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

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

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

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

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

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

Java程序的运行结果?

您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。输出:5

public void add(int pInt){ //定义一个方法,参数是一个int型

pInt ++; //pInt = pInt + 1;

}

这题主要是考你参数传递的问题,int型传的是值,所以虽然pInt++后pInt=6

但没有带回去,所以i还是5非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!


网站栏目:java运行代码结果 java程序代码运行结果
本文链接:http://6mz.cn/article/hjihjo.html

其他资讯