??xml version="1.0" encoding="utf-8" standalone="yes"?> 原文地址Q?a target="_blank">http://sjtu.blog.sohu.com/108202346.html ------------------------------------------软开开发篇-------------------------
代码CZQ?br />
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File("C:/Documents and Settings/Administrator/桌面/department.xls"));
jxl.Sheet rs = rwb.getSheet("部门信息"); //sheet名称Q也可以getSheet(0)Ҏ取得sheet
String sheetContext = rs.getCell(1, 0).getContents();
ServletActionContext.getRequest().setAttribute("sheetName", sheetContext);
具体操作见:
http://philos.javaeye.com/blog/90802
]]>
1.Hibernate session接口的get和loadҎ有何异同Q?
{: get不到实体对象时会q回nullQload会抛出异?br />
- get会立卛_载实体对象,load默认是gq加?br />
- get会忽略二U缓?q个没有试验q?Qload则是一U和二~存都?
2.在持久化层,对象分ؓ哪些状态?分别列出?
{?瞬时?Transient)、持久?Persistent)、脱?Detached)?
瞬时?Transient)
是对象是创徏Ӟ瞬时对象在内存孤立存在,它是携带信息的蝲体,不和数据库的数据有Q何关联关p,在Hibernate中,可通过session的save()?saveOrUpdate()Ҏ瞬时对象与数据库相兌Qƈ数据对应的插入数据库中Q此时该瞬时对象转变成持久化对象?
持久?Persistent)
是该对象在数据库中已有对应的记录Qƈ拥有一个持久化标识Q如果是用hibernate的delete()ҎQ对应的持久对象变成瞬时对象,因数据库中的对应数据已被删除Q该对象不再与数据库的记录关联?
当一个session执行close()或clear()、evict()之后Q持久对象变成脱对象,此时持久对象会变成脱对象,此时该对象虽然具有数据库识别|但它已不在hibernate持久层的理之下?
持久对象h如下特点Q?
1. 和session实例兌Q?
2. 在数据库中有与之兌的记录?
q?Detached)
当与某持久对象关联的session被关闭后Q该持久对象转变对象。当q对象被重新关联到session上时Qƈ再次转变成持久对象?
q对象拥有数据库的识别|可通过update()、saveOrUpdate(){方法,转变成持久对象?
q对象h如下特点Q?
1.本质上与瞬时对象相同Q在没有M变量引用它时QJVM会在适当的时候将它回Ӟ
2. 比瞬时对象多了一个数据库记录标识倹{?
3.lock和update区别
{? update是把一个已l更改过的脱状态的对象变成持久状?
lock是把一个没有更改过的脱状态的对象变成持久状?针对的是因Session的关?而处于脱状态的po对象(2)Q不能针对因delete而处于脱状态的po对象)
对应更改一个记录的内容Q两个的操作不同Q?
update的操作步骤是Q?
(1)属性改动后的脱的对象的修?>调用update
lock的操作步骤是Q?
(2)调用lock把未修改的对象从q状态变成持久状?->更改持久状态的对象的内?->{待flush或者手动flush
4.save 和update区别
{: save是把一个对象做Z个新的数据保? update则是把一个脱状态的对象或自由态对象(一定要和一个记录对应)更新到数据库Q其实一个是保存一个是更新Q一看都知道是有什么区别了?
5.update 和saveOrUpdate区别
{:q个是比较好理解的,思义QsaveOrUpdate基本上就是合成了save和update,而update只是update;引用hibernate reference中的一D话来解释他们的使用场合和区?
通常下面的场景会使用update()或saveOrUpdate()Q?
E序在第一个session中加载对?接着把session关闭
该对象被传递到表现?
对象发生了一些改?
该对象被q回C务逻辑层最l到持久?
E序创徏W二session调用W二个session的update()Ҏ持久q些改动
saveOrUpdate(po)做下面的?
如果该po对象已经在本session中持久化了,在本session中执行saveOrUpdate不做M?
如果savaOrUpdate(新po)与另一个与本session兌的po对象拥有相同的持久化标识(identifier)Q抛Z个异?
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.itfuture.www.po.Xtyhb#5]
saveOrUpdate如果对象没有持久化标?identifier)属性,对其调用save() Q否则update() q个对象
6.flush和update区别
{:q两个的区别好理解update操作的是在自由态或q状?因session的关闭而处于脱状?的对?/updateSQL
而flush是操作的在持久状态的对象?
默认情况下,一个持久状态的对象的改动(包含set容器Q是不需要update的,只要你更改了对象的|{待hibernate flushp动更新或保存到数据库了。hibernate flush发生在以下几U情况中Q?
1Q?调用某些查询的和手动flush(),session的关闭、SessionFactory关闭l合
get()一个对象,把对象的属性进行改?把资源关闭?
2Qtransaction commit的时候(包含了flushQ?
]]>
2、Scripting. 现在你可以在Java源代码中混入JavaScript了,q对开发原型很有有用,你也可以插入自己的脚本引擎?nbsp;
3、Database. Mustang 联合绑?nbsp;Java DB (Apache Derby). JDBC 4.0 增加了许多特性例如支持XML作ؓSQL数据cdQ更好的集成Binary Large OBjects (BLOBs) ?nbsp;Character Large OBjects (CLOBs) .
4、More Desktop APIs. GUI 开发者可以有更多的技巧来使用 SwingWorker utility Q以帮助GUI应用中的多线E? JTable 分类和过滤,以及dsplash闪屏?nbsp;
5、Monitoring and Management. Mustang d更多的诊断信息,l定了不是很知名?nbsp;memory-heap 分析工具Jhat 来查看内核导出?nbsp;
6、Compiler Access. compiler API提供~程讉KjavacQ可以实现进E内~译Q动态生Java代码?nbsp;
7、Pluggable Annotation. Java tool和framework 提供商可以定义自q annotations Qƈ且内核支持自定义annotation的插件和执行处理?nbsp;
8、Desktop Deployment. Swing拥有更好?nbsp;look-and-feel , LCD 文本呈现, 整体GUI性能的提升。Java应用E序可以和本地^台更好的集成Q例如访问^台的pȝ托盘和开始菜单。MustangJava插g技术和Java Web Start引擎l一了v来?nbsp;
9、Security. XML-数字{(XML-DSIG) APIs 用于创徏和操U|字签?; 新的Ҏ来访问本地^台的安全服务Q例如本地Microsoft Windows for secure authentication and communicationnative 的Public Key Infrastructure (PKI) ?nbsp;cryptographic servicesQ?nbsp;Java Generic Security Services (Java GSS) ?nbsp;Kerberos services for authentication, 以及讉K LDAP servers 来认证用?
10、The -ilities: 质量Q兼Ҏ,E_性?nbsp;80,000 test cases 和数百万行测试代?只是试zd中的一个方?. Mustang 的快照发布已l被下蝲15个月了,每一步中的Bug都被修复了,表现比J2SE 5q要好?
]]>
--------------------------
在我刚进软开的时?我想,q有什么啊,泡着茶写点儿JAVA的日子么?最多用JAVA?br />
个数据库,插个数据?q有?取钱存钱不也是个h帐户数据的此消彼长么?IDE会帮?br />
发现M一个细的p,而JAVA的简单语法也不会让你担心有什么疑难杂?我不知道
跟我x法一致的人有多少,但这实是我刚开始看软开的眼?安?挣闲q地方.
然则,qg能量守恒的定?你做的东西少,一定是有h帮你做的东西?JAVA?br />
?可是那是JVM做的东西?如银行,银行的系l之复杂,是Q何一个h无法惌?
然而它的真正目的不是像IBM一栯向别人出卖技?所以对人才要求很高,它只是要使成
熟的技术造福于自q色业务的推广,造福于针对业务的pȝ的开?说白?是靠业务?br />
走红而不是技术的复杂来挣?.JAVA虽简?但是要想dd学明白也?那么银行?br />
开不允许这U复杂性存?它简?但不d,那么我们p让它变得d的简?我们?br />
l箋开发自qpȝ,提供一套很Ҏ的开发^?当这套^台开发出来之?招一批能
够着茶写JAVA的hMؓ业务服务,所以这是软开表面l大安成q样一U映向的原因
,工作隑ֺ是不?但是l对不是说银行系l无?只是那些q_的工作者没有Q出水?
或者相Ҏ说比较低调而已.
回到了我不屑的着茶写JAVA,?的确,隑ֺ是不?数据库查来查?日志记来记去
,程可能够复?但不是算法的复杂,只是实现h很烦而已.但是,q些人真的有_?br />
工夫泡茶?大家喜欢用日新月异来形容当今C会的发?形势日新月异?业务需求一?br />
也是日新月异,于是他们每天都要针对各种业务需求写Z同的E序?q个时?他们?br />
x点应该从技术{向业务上?业务需求给他们的压力他们再无暇关注技术本w?所
以写JAVA的h也有写JAVA的h的难?只是业务上的J琐,向来被纯正的喜欢搞底?搞算
法的人所鄙视,的确,你的脑筋可能是很z?但是物尽其才,如果真的有这L思维,是应?br />
L一些高q东西,研究技术的创新,写JAVA,面对各种应用需?是有些埋?但是话又
说回?q样脑筋很活的h能干q样的工作么?工作再枯燥也需要有人做,他们能有耐心?br />
付这L枯燥?
现在满大街的公?没有几个是真正搞什么底层东西的,大家其实都在针对各种?br />
务做各种目,银行的开发之所以显得有些乍?主要是因?1,国企大氛?2,做出的东
西不用面寚w售压?其开发从技术含量来?q无本质区别.
所以在银行软开工作,l大部分?l对部分学计机的h,需要面临的是一个方向的
调整,需要将注意力从技术的深度转到业务的广度上?一味盲目的觉得人家的工作乏?
没技术含量是不现实的,q也是我目前一个态度的{?
技术做到最?是大同,惟有业务,才能使其中的努力变成钞票,大家(其是学计算
机的?其是ƈ不适合搞算?搞底层的?如果惌软开Q一定要有这L认识.
----------------------------------------------------------------------------
---------------------------------
------------------------------软开的压力篇----------------------------------
---------------------------
银行软开之所以有些乍?前面说过一?不用面对销售的压力,?我们做出?业务
人员得?可是真的没有压力?
我曾l听说过q样一个例?一个工行网点的客户l理,费尽了口?׃半天?br />
?说服了两个客户买基金,l于她们被说动了,坐下来填单子准备{֭?q个时?pȝ
出故障了,交易无法q行,没办?客户l理只能含着?带着她们出来,把她们指l旁边的
农行/(本h属于工行,q些时候自然偏向工?其他银行朋友勿?.q个例子,体现?br />
银行软开的一点压力吧,不论什么时?不论什么情?不论你用什么手D什么方?请你
l我保持住稳?如果pȝ?客户l理q可以陪客户聊天,可是如果宕了,什么叫所有努
力付怸?q就?
银行在全国的|点,大的C万计,的也数以千计吧,各个地方,招来的柜?那是?br />
么样素质的都?我曾听说q这L柜员,q辈子她׃q两件事,做取Ƅ交易和存Ƅ
交易,转̎怎么?不会直接转̎,先给A做提现的交易,再给B做存现的交易.内部实现怎么
别扭,但是外部的易用性你可得l我做?要不人家|点柜员是真不明?记得唐朝诗h
白居易还是王安石,每写一首诗,都要问老百姓能不能看懂,软开面的情况也很类??br />
居易王安矛_史上p么两个h,然而你要求每个软开员工每个目都能做到q样,不觉
得有压力?其是心高气傲的计算Zh,?更是不屑?可是,q是软开,如果惌来玩,
h下你的架?认真/l致的处理好所有细?
q有一个\人皆知的压力,如何保障q营pȝ的安?大家存钱的时候按完密码键?br />
?pȝ没有响应,柜员要求你重新输入你会怎么?N不是我的密码被盗?你怎么?br />
保证?q样的事情只要发?只要桶上?整个银行总部的领导层都会开始关注这个问?
甚至银监会也要监督你的处理方?q个时?软开员工w上的压力将会可惌知,一旦最
后查明是E序的问?所有一qh{?开?试/组领导/部门领导),全部要受|?q是
肯定?|银的运?得有多少加密措施来保障数据的安全,且不说技术上的加密算??br />
拿业务来_大家d个U?看那个网点工作h员得填多单?q道银行ؓ保证安全
,得下多少_֊?
很多公?常年q一个医?一个机兛_目,每做一??0几万,然后全组人出
动到现场,花几天时?解决各种安装遇到的问?保证没问题后再大安?老总请大家
吃饭.银行是怎么?做一个项?全国所有省份所有网点均要投?如果大家各自全都?br />
?人手够么?各种不一致的现象报上?是?0倍h也解决不?所以银行Y开压力最
大的时候就是投产前?所有h从老d兵全部通宵达旦地守在电脑旁,应付各种可能
问题的出?而且作ؓ高风险机?银行在投产时候遇到的问题的解?一定要?一ơ?br />
成功!如密码键盘来说,出现问题是系l不响应,马上回来改了,自己过之后没问??br />
发补?l果造成pȝ崩溃,你可以想象一下客L愤怒和不安!全中国这么大,我们不可
能到处跑q去看问?所?怎么h能保证程序在全国跑都没问?q是问题,也是巨大
的压?
银行软开的压?不来自于有没有客?而来自于客户太多,l我们系l造成的压?
无h问|的悲哀和无Ch目光如炬的质?后果都一?让你w心q.
----------------------------------------------------------------------------
-------------------------------------
------------------------------银行软开的发展篇------------------------------
-----------------------------
银行软开的发?对于学计机的h来说Q是一个不的N,也是很多人对于要?br />
要来q很犹U的问?技术和业务上的难以抉择.q有国企多少的一点特色对自己发展?br />
成的q扰.
是的,q些都是问题,值得研究,W一个关于技术和业务的问?我不惛_多说,以挣?br />
为终?那么条条大\通罗?以境界的q求为终?软开可能不属于一个好的地?毕竟
你的心高高在?不屑于一些简单的z?路是自己选的,怎么走都可以,但是有一点要注意,
软开是有一部分专搞技术的人的,只是因ؓ银行软开的出发点是针对业务做开?所以ؓ
开发提供更便捷方式的^台方面的人属于少而精的配|?因ؓ一些国企的特色,q来后可
能因为我q篇文章,一些想要进来做q_的计机?有可能被领导分配C务ؓȝ开
发部?关于q些人我惌的是,软开属于计算机研发ؓȝ企业性质单位,ZZ间的
关系,沄国企的媄?却远没有那么复杂,关于自己角色的的定位,你可以跟领导好好?br />
通你的长处和你希望干的内?一般来?领导是会多少考虑?即便不能癑ֈ百满你需
?癑ֈ之三?四十/五十{等也能满一?只会闷头做技?不会与h交流的hq是?br />
要来?q里不适合?即便你不跟领导沟?你也需要跟下面分行的h沟?交流,是工?br />
需?
有的Z?银行软开不挣?挣钱的是那些懂业务的?q里首先要明?什么样?br />
挣钱,工资是每个h都挣?要是拿这个说的话没意思了.大家说的应该是提?分红?br />
那一cMh,的确,软开挣不到那样一些钱,那些属于业务部该挣的?我觉得大家在讨论q?br />
样一些问题的时?首先要把自己摆正,软开的h,其实也就相当于一个IT公司的h,IT?br />
司的那一部分分红,软开一分钱都不会少,而且软开的钱有保?不随l济危机而v?q?br />
时福利也q可?大家在M慕业务的人拿得多的时?是否可曾惛_自己公司的销售在?br />
好一个项目的时候提成也是远胜于自己工资的呢?只要你自p转变思\,专心学业??br />
助于自己的技术优?以后M务部分挣׃不是没可?关键在于自己怎么?不能?br />
不想作出改变现状的努?又觉得h家挣钱挣那么多不公^.再者如果你实在q不了业?
那么干技?转管理或者技术做到死当技术经?M是成ؓ领导,软开领导同样挣不
钱,他们C也和HP/IBM的高地位一?也许׃q比人家的少?但是国企有国企的
利,q个是外企不能比?每个人都该知?生活提高一?抱怨就该少一?自己已经?br />
?0W一q?够花?听说别的部门一q年l奖拿了20W,全年工资50W也该把心态放q_?
不就是钱?又不是不够花,何不知长乐?(?业务部门不包括那些网点的柜员,他们
工资很少?.
软开的发展空间最大的隑֤在我看来,是这里虽然由业务指导开?但是开发量很大
,D你也不能完全放下你的技?q样技术和业务之间徘徊不定,最l会有碍人的成长,
而且他的技术ؓ了业务开发的便捷,被很好的化了最后有可能技术没学成技?业务?br />
没懂多少.q个是确?一个地方不可能十全十美.
我的意见?你一生比较想q安E的生活可以来这,你如果是一个有q求的h,q且?br />
{可以变通的?也可以来q?你如果是是一个有q求的h,q且好学的h(无论是业务还
是技?都多得让你学不完,当你学得够多有资格提前成ؓ领导?,也可以来q?一个有
q求的h,q且勤勉t实的h也可以来,有这么两cMh,技术的大牛Z要来,你应该去?br />
?GOOGLE发挥你的优势所?有追?但是没有什么魄力改变现状的?׃要来,免得一
辈子q_的现状可能让你万分苦?
q有一个难处我也提一?它终归是国企,它注重能?毕竟银行的系l不能瞎??br />
时也要求q限,q限一到才能往上升,所以不能忍的h也不要来了吧,当然也可以来了再?br />
~呵呵
最后我说一下薪资发展空间吧,现在银行软开一般待遇都不差,但是升值空?在你?br />
成ؓ领导之前涨幅不大,其实M地方都一?只有当领?工资才能有质的变?只是?br />
开要当上领导的周期比外企要长一?也不会长得不可理?大家有的总说xq?觉得E?br />
定但是又嫌工资涨得不?q就是典型的鱼和熊掌都想得到的心理了,选择了Y开,选择?br />
国企的稳?必然要放弃一部分收入的增q?既然思想不够Ua,要ؓq求奋斗一?而是
选择既有保障也要有追求的奋斗,那么你的生命里必在别的地方付出一些代?怎么?br />
都能成功,问题q是在于个h?
我简单说明一?工行软开,属于总行~制,?p么多?
]]>
代理模式的作用是Q?/p>
为其他对象提供一U代理以控制对这个对象的讉K。在某些情况下,一个客户不x者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用?/p>
代理模式一般涉及到的角色有Q?
抽象角色Q声明真实对象和代理对象的共同接口;
代理角色Q代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在Q何时刻都能代替真实对象。同Ӟ代理对象可以在执行真实对象操作时Q附加其他的操作Q相当于对真实对象进行封装?/p>
真实角色Q代理角色所代表的真实对象,是我们最l要引用的对象?/p>
以下以《Java与模式》中的示例ؓ例:
代码Q?//抽象角色Q?br />
abstract public class Subject{
abstract public void request();
}
//真实角色Q实CSubject的request()Ҏ?br />
public class RealSubject extends Subject{
public RealSubject(){
}
public void request(){
System.out.println("From real subject.");
}
}
//代理角色Q?br />
public class ProxySubject extends Subject{
private RealSubject realSubject; //以真实角色作Z理角色的属?
public ProxySubject(){
}
public void request(){ //该方法封装了真实对象的requestҎ
preRequest();
if( realSubject == null ){
realSubject = new RealSubject();
}
realSubject.request(); //此处执行真实对象的requestҎ
postRequest();
}
private void preRequest(){
//something you want to do before requesting
}
private void postRequest(){
//something you want to do after requesting
}
}
//客户端调用:
Subject sub=new ProxySubject();
Sub.request();
׃上代码可以看出,客户实际需要调用的是RealSubjectcȝrequest()ҎQ现在用ProxySubject来代理RealSubjectc,同样辑ֈ目的Q同时还装了其他方?preRequest(),postRequest())Q可以处理一些其他问题?
另外Q如果要按照上述的方法用代理模式,那么真实角色必须是事先已l存在的Qƈ其作ؓ代理对象的内部属性。但是实际用时Q一个真实角色必d应一个代理角Ԍ如果大量使用会导致类的急剧膨胀Q此外,如果事先q不知道真实角色Q该如何使用代理呢?q个问题可以通过Java的动态代理类来解冟?/p>
2.动态代?/p>
Java动态代理类位于Java.lang.reflect包下Q一般主要涉及到以下两个c:
(1). Interface InvocationHandlerQ该接口中仅定义了一个方法ObjectQinvoke(Object obj,Method method, Object[] args)。在实际使用ӞW一个参数obj一般是指代理类Qmethod是被代理的方法,如上例中的request()QargsҎ的参数数l。这个抽象方法在代理cM动态实现?/p>
(2).ProxyQ该cd为动态代理类Q作用类g上例中的ProxySubjectQ其中主要包含以下内容:
Protected Proxy(InvocationHandler h)Q构造函敎ͼ估计用于l内部的h赋倹{?/p>
Static Class getProxyClass (ClassLoader loader, Class[] interfaces)Q获得一个代理类Q其中loader是类装蝲器,interfaces是真实类所拥有的全部接口的数组?/p>
Static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)Q返回代理类的一个实例,q回后的代理cd以当作被代理cM?可用被代理cȝ在Subject接口中声明过的方??/p>
所谓Dynamic Proxy是这样一UclassQ它是在q行时生成的classQ在生成它时你必L供一linterfacel它Q然后该class宣U它实现了这些interface。你当然可以把该class的实例当作这些interface中的M一个来用。当然啦Q这个Dynamic Proxy其实是一个ProxyQ它不会替你作实质性的工作Q在生成它的实例时你必须提供一个handlerQ由它接实际的工作?参见文献3)
在用动态代理类Ӟ我们必须实现InvocationHandler接口Q以W一节中的示例ؓ例:
代码Q?//抽象角色(之前是抽象类Q此处应改ؓ接口)Q?/p>
public interface Subject{
public void request();
}
//具体角色RealSubjectQ实CSubject接口的request()Ҏ?br />
public class RealSubject implements Subject{
public RealSubject(){
}
public void request(){
System.out.println("From real subject.");
}
}
//代理角色Q?br />
import java.lang.reflect.Method;
import java.lang.reflect.InvocationHandler;
public class DynamicSubject implements InvocationHandler{
private Object sub;
public DynamicSubject(Object sub){
this.sub = sub;
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("before calling " + method);
method.invoke(sub,args);
System.out.println("after calling " + method);
return null;
}
}
该代理类的内部属性ؓObjectc,实际使用旉过该类的构造函数DynamicSubject(Object sub)对其赋|此外Q在该类q实CinvokeҎQ该Ҏ中的"method.invoke(sub,args)" 其实是调用被代理对象的要被执行的ҎQ方法参数sub是实际的被代理对象,args为执行被代理对象相应操作所需的参数。通过动态代理类Q我们可以在调用之前或之后执行一些相x作?
客户端:
代码Q?import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Client{
static public void main(String[] args) throws Throwable{
RealSubject rs = new RealSubject(); //在这里指定被代理c?br />
InvocationHandler ds = new DynamicSubject(rs); //初始化代理类
Class cls = rs.getClass();
//以下是分解步?br />
/*
Class c = Proxy.getProxyClass(cls.getClassLoader(),cls.getInterfaces());
Constructor ct=c.getConstructor(new Class[]{InvocationHandler.class});
Subject subject =(Subject) ct.newInstance(new Object[]{ds});
*/
//以下是一ơ性生?/p>
Subject subject = (Subject) Proxy.newProxyInstance(cls.getClassLoader(),cls.getInterfaces(),ds);
subject.request();
}
通过q种方式Q被代理的对?RealSubject)可以在运行时动态改变,需要控制的接口(Subject接口)可以在运行时改变Q控制的方式(DynamicSubjectc?也可以动态改变,从而实C非常灉|的动态代理关pR?
3.代理模式使用原因和应用方?/p>
Q?Q授权机?不同U别的用户对同一对象拥有不同的访问权?如Jive论坛pȝ?׃用Proxyq行授权机制控制,讉K论坛有两Uh:注册用户和游?未注册用?,Jive中就通过cMForumProxyq样的代理来控制q两U用户对论坛的访问权?
Q?Q某个客L不能直接操作到某个对?但又必须和那个对象有所互动.
举例两个具体情况:
如果那个对象是一个是很大的图?需要花费很长时间才能显C出?那么当这个图片包含在文档中时,使用~辑器或览器打开q个文档,打开文档必须很迅?不能{待大图片处理完?q时需要做个图片Proxy来代替真正的囄.
如果那个对象在Internet的某个远端服务器?直接操作q个对象因ؓ|络速度原因可能比较?那我们可以先用Proxy来代曉K个对?
M原则?对于开销很大的对?只有在用它时才创徏,q个原则可以为我们节省很多宝늚Java内存. 所?有些为Java耗费资源内存,我以和程序编制思\也有一定的关系.
Q?Q现实中QProxy应用范围很广,现在行的分布计方式RMI和Corba{都是Proxy模式的应?/p>
本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/goodHabit/archive/2009/11/08/4784461.aspx
一、Win键相关的快捷?br />
键位
Win
Win
Win
Shift
Win
Win
Shift
Win
Shift
Ctrl
Alt
Ctrl
WIN
Win
Win
Win
Win
Win
Win
Win
Win
Win
Win
Win
Win
Win
Win
二、Windows基础快捷?br />
键位
F1
Ctrl+C
Ctrl+X
Ctrl+V
Ctrl+Z
Ctrl+Y
Delete
Shift+Delete
F2
Ctrl+A
F3
Alt+Enter
Alt+F4
Alt+I格
Alt+Tab
Ctrl+Alt+Tab
Ctrl+滚轮
Ctrl+
Alt+Esc
F4
Shift+F10
Ctrl+Esc
F10
F5
Alt+
Esc
Ctrl+Shift+Esc
插入片时按住Shift
双或左边的
三、资源管理器相关快捷?br />
键位
Ctrl
Ctrl
Ctrl
End
Home
F11
Ctrl
Ctrl
Num