“ Love is the greatest refreshment in life. ”
—— Pablo Picasso
“爱情是人生最大的慰藉。”
——巴勃罗·毕加索
“ Love is the only force capable of transforming an enemy into friend. ”
—— Martin Luther King, Jr.
2019.07.20问题及解析
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.start();
}
void start(){
Value value1 = new Value();
System.out.print(value1.b + " ");
Value value2 = change(value1);
System.out.print(value1.b + " " + value2.b);
}
Value change(Value value){
value.b = 1;
return value;
}
}
class Value{
Byte b;
}
上述代码的输出结果为?
A.null nulll 1
B.null 1 1
C.0 0 1
D.0 1 1
实例最为参数传递到方法当中时,传递的是地址,方法中修改成员值,方法执行完毕之后同样会修改实例中的成员值
作为成员变量,若不附初值则会在初始化时赋予默认值
Byte为包装类,因此初始值为null而非0
方法传递实例参数时传递的是地址
因此方法中修改其成员变量,原始实例也会受到影响
因此null值被修改为1,value2与value1指向同一地址,因此value2同样为1
输出结果null 1 1
答案选B。
2019.07.20问题
线程——多线程
public class Test {
private List<String> list = new ArrayList<>();
private synchronized void add(String str){
list.add(str);
}
private synchronized void print(){
for (String s : list) {
System.out.print(s);
}
}
public static void main(String[] args) {
Test test = new Test();
for(int i = 0; i < 2; i++){
new Thread(() -> {
test.add("a");
test.add("b");
test.add("c");
test.print();
}).start();
}
}
}
请问上述代码输出的结果可能为?
A.abcabc
B.abcabcabc
C.abcabcabcabc
D.aabbccaabbcc
E.运行异常
F.编译错误
重磅推荐
以我手写我心,有位伟人说过,
整理记录是最高效的学习方法。
在这里即可一展所学,
不仅可以与同辈交流
还可与前辈过招
技术君在这里等你哦~
这里有技术大佬们在线答疑,
这里有一大堆的编程资料,
这里有志同道合共赴编程的小伙伴。
(加微信拉你进群)
投稿要求如下:
知识点整理并写成文章。
要求段落结构清晰,
字数须大于500字,
报酬信息请联系小刀