本人怎么觉得AB都对呢!请给我个答案 谢谢。SCJP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也许他的意思是光synchronized这个方法不行 要把整个MyLogger的对象都synchronized了就对了 以下我自己的看法,各位大虾指点: 首先,可以确定这道题考的是线程安全问题,解决线程安全有多个方法, 其中包括: 1.+synchronized 2.+锁 3.应用线程安全的API 等等. 其次,关于StringBuilder和StringBuffer 的区别 最根本的不同在于: StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃. StringBuffer要用在全局变量中 对于答案A来说,虽然LOG方法加上synchronized后该方法确保了多线程问题,但无法保证 LOGGER的数据安全,因为StringBuilder是不安全的.所以 答案是B . LZ想一下,如果想你说的将Log方法变为synchronized的,这只是对该方法保证了同步,在一个线程执行该方法的时候,另一个线程是不能调用该方法的,但是当该线程正向StringBiulder类型的logger里append的时候,还没append完,该线程时间片用完,其他的线程可以访问,给它读写一些东西,这样你的程序不就冲突了吗。所以A不对 log中并没有实际的方法,只是创建了stringbuilder的append方法,在执行void log时候,一直在做的是答案b的动作,而答案a一直什么也没做。 其实 StringBuffer 和StringBuilder其实都有个字符串缓冲区,只是一个 在缓冲区操作时不可更改,所以就实现了线程安全!StringBuilder则不能保证!因为在操作时 可能发生 此时的内部的String发生改变!!有什么不足的地方 希望高手指正 看StringBuffer的源码就知道 用了大量的synchronized 其他和StringBuilder差不多 各位大神,帮忙给个逻辑运算符用法的例子吧。 Java多态 必须满足的条件 短信平台 JAVA application 生成exe文件后执行,关闭程序后,但是win系统进程中却关不掉这个exe文件的进程 spring 接multipart/form-data参数问题 为什么无法以“|”作为字符串的分隔标志来使用spli来分隔字符串 简单的程序,哪里错了 jsp 点击链接 弹出另存为对话框 php运行jar包时出现的一个奇怪的现象 如何将字符串china|japan|usa|korea中的国家名取出并存进String[]里 100分求校正代码 字符类型转换问题?感谢啊
以下我自己的看法,各位大虾指点:
首先,可以确定这道题考的是线程安全问题,解决线程安全有多个方法,
其中包括: 1.+synchronized
2.+锁
3.应用线程安全的API 等等.
其次,关于StringBuilder和StringBuffer 的区别
最根本的不同在于: StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃.
StringBuffer要用在全局变量中 对于答案A来说,虽然LOG方法加上synchronized后该方法确保了多线程问题,但无法保证
LOGGER的数据安全,因为StringBuilder是不安全的.所以 答案是B .
答案b的动作,而答案a一直什么也没做。
StringBuilder则不能保证!因为在操作时 可能发生 此时的内部的String发生改变!!有什么不足的地方 希望高手指正