网事悠悠
1995年的某个夏天,我终于弄懂了桌面上的IE是为何物,也是那个夏天我终于明白了搜狐原来不是动物,那个夏天,我上网了,在那个PC还没普及的夏天,还是小学生的我开始了这段悠悠网事。
触网是从聊天室开始的,我所第一个登陆的聊天室来自于长春信息港。那时的人还不开口闭口就老公老婆,还不#$%的满口胡言,还不男女混淆,还不刷屏盗号。男的女的谈文学谈人生谈音乐谈心情,一个轻拉衣脚对某人说的动作都会引来众人绯红的微笑。我用刚学会的智能ABC跟人讲着一个13岁小孩眼中的世界,用是或不是,好人或坏人来对待别人口中的心酸难奈。不知不觉中我的手已经能再键盘上飞舞,也是那个时候很多人对我说:“你绝非13岁的小孩子,装嫩的吧?”我只是笑,原来文字可以如此容易的装扮自己,欺骗别人。
同样在长春信息港我发现了一个叫“北国论坛”的地方,从此开始了我的论坛生涯。恍惚将近十年的时光里,我还未曾找到一个比“北国论坛”更接近文学的地方。“酒醉的探戈”“335”“阿瓦”……还有斑竹“魔女皮皮”,这些ID的背后是一群单纯而又快乐的人。醉了累了爱了伤了,他们的文字就如同是一座桥,搭载我去悉数他们心中的故事。在那我养成了在线写作与在线浏览的习惯,尽管当时拨号上网的收费不菲,可若是钱能换回那种醉心的芷香,那么钱也尽到了它最大的价值。那时我初一,把生活的碎片码成字铺到论坛上,然后等着那些如我一样的人去读去看。有的人会回复一个“!”,有的人会一声不响的走开,更多的人会用一句话来表达他们的情思,或是为我加上一颗红星,甚至回复的感言比我的原文还要长!看着那么多素不相识的人共同呼吸你的快乐亦或吐纳你的忧伤,还有什么比这更让人觉得适逸呢?初二的暑假我把自己初恋的故事连载了上去,我幻想着故事中的主人公能在某个夜里看到它,微笑着安然入睡,幻想着某一天看到她的回复,哪怕是一句早安。
2000年的某一天,“北国论坛”一声不响的消失了,带走了三年来我所有的作品,那几百个没有底稿的故事。那一刻我想,也许往事最好的归宿就是被遗忘,而网络,那个一度给我无限温暖,让我无比依赖的地方,第一次向我展示了他飘渺的背影,也是从那一刻起,我开始真正的长大。“北国论坛”消失后,我感到非常疲倦,于是不再动论坛甚至不再去长春信息港,“北国论坛”昔日的链接还摆在那,而我的心也跟着它而隐隐作痛。
我开始和网吧里的人一样聊起了QQ,我开始把网络当成一个嬉笑怒骂的风月场,当成一个把自己七十二变的花哨世界。朋友们拍着我的肩说我终于开始真正体验网络了,说罢转身继续看他的happysky。我楞在那笑的心惊肉跳,同时眼眶里含着一滴沧海桑田般的泪!
那时开始,风行一时的电脑房彻底被网吧取代了,仅有的几家也沦落倒了一小时只收一块钱的尴尬境地。长春的第一家网吧是外文书店对面的“联通新彩虹”,一小时要四十块钱可仍旧顾客盈门。后来吉大附中的后街上一下子开起来五家,我第一次去的是“华信在线”这五家网吧再一年后纷纷移址扩建,而那家“华信在线”偏偏是其中最不景气的一家。与此同时学校对面的小胡同里开了家“开元”,最后被它对门的“浪漫”竞争倒闭,而“浪漫”做大后又被临街的“泰屹”给挤垮了。又不知从何时起兴起一些像酒吧一样的网吧,其中以“鸿泰”为代表的的确繁荣了一阵子。最后议和路里开了一家“亿人”,议和了四分局一带的大小诸侯,而离学校较远的那个“网友”“星际”以及那个因“石器时代”而火红起来的被我忘记名字的网吧都随着时间自生自灭了。
等这些都折腾完了网络也早旧揭下了它神秘的面纱。而我此时也正值初三,好友白梨在这个离别在即而又纷杂繁乱的时刻做出了http://www。emengya。com,而在那个原本饱含温情的地方我偏偏遍体鳞伤。在一个近乎轮回的周折中,我明白了世间情为何物与人情纸薄。论坛,让我真正长大了,尽管它用了一个最残忍的手段。
初中的日子就这样在一个“网”字中过去了,那些在QQ上对我说过Iloveyou的女孩都被我甩进了黑名单,而惟独263信箱中那一百多封信没动。初三那一整年我都在每个周五放学后send一封E-mail给她,然后她周六会回信,我再回信,下一周亦然,直到毕业。那时的我们在学校很少说话,所以263的电子邮局成了我们唯一交流的方式,一旦哪天263的服务器出了问题我便会彻夜不眠,那段日子很苦。其实她的信中一直都不曾有过太多的暧昧,一个自己爱着同时也爱着自己但却不能在一起的故事,是多么的残酷。
初三的那个暑假我拥有了自己的个人主页,同时白梨也打理起了fuzhongxp的前身“boredom”。疗伤的方法其实很简单,我代换了过去,联立了未来,最后将回忆消元,我做到了。也是从那个假期起我丢下了“石器时代”玩上了“传奇”,可能我并不适合玩游戏,二十二级前没和别的玩家做过交易,二十五级前没出过比奇省,上线就M师傅,师傅不在旧买药去矿区,然后打怪升级,枯燥无比。
如今白梨的fuzhongxp已经做的红红火火,十一高的“华彩乐章”也终于再牛蛙那田田的努力下撑了起来,我的网事也至此悠上了一个新的高潮,总之,一切都那么波澜不惊,却让我难以平复。
电源管理芯片63T41~45a糸列可否互换?液晶电源管理芯片代换大全
VIP专享文档2015-06-075页
1200AP40 1200AP60、1203P60
200D6、203D6 DAP8A 可互代
203D6/1203P6 DAP8A
2S0680 2S0880
3S0680 3S0880
5S0765 DP104、DP704
8S0765C DP704加24V的稳压二极管
ACT4060 ZA3020LV/MP1410/MP9141
ACT4065 ZA3020/MP1580
ACT4070 ZA3030/MP1583/MP1591MP1593/MP1430
ACT6311 LT1937
ACT6906 LTC3406/AT1366/MP2104
AMC2576 LM2576
AMC2596 LM2596
AMC3100 LTC3406/AT1366/MP2104
AMC34063A AMC34063
AMC7660 AJC1564
AP8012 VIPer12A
AP8022 VIPer22A
DAP02 可用SG5841 /SG6841代换
DAP02ALSZ SG6841
DAP02ALSZ SG6841
DAP7A、DP8A 203D6、1203P6
DH321、DL321 Q100、DM0265R
DM0465R DM/CM0565R
DM0465R/DM0565R 用cm0565r代换(取掉4脚的稳压二极管)
DP104 5S0765
DP704 5S0765
DP706 5S0765
DP804 DP904
FAN7601 LAF0001
LD7552 可用SG6841代(改4脚电阻)
LD7575PS 203D6改1脚100K电阻为24K
OB2268CP OB2269CP
OB2268CP SG6841改4脚100K电阻为20-47K
OCP1451 TL1451/BA9741/SP9741/AP200
OCP2150 LTC3406/AT1366/MP2104
OCP2160 LTC3407
OCP2576 LM2576
OCP3601 MB3800
OCP5001 TL5001
OMC2596 LM2596/AP1501
PT1301 RJ9266
PT4101 AJC1648/MP3202
PT4102 LT1937/AJC1896/AP1522/RJ9271/MP1540
SG5841SZ SG6841DZ/SG6841D
SM9621 RJ9621/AJC1642
SP1937 LT1937/AJC1896/AP1522/RJ9271/MP1540
STR-G5643D STR-G5653D、STR-G8653D
TEA1507 TEA1533
TEA1530 TEA1532对应引脚功能接入
THX202H TFC719
THX203H TFC718S
TOP246Y TOP247Y
VA7910 MAX1674/75 L6920 AJC1610
VIPer12A VIPer22A
[audio01]
ICE2A165(1A/650V31W);
ICE2A265(2A/650V52W);
ICE2B0565(05A/650V23W):
ICE2B165(1A/650V31W);
ICE2B265(2A/650V52W);
ICE2A180(1A/800V29W);
ICE2A280(2A/80050W)
KA5H0365R, KA5M0365R, KA5L0365R, KA5M0365RN# u) t! u1 W1 B) R, P
KA5L0365RN, KA5H0380R, KA5M0380R, KA5L0380R
1、KA5Q1265RF/RT(大小两种体积)、KA5Q0765、FSCQ1265RT、KACQ1265RF、FSCQ0765RT、FSCQ1565Q这是一类的,这些型号的引脚功能全都一样,只是输出功率不一样。另外,它们的工作电压有不同,KA5Q1265的3脚需要20V以上的电压,才能正常工作,一般为23V;而KACQ和FSCQ的供电为18V,因此,在KACQ和FSCQ的3脚对地接有一只18V的稳压管。在检修这类电源时,通常只需备用KA5Q1265大小两种体积的即可。用KA5Q1265代换CQ系列时,把CQ的3脚18V稳压管去掉,同时短路供电支路的限流电阻(680Ω--12K)。这样不但节省了元件,而且还很耐用(个人感觉)
坂面精通家电维修中心
电话0598-
2、STR-G5663、8654、8656这类模块的工作电压为32V,当4脚的供电电压低于10V或高于375V都会使电路处于保护状态,在这类中,8656的功率最大,所以,只需备用一种8656就可以了。在这里我做一个补充,虽然9656的功率更大,引脚功能也相同
,但 是,9656的工作电压是18V,电压过低或过高都将会使电路处于保护状态。所以,当用9656代换8656时,过高的供电会使9656处于保护状态。相 反,作为应急,在29寸以下,可以暂时用8656代换9656。
3、STR-W6756、6754、6757这类模块的工作电压为18V,但由于这类模块的引脚数量不尽相同,所以,代换性
F6654F6656F6454F6456,F6658F6626 中6654可代比它小的模块,CQ1265可代0765,0565等,
STR F 6656可以直接代换STR F6654
STR G5653直接用STR G8656代换 试验成功!
FSCQ1565>1265>0765>0565
FS5Q1565>1265>0765>0565
5Q系列供电为20V,CQ系列供电为18V,5Q代换CQ系列时需拆除那个稳压二极管,短接10欧姆电阻!
STRG8656>8654>5653
STRX6756>W6756>W6754
STRX6856>W6856>W6854
KA5QSTR-GSTR-W系列电源模块
STR-S6709可以直接代换STR-S6708,
STR-S6309可以直接代换STR-S6308
STR-S6709可以直接代换STR-S6708,
STR-S6708也可以直接代换STR-S6709,资料上说STR-S6708功率小些,但是我在康佳P2982C上代换过<去年雷击高峰维修时缺配件>,现在照常使用!
1KA5Q1265RF/RT(大小两种体积)、KA5Q0765、FSCQ1265RT、
KACQ1265RF、FSCQ0765RT、FSCQ1565Q这是一类的,这些型号的
引脚功能全不一样,只是输出功率不一样。另外,它们的工作电
压也不同,KA5Q1265的3脚需要20V以上的电压,才能正常工作,
一般为23V;而KACQ和FSCQ的供电为18V,因此,在KACQ和FSCQ的
3脚对地接有一只18V的稳压管。在检修这类电源时,通常只需备
用KA5Q1265大小两种体积的即可。用KA5Q1265代换CQ系列时,把
CQ的3脚18V稳压管去掉,同时短路供电支路的限流电阻(680Ω
--12K)。这样不但节省了元件,而且个人感觉还很耐用。
2STR-G5663、8654、8656这类模块的工作电压为32V,当4脚
的供电低于10V或高于375V都会使电路处于保护状态,在这类中
,
坂面精通家电维修中心
电话0598-
8656的功率最大,所以,只需备用一种8656就可以了。在这里
我做一个补充,虽然9656的功率更大,引脚功能也相同,但是,
9656的工作电压是18V,电压过低或过高都将会使电路处于保护
状态。所以,当用9656代换8656时,过高的供电会使9656处于保
护状态。相反,作为应急,在29寸以下,可以暂时用8656代换
9656。
3STR-W6756、6754、6757这类模块的工作电压为18V,但由于
这类模块的引脚数量不尽相同,所以,代换性不强。
电源模块CQ0565可用CQ1265代换
坂面精通家电维修中心
电话0598-
LCD电源芯片代换
TEA1532A EA1532A可以直接代换 EA1532C代
换EA1532A先看8脚是空脚的外加300伏(我亲自试过的)。
EA1532A代换EA1530A只要将ea1530a的第五脚接到ea1532a原来脚位的第六脚第六脚接第七脚,第七脚接第五脚位置就OK!12348脚一样
CQ1265RT 3脚启动电压是18v 5Q1265RT 3脚需要23v电压
CQ0765RT 5Q0765RT CQ1465CQ可以直接代换
7552=SG6841
1200AP40与1200AP60 1203P60代换
SG5841与DAP02ALSZ可以用SG6841
FAN7601与LAF0001可以直接代换
EA1532A可以用DAP8A
OCP5001-TL5001直接代换
AMC3100-LTC3406/AT1366/直接代换
MP2104 OCP2150-LTC3406/直接代换
AT1366/MP2104 直接代换
ACT6906-LTC3406/AT1366/直接代换
MP2104 OCP2160-LTC3407直接代换
ACT4065-ZA3020/MP1580 直接代换
AMC2596-LM2596 OCP1451直接代换
TL1451/BA9741/SP9741/AP200直接代换
电源IC STR-G5643D G5653D G8653D 直接代换
203D6和DAP8A 直接代换
1200AP40和1200AP60直接代换
5S0765和DP104、DP704直接代换
DP804和DP904直接代换
2S0680和2S0880直接代换
BENQ 71G+ 1200AP40 直插 1200AP10 1200AP604 直接代换
TEA1507和TEA1533直接代换
三星的DP104,704,804可以用5S0765代换,DP904不能用任何块代换
电源IC(ZSTR-G5643D G5653D G8653D 直接代换
203D6/1203P6和DAP8A 直接代换 DM0465R。DM0565R用cm0565r代换成功 (取掉4脚的稳压二极管)
LD7575PS 可用203D6代(没试过,只是1脚的对地电阻不同,改了就可了)
LD7552可用SG6841代(不过要改4脚电阻,)
DAP02可用SG5841 。SG6841代换: EA1530 EA1532
TOP246Y可用TOP247Y代
1200AP40和1200AP60直接换,我用1200AP40代过1203P605S0765和DP104、DP704、DP706直接代换
我用DP704代过8S0765C不过加了个24V的稳压二极管
DP804和DP904直接代换
2S0680和2S0880直接代换
TEA1507和TEA1533直接代换 2269和SG6841SZ引脚一样,但是4脚和5脚外接的振荡电阻不同
BENQ 71G+
1200AP40 直插
1200AP10 1200AP60AOC 712SI
EA1532A贴
三星型号忘记
DM0565R:
优派型号忘记
TOP245YN
LG型号忘记
FAN7601利浦170s6
dap02alsz 贴片
LG型号忘记
FAN7601
可以用LAF0001代飞利浦170s6
dap02alsz=sg6841UHP17驱动高压电源全一体
SG5841SZ贴片,可用SG6841DZ 代用。联想后来出的像IBM的 17的,SG6841DZ 可用SG6841D代用(我亲自试过的)三星型号忘记
DM0565R(有好几款都采用这一个PWM IC的
三星型号忘记
DM0465R
飞利浦170c7
EA1532A贴片
200D6、203D6、DAP8A 三种可以代用优派VA1703WB
ld7552bps 贴片其他我知道的常用型号有
SG6841DZ 贴片 很多机器上用到
SG5841SZ 贴片 用SG6841DZ可以代用,PDAP8A 与203D6可代用(我没试过)
还有LD7575可用203D6代用,只是1脚的对地电阻不同,LD7575是100K,203D6是241K,LP7552可用SG6841代用
液晶品牌与型号 电源管理芯片型号与封装 可代换型号
BENQ 71G+ 1200AP40 直插 1200AP10 1200AP604
AOC 712SI EA1
532A贴片,
三星型号忘记 DM0565R
优派型号忘记 TOP245YN
LG型号忘记 FAN7601
飞利浦170s6 dap02alsz 贴片
LG型号忘记 FAN7601 可以用LAF0001代
飞利浦170s6 dap02alsz=sg6841
美格WB9D7575PS
清华同方 XP911WD7575PS4
联想LXM -WL19AH LXM-WL19BH D7575PS(早期有的用:NCP1203D6)
联想LXM-17CH:1203D6
方正17寸:1203D6与LD7575PS
方正19寸:LD7575PS
BenQ: FP94VW FP73G FP71G+S FP71G+G FP71GX等都是用:1200AP40
(南京同创):LAF001与STR W6252 。
LG 19寸:LAF001
联想L193(福建-捷联代工):NCP1203D6
PHILIPS 170S5FAN7601)
PHILIPS 15寸(老产品):(FAN7601)
FLG型号忘记 FAN7601 可以用LAF0001代
其他我知道的常用型号有
SG6841DZ 贴片 很多机器上用到
SG5841SZ 贴片 用SG6841DZ可以代用
DAP8A 与203D6可代用
还有LD7575可用203D6代用,只是1脚的对地电阻不同,LD7575是100K,203D6是241K,LP7552可用SG6841代用
E203D6 NCP1203D60R2 NCP1203D60R2G和DAP8A 直接代换
DAP02ALSZ与SG6841S可以互换
1200AP40和1200AP60直接代换
S0765和DP104、DP704直接代换
DP804和DP904直接代换
2S0680和2S0880直接代换
TEA1507和TEA1533直接代换
DAP8A,DAP7A,LD7575,203D6,203X6,200D6可以直接代换
203d6是16v工作电压,而7575是30v ,代用要改启动电阻,
OB2268,OB2269,DAP02,DAP02,SG5841,SG6841可以直接代换
1200AP40,1200AP60,1203P60,1203AP10可以直接代换
DM0465R,CM0565R,DM0565R可以直接代换
TOP246Y,TOP247Y可以直接代换
LD7535兼容 SG6848 (6849) / SG5701 / SG5848 /LD7535 (7550) / OB2262 (2263) / OB2278(2279)RS2051
LD7575和NCP1203、NCP1200 OB2268 SG5841 LD7552 OB2269 OB2268 RS2042
CR6860兼容ACT30,
CR6853兼容OB2263,
CR6201兼容THX201,TFC718;
CR6202兼容THX202,TFC719;
CR6203兼容THX203,TFC718S。
CR6848兼容SG6848/6849/5701/5848,OB2262/2263,LD7550/7535
CR6850兼容SG6848/6849/5701/5848,OB2262/2263,LD7550/7535
CR6842兼容SG6841/6842,OB2268/2269/2278/2279,LD7552
用FSQ0765代用FSQ0465,需把IC⑤脚18K改为12K
FSCQ1265RF系列厚膜开关稳压电源电路
引脚功能及维修参数:
引脚序号 功能 直流电压(V) 对地电阻(KΩ) 备注
正常开机 待机 红笔接热地 黑笔接热地
1 漏极输出 265 295 >800 65 热地
2 接热地 0 0 0 0 热地
3 供电电压 255 115 600 56 热地
4 稳压控制/过流保护 10~12 02 >1000 86 热地
5 同步/自锁 5
6~58 03 04 04 热地
继续阅读
开通VIP,免费阅读本文
Vicor电源模块-功率高,效率高,输出稳定
Vicor电源模块,DCM支持所有标准行业输入电压的高功率转换器Vicor电源模块成功应用于全球大型高性能运算服务器
vicorpowercn
广告
电源管理芯片现货,正品低价,免费样品,选型指南
RENESAS瑞萨官方代理店,电源管理芯片,全系列产品,型号齐全,正品保证,样品申请,小量快购,中文资料,应用方案,专业FAE支持,可定制,供应链保障
sekormcom
广告
VIP精品内容大礼包
试卷课件免费下载
立即领取
精品课程
深度解读:华为阿里争相推行的阿米巴模式
限时特惠
立即抢购
24节课
中国书法技法大全 隶书
¥69
北京中视智酷文化传媒有限公司
11节课
中国书法技法大全 篆书
¥69
北京中视智酷文化传媒有限公司
29节课
中国书法技法大全楷书
¥69
北京中视智酷文化传媒有限公司
版权说明: 本文档由用户提供并上传,若内容存在侵权,请进行举报或认领
文档
股东必备股权类合同范 立即查看
常用的开关电源芯片大全
DC-DC电源管理芯片的测试
常见液晶驱动芯片详解
三极管参数大全 型号 功能 代换
IC芯片命名规则大全
液晶行业专业术语大全
部分液晶电源管理芯片代换
液晶显示器常用 IC电源管理芯片的代换
液晶电源的电源管理芯片集
液晶电源芯片代换
为你推荐
博大电源模块lcd30
创维5643电源芯片代换
Vicor电源模块-功率高,效率高,输出稳定
vicorpowercn
提供的广告
查看详情
设计模式(Design Patterns)
——可复用面向对象软件的基础
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。用一个来整体描述一下:
二、设计模式的六大原则
1、开闭原则(Open Close Principle)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
2、里氏代换原则(Liskov Substitution Principle)
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。
里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。
5、迪米特法则(最少知道原则)(Demeter Principle)
为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。
三、Java的23中设计模式
从这一块开始,我们详细介绍Java中23种设计模式的概念,应用场景等情况,并结合他们的特点及设计模式的原则进行分析。
1、工厂方法模式(Factory Method)
工厂方法模式分为三种:
11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:
举例如下:(我们举一个发送邮件和短信的例子)
首先,创建二者的共同接口:
[java]view plaincopy publicinterfaceSender{publicvoidSend();}
其次,创建实现类:
[java]view plaincopy publicclassMailSenderimplementsSender{@OverridepublicvoidSend(){Systemoutprintln("thisismailsender!");}} [java]view plaincopy publicclassSmsSenderimplementsSender{@OverridepublicvoidSend(){Systemoutprintln("thisissmssender!");}}
最后,建工厂类:
[java]view plaincopy publicclassSendFactory{publicSenderproduce(Stringtype){if("mail"equals(type)){returnnewMailSender();}elseif("sms"equals(type)){returnnewSmsSender();}else{Systemoutprintln("请输入正确的类型!");returnnull;}}}
我们来测试下:
publicclassFactoryTest{publicstaticvoidmain(String[]args){SendFactoryfactory=newSendFactory();Sendersender=factoryproduce("sms");senderSend();}}
输出:this is sms sender!
22、多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。关系图:
将上面的代码做下修改,改动下SendFactory类就行,如下:
[java]view plaincopypublicclassSendFactory{publicSenderproduceMail(){ returnnewMailSender();}publicSenderproduceSms(){returnnewSmsSender();}}
测试类如下:
[java]view plaincopy publicclassFactoryTest{publicstaticvoidmain(String[]args){SendFactoryfactory=newSendFactory();Sendersender=factoryproduceMail();senderSend();}}
输出:this is mailsender!
33、静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。
[java]view plaincopy publicclassSendFactory{publicstaticSenderproduceMail(){returnnewMailSender();}publicstaticSenderproduceSms(){returnnewSmsSender();}} [java]view plaincopy publicclassFactoryTest{publicstaticvoidmain(String[]args){Sendersender=SendFactoryproduceMail();senderSend();}}
输出:this is mailsender!
总体来说,工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式。
2、抽象工厂模式(Abstract Factory)
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。
请看例子:
[java]view plaincopy publicinterfaceSender{publicvoidSend();}
两个实现类:
[java]view plaincopy publicclassMailSenderimplementsSender{@OverridepublicvoidSend(){Systemoutprintln("thisismailsender!");}} [java]view plaincopy publicclassSmsSenderimplementsSender{@OverridepublicvoidSend(){Systemoutprintln("thisissmssender!");}}
两个工厂类:
[java]view plaincopy publicclassSendMailFactoryimplementsProvider{@OverridepublicSenderproduce(){returnnewMailSender();}} [java]view plaincopy publicclassSendSmsFactoryimplementsProvider{@OverridepublicSenderproduce(){returnnewSmsSender();}}
在提供一个接口:
[java]view plaincopy publicinterfaceProvider{publicSenderproduce();}
测试类:
[java]view plaincopy publicclassTest{publicstaticvoidmain(String[]args){Providerprovider=newSendMailFactory();Sendersender=providerproduce();senderSend();}}
其实这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!
3、单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。
首先我们写一个简单的单例类:
[java]view plaincopy publicclassSingleton{/持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载/privatestaticSingletoninstance=null;/私有构造方法,防止被实例化/privateSingleton(){}/静态工程方法,创建实例/publicstaticSingletongetInstance(){if(instance==null){instance=newSingleton();}returninstance;}/如果该对象被用于序列化,可以保证对象在序列化前后保持一致/publicObjectreadResolve(){returninstance;}}
这个类可以满足基本要求,但是,像这样毫无线程安全保护的类,如果我们把它放入多线程的环境下,肯定就会出现问题了,如何解决?我们首先会想到对getInstance方法加synchronized关键字,如下:
[java]view plaincopy publicstaticsynchronizedSingletongetInstance(){if(instance==null){instance=newSingleton();}returninstance;}
但是,synchronized关键字锁住的是这个对象,这样的用法,在性能上会有所下降,因为每次调用getInstance(),都要对对象上锁,事实上,只有在第一次创建对象的时候需要加锁,之后就不需要了,所以,这个地方需要改进。我们改成下面这个:
[java]view plaincopy publicstaticSingletongetInstance(){if(instance==null){synchronized(instance){if(instance==null){instance=newSingleton();}}}returninstance;}
似乎解决了之前提到的问题,将synchronized关键字加在了内部,也就是说当调用的时候是不需要加锁的,只有在instance为null,并创建对象的时候才需要加锁,性能有一定的提升。但是,这样的情况,还是有可能有问题的,看下面的情况:在Java指令中创建对象和赋值操作是分开进行的,也就是说instance = new Singleton();语句是分两步执行的。但是JVM并不保证这两个操作的先后顺序,也就是说有可能JVM会为新的Singleton实例分配空间,然后直接赋值给instance成员,然后再去初始化这个Singleton实例。这样就可能出错了,我们以A、B两个线程为例:
a>A、B线程同时进入了第一个if判断
b>A首先进入synchronized块,由于instance为null,所以它执行instance = new Singleton();
c>由于JVM内部的优化机制,JVM先画出了一些分配给Singleton实例的空白内存,并赋值给instance成员(注意此时JVM没有开始初始化这个实例),然后A离开了synchronized块。
d>B进入synchronized块,由于instance此时不是null,因此它马上离开了synchronized块并将结果返回给调用该方法的程序。
e>此时B线程打算使用Singleton实例,却发现它没有被初始化,于是错误发生了。
所以程序还是有可能发生错误,其实程序在运行过程是很复杂的,从这点我们就可以看出,尤其是在写多线程环境下的程序更有难度,有挑战性。我们对该程序做进一步优化:
[java]view plaincopy privatestaticclassSingletonFactory{privatestaticSingletoninstance=newSingleton();}publicstaticSingletongetInstance(){returnSingletonFactoryinstance;}
实际情况是,单例模式使用内部类来维护单例的实现,JVM内部的机制能够保证当一个类被加载的时候,这个类的加载过程是线程互斥的。这样当我们第一次调用getInstance的时候,JVM能够帮我们保证instance只被创建一次,并且会保证把赋值给instance的内存初始化完毕,这样我们就不用担心上面的问题。同时该方法也只会在第一次调用的时候使用互斥机制,这样就解决了低性能问题。这样我们暂时总结一个完美的单例模式:
[java]view plaincopy publicclassSingleton{/私有构造方法,防止被实例化/privateSingleton(){}/此处使用一个内部类来维护单例/privatestaticclassSingletonFactory{privatestaticSingletoninstance=newSingleton();}/获取实例/publicstaticSingletongetInstance(){returnSingletonFactoryinstance;}/如果该对象被用于序列化,可以保证对象在序列化前后保持一致/publicObjectreadResolve(){returngetInstance();}}
其实说它完美,也不一定,如果在构造函数中抛出异常,实例将永远得不到创建,也会出错。所以说,十分完美的东西是没有的,我们只能根据实际情况,选择最适合自己应用场景的实现方法。也有人这样实现:因为我们只需要在创建类的时候进行同步,所以只要将创建和getInstance()分开,单独为创建加synchronized关键字,也是可以的:
[java]view plaincopy publicclassSingletonTest{privatestaticSingletonTestinstance=null;privateSingletonTest(){}privatestaticsynchronizedvoidsyncInit(){if(instance==null){instance=newSingletonTest();}}publicstaticSingletonTestgetInstance(){if(instance==null){syncInit();}returninstance;}}
考虑性能的话,整个程序只需创建一次实例,所以性能也不会有什么影响。
补充:采用"影子实例"的办法为单例对象的属性同步更新
[java]view plaincopy publicclassSingletonTest{privatestaticSingletonTestinstance=null;privateVectorproperties=null;publicVectorgetProperties(){returnproperties;}privateSingletonTest(){}privatestaticsynchronizedvoidsyncInit(){if(instance==null){instance=newSingletonTest();}}publicstaticSingletonTestgetInstance(){if(instance==null){syncInit();}returninstance;}publicvoidupdateProperties(){SingletonTestshadow=newSingletonTest();properties=shadowgetProperties();}}
通过单例模式的学习告诉我们:
1、单例模式理解起来简单,但是具体实现起来还是有一定的难度。
2、synchronized关键字锁定的是对象,在用的时候,一定要在恰当的地方使用(注意需要使用锁的对象和过程,可能有的时候并不是整个对象及整个过程都需要锁)。
到这儿,单例模式基本已经讲完了,结尾处,笔者突然想到另一个问题,就是采用类的静态方法,实现单例模式的效果,也是可行的,此处二者有什么不同?
首先,静态类不能实现接口。(从类的角度说是可以的,但是那样就破坏了静态了。因为接口中不允许有static修饰的方法,所以即使实现了也是非静态的)
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化。之所以延迟加载,是因为有些类比较庞大,所以延迟加载有助于提升性能。
再次,单例类可以被继承,他的方法可以被覆写。但是静态类内部方法都是static,无法被覆写。
最后一点,单例类比较灵活,毕竟从实现上只是一个普通的Java类,只要满足单例的基本需求,你可以在里面随心所欲的实现一些其它功能,但是静态类不行。从上面这些概括中,基本可以看出二者的区别,但是,从另一方面讲,我们上面最后实现的那个单例模式,内部就是用一个静态类来实现的,所以,二者有很大的关联,只是我们考虑问题的层面不同罢了。两种思想的结合,才能造就出完美的解决方案,就像HashMap采用数组+链表来实现一样,其实生活中很多事情都是这样,单用不同的方法来处理问题,总是有优点也有缺点,最完美的方法是,结合各个方法的优点,才能最好的解决问题!
4、建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:
还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下: [java]view plaincopy publicclassBuilder{privateList list=newArrayList ();publicvoidproduceMailSender(intcount){for(inti=0;i0){pos--;}returncollectionget(pos);}@OverridepublicObjectnext(){if(pos
1、3DES算法
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
3DES解密过程为:M=Dk1(EK2(Dk3(C)))
2、Blowfish算法
BlowFish算法用来加密64Bit长度的字符串。
BlowFish算法使用两个“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。
BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密。
分别说明如下:
密钥预处理:
BlowFish算法的源密钥——pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:
1)用sbox填充key_sbox
2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key可以循环使用。
比如说:选的key是"abcdefghijklmn"。则异或过程为:
key_pbox[0]=pbox[0]abcdefgh;
key_pbox[1]=pbox[1]ijklmnab;
…………
…………
如此循环,直到key_pbox填充完毕。
3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和key_pbox[1],i=0;
4)用BF_En加密替换后的key_pbox,key_pbox[i+1],用输出替代key_pbox[i+2]和key_pbox[i+3];
5)i+2,继续第4步,直到key_pbox全部被替换;
6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用类似的方法,替换key_sbox信息加密。
信息加密就是用函数把待加密信息x分成32位的两部分:xL,xRBF_En对输入信息进行变换。
3、RC5算法
RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。
扩展资料:
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由于中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。
对密钥选项1的已知最佳攻击需要约2组已知明文,2部,2次DES加密以及2位内存(该论文提到了时间和内存的其它分配方案)。
这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约2次加密操作找到2个目标密钥中的一个。
-3DES
-BLOWFISH
-RC5
蓝屏代码stop 0X00000074表明注册表有错误。如果系统模块被破坏可能会发生这种错误。如果一些注册表的关键键值缺失,这种错误也可能会发生。这可能是手工编辑注册表的结果。如果安装在计算机中的一个或多个内存条损坏或者内存配置不兼容,则会发生此问题。
解决方法:
1、如果蓝屏前安装了软件或驱动,进安全模式下,把新安装的软件及驱动卸载或删除后,再开机试下。
2、如果删除后仍然蓝屏,或根本进不了安全模式,则重新安装操作系统试下。
3、重装系统后仍然蓝屏,则考虑硬件问题。首先将电脑里面的灰尘彻底清理一下,将内存、显卡、PCI插槽上的设备拆下,用橡皮探试一下。因为灰尘引起温度过高、接触不良等也会造成蓝屏;同时将CPU、显卡等风扇拆下,更换新的散热硅胶;另外检查下所有硬件的温度是否正常。
4、如果清洁电脑后还是不行,则用替换法检查电脑硬件,如果没有可替换的硬件或不熟悉电脑,建议找专业维修人员处理。
5、硬件替换按以下顺序进行排查:内存、硬盘、显卡、主板、电源、其它硬件、CPU。
6、采用替换法时最好拔掉电脑上所有连接线及开机不需要用到的硬件,只保留电源、主板、CPU、内存、显卡、硬盘、显示器。
7、排查时注意检查硬件上面是否有焦味,硬件上的电容是否有鼓包现象。
提示:替换法检查硬件问题多用于有多余硬件可替换、故障点不好直接判断的情况下,需要对电脑硬件有一定了解,如果不熟悉硬件,不建议用替换法检查硬件故障。
此故障大部份是U盘接口电路部份引起的。
1、首先换一根USB延长线或换个USB口,排除掉U盘之外的因素。
2、摇动U盘的插头,看是否有松动。
3、拆开U盘外壳,把USB接口的四个脚补焊一遍。
4、故障依旧。我们知道在数据线到主控之间有两个起保护作用的电阻(如下图),用万用表测量其中的一个开路。
5、从坏的主控板上拆下一个27欧的电阻换上,故障排除。
总结:
U盘的故障一般都较容易修,应急情况也可以直接短接此电阻。
维修例二:
一Reidio牌128M的U盘插入电脑USB孔时提示无法识别的设备。此U盘为ChipsBank方案。
备注:图中为导线焊上二极管临时代用,维修时应将三脚IC折下来,将二极管直接焊在电路板上。
有配件的人员应使用规格相同的稳压IC换上。
检修过程:
1、根据故障分析,可以排除是软件的问题。
2、拆开U盘,首先看晶振、闪存等有无虚焊
3、用备用的12M晶振代换上,故障依旧
4、用万用表测USB接口的V+电压有5V正常
5、再测稳压IC的输入端5V也正常,测稳压IC的输出端只有13V,正常应该为33V左右
6、由于芯片没有发热现像,判断稳压IC损坏。
7、手头刚好没有这种稳压IC,应急用一个二极管并在三脚IC的输入端和输出端之间,如图。
8、故障排除。
无法识别的USB设备:Unknown USB Device 很多人都遇到过的一个问题,所谓“无法识别”对于操作系统来说,或者是驱动程度有问题,或者是USB设备出现了问题,或者是计算机与USB设备连接出现了故障,解决问题的方法也是从这几处着手。
对于不同的设备会有不同的处理方法,了解USB设备正常工作需要的条件以及一些可能影响USB设备正常工作的因素,会有助于解决问题。
下面是保证USB设备可以正常工作的一些条件:(1)USB设备本身没有任何问题——可以通过在其它计算机上进行测试,保证能正常工作;(2)USB接口没有任何问题——可以通过连接其它的USB设备在此接口上进行测试;(3)USB设备的驱动程序已经正确安装,如果有详细说明书的USB设备,一定要仔细查看相应的说明文件,按照说明安装相应的驱动程序;Windows 2000以后的操作系统以识别大部分的USB设备,Windows 98以前的操作系统可以安装USB设备自带的驱动或者安装通用的USB设备驱动程序。
下面是可能影响USB设备正常工作的一些情形:(1)USB设备已经出现了故障(同样的条件以前可以正常使用,现在出现了问题);(2)USB接口有问题,比如aUSB前置接口极性接反,这可能导致USB设备烧毁,所以一定要仔细看一下主板说明书,防止接错;b接口电压不足,一些移动硬盘常会有这样的问题,主机后面的USB接口往往会比前置USB接口更可靠一些;c主板与操作系统兼容性有问题,安装最新的主板驱动程序可以最大程度地避免此类问题;dBios中禁止了USB设备,可能通过更改BIOS中相应的设置来解决;e操作系统问题,可以通过重装操作系统来解决;(3)USB驱动程序有问题:如果怀疑驱动有问题时,应当保证安装了该设备相应型号的最新驱动程序或确认操作系统不需要安装特别的驱动,最新的驱动可以通过从网上设备生产商的主页上去查找。
当USB设备出现问题时,除了根据实际的错误提示信息寻找解决方案以外,还要仔细查看USB设备的具体品牌、型号、生产商,在搜索结果时包括这些信息,可以更容易地找到对应的解决方法。
象有些插拔费劲需要经常处于连接状态的USB设备暂时出现故障,操作系统不停地出现“无法识别的USB设备”这样恼人的提示时,可以在设备管理器中暂时关闭通用串行总线控制器中相应的USB端口或者禁止相应的USB设备。
0条评论