2019-10-19~2019-10-26 周分享总结 #2
Labels
daily share
Daily Share Summary
documentation
Improvements or additions to documentation
question
Further information is requested
2019-10-19~2019-10-26 周分享总结
1、分享人:邓思远 | 分享日期:2019-10-19
提问:下面调用sout(SubClass.value);输出的是什么? 为什么?
回答:
详情请参考链接
2、分享人:袁乙文 | 分享日期:2019-10-20
提问:StringBuffer、StringBuilder、String哪个是final类型的?
回答:都是final类,都不允许被继承;String类长度是不可变的,StringBuffer和StringBuilder类长度是可以改变的;
详情请参考链接
3、分享人:孙鹏翔 | 分享日期:2019-10-21
提问:final, finally, finalize的区别是什么?
回答:final用于声明属性,方法和类,表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类中的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,如关闭文件等。但是jvm不能保证此方法总被调用。
详情请参考链接
4、分享人:王增益 | 分享日期:2019-10-22
提问:可变参数是什么?
回答:可变参数关于对相同类型,但是若干个不确定蛋参数(数组都可以传)的方法。(参数类型... 参数名),函数里面可以通过foreach调用或者x.length调用。
5、分享人:姚秋鸿 | 分享日期:2019-10-23
提问:这代码序运行时有无问题?
回答:
详情请参考链接
6、分享人:袁乙文 | 分享日期:2019-10-24
提问:这代码序运行时有无问题?
回答:此问题和并发编程的可见性有关,主线程虽然修改了a.b=2,但是这个值对于子线程并不是可见的。因为他的修改只改了自己的本地内存和主内存,但是并没有强制子线程更新这个值。所以子线程的判断结果一直都是false。
7、分享人:杨兴旺 | 分享日期:2019-10-25
提问:1.volatile能使得一个非原子操作变成原子操作吗? 2.volatile是否完全具有原子性 图中的输出结果每次是否一样?
回答:不能。volatile不具有原子性,每次输出不一样。
8、分享人:宋丽 | 分享日期:2019-10-26
提问:当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
回答:要看这个方法是否为静态方法。非静态方法之间锁的是本类对象,其他方法就无法进行。如果是静态方法,进程拿到的锁和非静态的不是一个,所以静态方法间必须同步。另一个线程可以同时访问这个对象的非同步方法(非静态),但是不能同时访问同步方法。这里的同步方法指该静态方法本身和其他同步方法(静态)。
The text was updated successfully, but these errors were encountered: