本人怎么觉得AB都对呢!请给我个答案 谢谢。SCJP

问题描述

解决方案

解决方案二:
沙发自己做!
解决方案三:
synchronized
解决方案四:
也许他的意思是光synchronized这个方法不行要把整个MyLogger的对象都synchronized了就对了
解决方案五:
引用楼主dsds90的回复:以下我自己的看法,各位大虾指点:首先,可以确定这道题考的是线程安全问题,解决线程安全有多个方法,其中包括:1.+synchronized2.+锁3.应用线程安全的API等等.其次,关于StringBuilder和StringBuffer的区别最根本的不同在于:StringBuffer字符串变量(线程安全)StringBuilder字符串变量(非线程安全)一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃.StringBuffer要用在全局变量中对于答案A来说,虽然LOG方法加上synchronized后该方法确保了多线程问题,但无法保证LOGGER的数据安全,因为StringBuilder是不安全的.所以答案是B.
解决方案六:
LZ想一下,如果想你说的将Log方法变为synchronized的,这只是对该方法保证了同步,在一个线程执行该方法的时候,另一个线程是不能调用该方法的,但是当该线程正向StringBiulder类型的logger里append的时候,还没append完,该线程时间片用完,其他的线程可以访问,给它读写一些东西,这样你的程序不就冲突了吗。所以A不对
解决方案七:
log中并没有实际的方法,只是创建了stringbuilder的append方法,在执行voidlog时候,一直在做的是答案b的动作,而答案a一直什么也没做。
解决方案八:
其实StringBuffer和StringBuilder其实都有个字符串缓冲区,只是一个在缓冲区操作时不可更改,所以就实现了线程安全!StringBuilder则不能保证!因为在操作时可能发生此时的内部的String发生改变!!有什么不足的地方希望高手指正
解决方案九:
看StringBuffer的源码就知道用了大量的synchronized其他和StringBuilder差不多

时间: 2024-10-06 09:02:07

本人怎么觉得AB都对呢!请给我个答案 谢谢。SCJP的相关文章

mfc求助-求MFC程序制作,本人初学者,很多都不懂,希望能有大神提供样本参考。

问题描述 求MFC程序制作,本人初学者,很多都不懂,希望能有大神提供样本参考. 摇杆 主动快带动从动块 键盘WD能控制主动块左右移动菜单里面有"绘制轨迹"选项 和 "消除轨迹" 选项 绘制连杆中点的轨迹 消除轨迹 求大神给个样本参考 T.T

协议-Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教

问题描述 Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教 客户端线程:class BB1 extends Thread{ public void run() { try { System.out.println(""hahahha""); Socket client=new Socket(ipadressPORT); System.out.println(client.getPort()); mingling=&qu

ofbiz 省级联动-关于省级联动的,ofbiz省级联动搞了好几天。一点头绪都没有,请大神指教

问题描述 关于省级联动的,ofbiz省级联动搞了好几天.一点头绪都没有,请大神指教 关于省级联动的,ofbiz省级联动搞了好几天.一点头绪都没有,恶心好几天了, 请大神指教 解决方案 javascript省市联动示例

代码-本人菜鸟,刚学qt,请各位大神指点

问题描述 本人菜鸟,刚学qt,请各位大神指点 请问为什么这个没有输出呢? while (!stream.atEnd()) { message +='n'+stream.readLine(); //逐行读取文本文件的数据 } qDebug()<<message;

为什么e和c指向的不是同一个对象??请高手做出解释,谢谢。。

问题描述 publicclassStringTest{publicstaticvoidmain(String[]args){Stringa="ab";System.out.println("Stringa="ab";");Stringb="cd";System.out.println("Stringb="cd";");Stringc="abcd";Stringd=&q

java 环境变量设置-错误: 程序包net.mindview不存在?能否通过设置环境变量来解决?请各位帮忙分析,谢谢

问题描述 错误: 程序包net.mindview不存在?能否通过设置环境变量来解决?请各位帮忙分析,谢谢 //: initialization/Flower.java // Calling constructors with "this" import static net.mindview.util.Print.*; public class Flower { int petalCount = 0; String s = "initial value"; Flow

大家好,这个程序一直显示不对,请帮一下忙,谢谢!

问题描述 大家好,这个程序一直显示不对,请帮一下忙,谢谢! #include void main() { float celsius=0,True_celsius=0,True_salary=0,salary=0; printf("Enter the number of celsius>n"); scanf("%1f",&celsius); printf("Enter the number of salary>n"); sca

c语言-求大神解释C语言题,请解释详细一点,谢谢

问题描述 求大神解释C语言题,请解释详细一点,谢谢 下面的代码输出什么? #include int main(void) { int i; int a[5]; for (i = 0; i <= 5; ++i) { a[i] = -i; printf("a[%d] = %dn", i, a[i]); } return 0; } 解决方案 #include<stdio.h> void main() { int i=0; int a[5]={0,0,0,0,0}; for

javascript-各位大神看这里,有个关于js调用外部文件的小问题,请帮忙解答一下,谢谢!

问题描述 各位大神看这里,有个关于js调用外部文件的小问题,请帮忙解答一下,谢谢! 场景如下: 一个项目中,有两个html页面需要tab选项卡,效果不同,html中使用相似的结构和类名(类名可能会重复),我现在将函数写在js文件中,然后再html中添加参数调用,有没有什么办法不需要在html中调用,让js文件的函数直接运行,由于类名可能会重复,如果在外部文件直接运行两次,可能会干扰正常的效果,请问各位大神在写js效果的时候,都是怎么在外部调用的. 解决方案 js不能脱离页面单独存在的吧,可以设置