专栏首页java技术大本营java练习本(2019-07-21)

java练习本(2019-07-21)

昨日翻译

“ 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

答案与解析

1.相关知识

实例最为参数传递到方法当中时,传递的是地址,方法中修改成员值,方法执行完毕之后同样会修改实例中的成员值

2.答案解析

作为成员变量,若不附初值则会在初始化时赋予默认值

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字,

报酬信息请联系小刀

本文分享自微信公众号 - java技术大本营(java-ideashare),作者:天堂

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java练习本(2019-08-08)

    B.new java.util.HashMap().put(null,null);

    微笑的小小刀
  • java练习本(2019-07-06)

    String类型会指向堆内存中的存储空间,因此当通过==对String类型进行比较时,比较的是相应变量的地址。只要指向的是同一地址则两个String类型==比较...

    微笑的小小刀
  • java练习本(2019-07-08)

    String str = new String("xiaodao");这个语句一共会创建几个String object?

    微笑的小小刀
  • 通过写Java代码来对MyEclipse进行注册

    import java.io.BufferedReader; import java.io.IOException; import java.io...

    williamwong
  • [PHP] 重回基础(IO流)

    获取FileWriter对象,new出来,构造参数:String的文件名;此时会在指定目录下创建出文件,如果已存在,将会被覆盖;这个方法会抛出IOExcepti...

    陶士涵
  • Java中实现顺序IO

    对于磁盘的读写分为两种模式,顺序IO和随机IO。 随机IO存在一个寻址的过程,所以效率比较低。而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率...

    付威
  • Tinker源码分析(一):TinkerApplication

    接入 Tinker 第一步就是改造 Application 。官方推荐是利用 @DefaultLifeCycle 动态生成 Application

    俞其荣
  • java读写file

    private static String encoding = "utf-8"; public static void readTxt(Strin...

    Ryan-Miao
  • Arrays.asList java.lang.UnsupportedOperationException 异常

    但是有一小点注意,不能对该方法返回的list进行增删操作,因为该方法返回的是Arrays的内部类 Arrays.asList源码:

    夏洛克的猫
  • 网易面试杂谈

    http://blog.csdn.net/silangquan/article/details/18013967

    bear_fish

扫码关注云+社区

领取腾讯云代金券