十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
第一行,定义了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
//求采纳
//一个随机数生成工具
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];
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对象虽然具有相同的对象名,但是其作用域均只限于定义它们的函数体内。
第一行输出结果是abc:
原因是:
s.substring(1);
s.replace("bc", "xyz");
这两句话没有任何作用 ~因为String是属于值传递~
第二行 输出结果是false:
原因是:
用==比较字符串,是比较两个变量本身的值,即两个对象在内存中的首地址。用equals比较就会为true,equals比较的是内容是否相同。
附:
1、值传递、引用传递的区别:
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数
2、用==比较和用equals比较的区别:
对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同.
“==”比较两个变量本身的值,即两个对象在内存中的首地址.
“equals()”比较字符串中所包含的内容是否相同.
根据需求,代码大致如下
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"));
}
}