189 8069 5689

分析以下java代码 研究下面的java代码

求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。

第一行,定义了int类型一维数组a和二维数组b

专注于为中小企业提供成都网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业漠河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

a={10,20,30,40}

b={{1,2},{4,5,6,7}}

第二行,b[0] = a; -- b={{10,20,30,40},{4,5,6,7}

第三行,b[0][1](20) = b[1][3](7); -- b={{10,7,30,40},{4,5,6,7}}(这里是地址引用,b[0]是a,所以b[0]改了,a也被改了)

最后:b[0][3] = 40,a[1] = 7

java代码详细分析

//求采纳

//一个随机数生成工具

Random rand = new Random();

// rand.nextInt() 用工具生成一个随机的整数

//rand.nextInt() % a.length 对上边数组长度取余 应该是对 52 取余

//任何整数对52取余结果只能是 -51 ~ 51 之间的一个整数

int index = rand.nextInt() % a.length; 

//如果得到的这个整数小于0 

if(index  0){ 

//用0 减去这个数即变成其相反数

index =  0 - index;

}

//从数组a中取对应位置的字符,比如index=2    a[index] 就是 c

return a[index];

请分析下以下java代码,System.out.println(str)中指向的是哪个值

System.out.println(str)中的str指向的是main函数中定义的str, 该对象的作用于仅限于main函数本身。public static void changeStr(String str){

str="welcome";

}

这里其实默认进行了几步操作:新建一个String类型的对象str。将main函数中调用时的参数str的值(1234)复制给changeStr函数中的str对象。同时在函数体中将该对象的值改变为welcome。这两个str对象虽然具有相同的对象名,但是其作用域均只限于定义它们的函数体内。

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

第一行输出结果是abc:

原因是:

s.substring(1);

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

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

第二行 输出结果是false:

原因是:

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

附:

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

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

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

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

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

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

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

java分析以下需求,并用代码实现:

根据需求,代码大致如下

public class T2 {

public static String getPropertyGetMethodName(String property) {

if (property == null || property.trim().length() == 0)

return "";

return "get" + String.valueOf(property.charAt(0)).toUpperCase()

+ property.subSequence(1, property.length());

}

public static void main(String[] args) {

System.out.println(getPropertyGetMethodName("a"));

System.out.println(getPropertyGetMethodName("name"));

System.out.println(getPropertyGetMethodName("names"));

}

}


本文标题:分析以下java代码 研究下面的java代码
地址分享:http://jkwzsj.com/article/dodpphe.html

其他资讯