荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 报告体会 > 心得体会 > 一个老鸟的java学习心得

一个老鸟的java学习心得

网站:公文素材库 | 时间:2019-05-17 11:22:57 | 移动端:一个老鸟的java学习心得
第一篇:一个老司机的心得

一个老司机的心得

1)当你在野外开车时,突然从路旁窜出一行人,这时候如果你躲避行人,你就会 车毁人亡,否则你就会将行人碾过。你怎么办?

答:轧死他,你的命比他值钱

2)在正常行使过程中,如果大家的车速假定都是50公里/小时,你的车速应该是多少?

答:略大于50公里/小时,因为其它车辆超你的可能性小。

3)如何躲避十字路口的pol.ice?

答:过十字路口时先跟在一个比你大的车后,绿灯一亮,开车就跑。

4)如何躲避电子眼(电子pol.ice)的监控?

答:按照中国的交通法,十字路口红灯可以右转向,你闯红灯时要在靠右的慢行道或者逆道行使。

5)你违章被pol.ice抓住了怎么办?

答:如果你还没下车,先观察地形,把几个车门都从里面锁好,看能否跑掉。如果跑不掉,你就把执照给小pol.ice,千万别和他纠缠,然后找关系要出来。

6)在野外遇到查车的怎么办?

答:你要看见是提着冲锋枪查车的,你就老老实实下来接受检查。如果是pol.ice设卡查车乱罚款的,你先看看他们是什么车辆,能不能追上你,减速打右转向灯,假装要停车接受检查,骗过pol.ice后加油就跑,一般pol.ice不会追你。

7)有人投诉你的车违章怎么办?

答:死不认帐。

8)遇见pol.ice拦你车搭乘车怎么办?

答:别给他停。下次你违章被他抓住一样会被罚款,他不会和你交朋友的。

9)遇见同方向行使的警车开道的车队怎么办?

答:不要超,停车去解个手。

10)遇见前面同方向有个大车(满载)不给你让路怎么办?

答:紧跟其后,找准机会,超过它后你用车压住他的车,待上大坡时你减速,直到让他一挡起步。

11)如果在十字路口你走眼误闯红灯过线了怎么办?

答:紧急刹车,只要后轮不过线,电子眼不会拍摄。

12)五座小车哪个位置最安全?

答:驾驶员位。

13)你把车交给无证人员驾驶,出了点小车祸怎么办(你在车上)?

答:不管你有理无理,停车下来先和对方大吵大骂,迷惑对方,转移他的注意力,待交警来后你把执照交上去,多数情况对方不会注意,如果对方发现,你就死不认帐。

14)公路限速60公里/小时,你高速行使时遇见紧急情况,紧急刹车后造成事故,刹车印痕很长,交警来处理时问你行使车速,你怎么回答?

答:大约60公里/小时的速度行使,主要是刹车不太好,再加上驾驶技术欠佳。

15)你在野外农村撞死了农民怎么办?

答:如果农民确已死亡,你要快速搭乘其它车辆离开出事地点,向保险公司和交通部门报案,再派一个朋友去帮你处理后事。你千万不能去出事地点,农民家属会打死你的。你可以说你受到刺激,也去住院检查。

16)你在野外农村撞死了农民的牲畜怎么办?

答:只要汽车还能开,能跑多远就跑多远,因为一头猪的价格要201*多元,要是一头牛,没个万儿八千的下不来,因为农民会说他的牛是种牛,肚子里还有牛崽等等。

17)你在野外汽车抛锚了,过路车又不给你停怎么办?

答:去路边捡些石头块,横挡在路上,手里再拿出200元钱示意,会有人帮你的。

18)如果你的车行使在野外没油了怎么办?

答:拦一辆大车,从他的车里用管吸出几升油即可,70号油不要紧。不要拦小车,一般小车是不能抽油的。

19)野外路上遇到有人搭车怎么办?

答:最好不要带。你又不知他是干什么的,万一要是贩卖大烟的呢。

20)连续下山,刹车片过热引起制动不灵怎么办?

答:停下来,自然冷却。千万不要用水冷却。

21)夏日连续上山爬坡,车温过高但你又不想停车,怎么办?

答:把空调关掉,车窗打开,把暖气开到最大,风门也开到最大,几分钟车即可降温。

22)普通野外三级公路,公路两边都有自行车和行人,如何高速行使?

答:尽可能占用逆向道行使,因为同方向的自行车等看不见你。

23)崎岖山路如何高速行使?

答:拐弯要加油。(经验丰富者)

24)如何在普通公路上超越比你性能优越的车?

答:紧跟其后,在同方向车多的情况时退档加速超越,不过你要胆大车技好。

25)什么情况下最好不要超车?

答:对面来的车比你大,如果撞击你倒霉。

26)夏天行使汽车要注意哪些?

答:前轮胎气压不能大,防止高速爆胎。

27)行车与时间的关系?

答:晚上8--10点要注意地方牌照的公用小车,这时候他们可能刚喝完酒,横冲直撞。凌晨3--5点,要注意过境公路上的长途汽车,司机可能在打磕睡

第二篇:一个老业务员的心得

一个老业务员的心得体会

业务是从市场上学出来的,不是从书里学出来的我收藏过一篇 一个老业务员的自白 的文章拿出来和大家分享下,希望对大家有所帮助:

1、业务员和客户聊天的时候哪些话题不需要聊太多关于技术和理论的话题,需要的是今天的新闻呀、天气呀等话题。因此,业务员在日常的时候必须多读些有关经济、销售方面的书籍、杂志,尤其必须每天阅读报纸,了解国家、社会消息、新闻大事,这往往是最好的话题,这样我们在拜访客户时才不会被看成孤陋寡闻、见识浅薄。

2、关于业务员晚上的四个小时。一个业务员的成就很大程度上取决于他晚上那四个小时是怎样过的。最差的业务员晚上就抱着个电视看,或者在抱怨,出去玩等。这样的业务员没出息。一般的业务员去找客户应酬,喝酒聊天。这样的业务员会有单,但我个人认为难有很高的成就。好一点的业务员晚上整理资料,分析客户,做好计划等。这样的业务是一个好业务,应该有前途。最好的业务员我认为是在做完好业务员的工作后还坚持看一个小时的书。我觉得这样的业务很有出息,以后有机会可以做老板。

业务是从市场上学出来的,不是从书里学出来的我收藏过一篇 一个老业务员的自白 的文章拿出来和大家分享下,希望对大家有所帮助:

3、关于业务员本身。很多人觉得,业务员最好身材高大,英俊潇洒。业务员一定要口才好,能说会道,嘴里能吐出油来才叫口才好。业务员一定要会抽烟,身上随时带着烟,逢人就派。业务员一定要会喝酒,白酒,啤酒千杯不倒。其实我感觉这些都不是重要的。就我个人而言,我身高不到160mm,刚开始跑业务时心里很自卑,说话都不流畅,更别说口才好了。我是从来不抽烟的,喝酒我最多一瓶啤酒,多点就醉了。可是勤能补拙,我刚跑业务时,在惠州,刚开始三个月,我拿几件衣服就到东莞的弟弟厂里一跑就是几天。一个工业区,一个工业区的跑。就这样,我走了三个月,客户也跑下了几个,可是皮鞋也烂了一双,人黑的像黑碳头一样。我现在自己开工厂了,我经常对业务员,头三个月过的是不是人的日子的,熬过后就可以了。所以业务的办公室在厂外。 关于找客户

做业务刚进公司的头三个月是考验业务员能否成功的最关键的三个月,这三个月可以说是影响了业务员以后的业务工作的。这之中第一个面对的就是如何找到客户的问题,关于怎样寻找目标客户。一般来说新业务员进到一个新公司后,在熟悉到1个星期左右的产品知识就要自己找客户去拜访了。如果开始没有业务经理或者老板提供客户资源的话,可以通过以下方法去找客户。

1、黄页,一般公司都有很多黄页的,如《深圳黄页》等。我们可以按照上面的分类等找到我 们的原始目标客户。现在深圳也有好多专业类的行业黄页,如家电黄页,玩具黄页等,业务员最好找到这样的黄页来收集第一手资料。这些黄页在一般大的图书馆都有。可以拿个本子去那里抄就可以了。

2、浏览招聘广告,就象在深圳,《深圳特区报》每天都有大量的招聘广告,还有《南方都市报》每个星期一都有招聘广告,我们可以通过阅览的招聘广告来获得我们想要的客户。我们也可以去附近的招聘市场看看,一般的招聘市场会在门口贴出每天的招聘单位的名称和招聘工种我们也可以通过他招聘的工种来分析他是做什么的,这样就可以找到我们要的客户了。还有我们可以去一些大的工业区附近转转,现在几乎所有的厂都招工,也可以通过他们门口的招工广告找到的。我们也可以上网看招聘网站,如卓博招聘网等。

从招聘广告中找的客户的好处是第一可以找到很多新的客户,因为有很多新的厂,他或者刚开,或者刚搬过来,如果我们第一个先找到他,那就是捷足先登了。还有,一般有能力大量招工的厂家生意都比较好,对以后业务做成功后的货款回收也相对有点信心。

3、网络搜索。我们可以通过关键字去搜索,如在百度输入我们要找的客户的生产产品的名字,我们可以找到大把的客户。我们也可以通过专业的网站来找客户,如阿里巴巴,如慧聪等等。这样我们可以找到很多客户的名单了。而且还可以找到老板的手机号码和老板的姓名等。

4、我们也要经常上街找客户,我们去逛商场,我一般会到家电商场去看看,他们都有包装的,或者有品牌和公司的名称,我们可以记录下来,回去上网找就可以了。我们可以通过商场的产品的销售来判断一个客户的经营情况来的。这从侧面也反映了他的一个经济实力。 5、但我个人认为最好的找客户的方法是通过交际网络的相互介绍来发展客户。以后做业务讲究资源共享的时代。例如你是做电线的,我是做插头的,他是做电阻的。我们同时做一个音响的客户。如果我们都可以资源共享,把好的客户都互相介绍,这样做进去一个客户就非常容易和省心。而且我们的客户因为大家互相看着,客户一有什么风吹草动.大家可以提防,风险不就低很多了吗。

6、还有个最好的办法是客户介绍客户,这是成功率最高的。厉害的业务员在有了几个原始客户以后,就会认真服务好这几个客户,和他们做朋友。等到熟悉了,就开口让他们介绍同行或者朋友给你。这时候不要让他们给你名单就好了,名单那里都可以找到,最主要是要让他帮你打个电话。如果他帮你打了个推荐电话,好过你打100个电话。你以后就主要服务好他介绍的客户,然后也依次类推的让这个新客户介绍下去,那样你就可以很轻松的找到你的客户网络拉

所以我们是有很多方法来找到我们想要的客户的,只要我们要用心。业务员的身上无论什么时候都要有三个东西在身上,除了冲凉的时候,这三个东西是:笔,小笔记本,名片。别人都说业务员有8个眼睛的,也是很有道理的,生活中处处留心,就可以找到很多商机。 关于打电话

我们找到客户之后,第二个问题就是要想着怎样打电话约客户了。这里面也有一些细节的。注意一下就可以了。

1、很多人打电话都会遇到这样的情况。客户还没有听完我们的介绍,就说不要不要,接着就啪的一生挂电话了。还有你说要去拜访他,他说没空,让你传真资料给他,或者把资料放到门卫室去。我们千万不要传真资料和放到保安室给他,没用的。遇到这样的情况我开始就很郁闷,后来我就这样想,可能采购小姐今天一上班就给老板骂了,不高兴所以才拒绝我,或者想可能采购小姐今天和男朋友吵架了,所以不理我。没关系,我下次再找你好了。我很多客户都是打了好多次电话才得到约见的,有时就是这么奇怪,采购小姐昨天还说不要,今天再打就可以让你带样品去见她了。所以生意的成功往往就是看你坚持不坚持了。 2、无论你的业务技巧多么熟练,我觉得打电话是还是要想一想将要讲的内容比较好,不要一拿起电话就聊。因为我们会聊着聊着就忘记了一些本来要讲的内容,往往刚挂掉电话又要打多一次。搞的大家都不好。对于刚做业务的朋友最好用纸写下来。这样会讲的比较有条理。 3、我觉得站着打电话比较好点。因为人站着的时候我感觉注意力比较集中,会比较认真,还有站着的时候中气十足,讲的话声音比较好听。大家不信试试看。无论你刚刚受了多大的气,打电话时最好带着微笑。这样气氛比较轻松,客户会感觉的到的。做业务本来就是受气的活,可是我们的客户没必要和你分担。

4、我们不要等到有求于客户的时候才打电话给他们。我们在平时的时候要经常给他们打电话,聊聊天,问候问候也好。直到他一听到声音就知道是我为止。最好能让他惦记着你。做业务就像谈恋爱一样。我们不能约了一次会后就指望别人能嫁给你。采购是很健忘的,我们要不断的提醒他。 初拜访客户

1、推销前的准备、计划工作,决不可疏忽轻视,有备而来才能胜券在握。准备好样品,目录书、笔和笔记本等。见客户之前先想想开场白、要问的问题、该说的话、以及可能的回答。

平时对与公司产品有关的资料、说明书、广告等,均必须努力研讨、熟记,同时要收集竞争对手的广告、宣传资料、说明书等,加以研究、分析,以便做到“知己知彼”,如此才能真正知己知彼.2、准时赴约——迟到意味着:“我不尊重你的时间”。迟到是没有任何借口的,假使无法避免迟到的发生,你必须在约定时间之前打通电话过去道歉,我相信提前出门是避免迟到的唯一方法。

3、服装不能造就完人,但是初次见面给的人印象,90%产生于服装。礼节、仪表、谈吐、举止是人与人相处的好坏印象的来源,销售代表必须多在这方面下功夫。我不喜欢我的业务员穿着红色绿色的t衬衣等去见我的客户。我起码要求是衬衣。还有公文包一定是皮的。 4、我们不可能与拜访的每一位客户达成交易,他应当努力去拜访更多的客户来提高成交的百分比。在拜访客户时,我们应当信奉的一个原则是“即使跌倒也要抓一把沙”。意思是,销售代表不能空手而归,即使你拜访的哪个暂时没有需求,不能成交。也要想办法让他帮你介绍一位新客户。

5、对客户而言。要经常留意客户喜欢的话题和他的爱好,他喜欢的就多跟他聊些。留意他的一举一动。你就可以投其所好拉。谈话的结果不重要,过程的气氛很重要。我们在和采购聊天的时候,往往很注意谈话的内容,老是说没话题。其实我们要注意到我们谈话的过程和气氛。如果我们哪天聊的很愉快,和融洽,我们的感情就会很亲近。在许多天后,我们往往回忘记了当时谈的是什么,只记得哪天我们聊得很好。其实采购也一样。价格我们会有报价单给他,品质我们有品质承认书给他,交期我们会盖章签名回传给他。所以我们只要和业务之外的事情就可以了,聊他感兴趣的问题最好。 如何维护客户

1、业务员在做到应该钓鱼,不是洒网。跑业务时最有效和舒服的做法是用钓鱼法。就像我们刚开始追女孩子时,难道我们会同时追几个女孩子,然后在博他有一个成吗吗。我们往会看准一个,竭而不舍的追求她,直到成功吧。我自己是这样跑业务的。我会选准一个行业,比如我要做耳机行业,我会挑行业里的3个左右认认真真的去攻他,直到做进去为止,以后其他的就很好做了。这样等你在耳机行业里占到80%的份额。我们再转到别的行业,复制它。就像钓鱼一样,看准大的。一条一条的钓,很舒服。胆大,心细,脸皮厚。我们年轻的时候,追女孩子,大一点的告诉我们的经验就是:胆大,心细,脸皮厚。其实做业务就像追女孩子一样的。

2、据估计,有80%的业务之所以完成,是由于交情关系。现在竞争都很激烈,在同样质量,同样价格,同样服务等的情况下,你要竞争过对手,只有凭交情了,如果你比对手更用心的对待客户,和朋友结成朋友关系。这样谁还能抢走你的单?所以你把时间花在什么地方,你就得到什么。所以说交情是个宝。

3、一定要热情,热情可以感染客户的。可能我们有很多业务员刚开始会非常热情,可是等到你做到一定的成绩就会变成老油条了,失去了往日的热情,有时候感觉反而单没那么好做了,你会以过分热情而失去某一笔交易,但会因热情不够而失去一百次交易。热情远比花言巧语更有感染力。

4、一定要有个试用期。一个客户做下来,就像男女结婚一样。发现客户就像我们发现一个心仪的梦中情人。从打电话到下单就像开始送情书到订婚那么漫长。到真正结婚了,都还要度完蜜月才可以认认真真的过日子。所以我们和客户也要度度蜜月,我们不要一下子就做的很大。一见钟情而结婚的新鲜感过后很难维持的。我们都应该给点时间客户和我们。互相考察一下信用,服务等等。 关于成交

1、很多业务员开始做业务的时候,往往冲劲很大,找到客户,送了样品,报了价就不知道怎么办了,往往前功尽弃。其实你应该不断的问他,你哪个单什么时候下呀(先假设已经成交),不断的问他,知道有结果为止。其实,采购就是等我们问他呢。会哭的孩子有奶吃。就像孩子不哭,我们怎么知道他饿了呢?所以我们要要求客户购买。然而,80%的业务员都

没有向客户提出成交要求。

2、如果未能成交,销售代(公文素材库:www.bsmz.netport =”java.util.*” %>;

session可以不赋值,默认为true,如果session=”false”,则在jsp页面中,隐含的变量session就不能使用。

3. 请求控制器结构(request controller)

也被称之为jsp model 2 architecture

这种途径涉及到使用一个servlet或一个jsp作为一个应用程序或一组页面的入口点。

为创建可维护的jsp系统,request controller是最有用的方式之一。

不是jsp,而是java类才是放置控制逻辑的正确的地方。

请求控制器的命名模式为: xxxcontroller.jsp

请求控制器类的命名模式为: xxxrequestcontroller

2.jsp中的javabean

jsp三种bean的类型

1) 页面bean

2) 会话bean

3) 应用bean

大多数的系统会使用一个会话bean来保持状态,而对每一个页面使用一个页面bean 来对复杂的数据进行表示。

页面bean是一个模型,而jsp是一个视图。

3.custom tag

bean是信息的携带者,

而tag更适用于处理信息。

标记库包含一个标记库描述符(tld)和用于实现custom tag的java类

在翻译阶段,jsp容器将使用tld来验证页面中的所有的tag是否都被正确的使用。

标记处理程序只是一个简单的适配器,而真正的逻辑是在另一个类中实现的,标记处理程序只是提供了一个供其他的可复用的类的jsp接口

servlet

1.servletconfig

 一个servletconfig对象是servlet container在servlet initialization的时候传递给servlet的。

servletconfig包涵 servletcontext 和 一些 name/value pair (来自于deployment descriptor)

 servletcontext接口封装了www.bsmz.netl就是www.bsmz.netl

1.xml基础知识

1. 一个xml文档可以分成两个基本部分:

首部( header )

内容( content )

2. xml名字空间规范中指定:

xml文档中的每一个元素都处在一个名字空间中;如果没有指定的名字空间,缺省的名字空间就是和该元素相关联的名字空间。

3. a document that is www.bsmz.netl.sax.reader

/|

org.xm.l.sax.xmlreader

/|

org.apche.xerces.parsers.saxparser

2.www.bsmz.netlns:xsd1="http://example.com/stockquote.xsd"

xmlns:soap="http://schemas.xmlsoap.org/www.bsmz.netlschema">;

<element name="tradepricerequest">;

<complextype>;

<all>;

<element name="tickersymbol" type="string"/>;

</all>;

</complextype>;

</element>;

<element name="tradeprice">;

<complextype>;

<all>;

<element name="price" type="float"/>;

</all>;

</complextype>;

</element>;

</schema>;

</types>;

<message name="getlasttradepriceinput">;

<part name="body" element="xsd1:tradepricerequest"/>;

</message>;

<message name="getlasttradepriceoutput">;

<part name="body" element="xsd1:tradeprice"/>;

</message>;

<porttype name="stockquoteporttype">;

<operation name="getlasttradeprice">;

<input message="tns:getlasttradepriceinput"/>;

<output message="tns:getlasttradepriceoutput"/>;

</operation>;

</porttype>;

<binding name="stockquotesoapbinding"

type="tns:stockquoteporttype">;

<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/>;

<operation name="getlasttradeprice">;

<soap:operation

soapaction="http://example.com/getlasttradeprice"/>;

<input>;

<soap:body use="literal"/>;

</input>;

<output>;

<soap:body use="literal"/>;

</output>;

</operation>;

</binding>;

<service name="stockquoteservice">;

<documentation>;my first service</documentation>;

<port name="stockquoteport" binding="tns:stockquotebinding">;

<soap:address location="http://example.com/stockquote"/>;

</port>;

</service>;

</definitions>;

它包含了以下的关键信息:

消息的描述和格式定义可以通过xml文档中的<types>;和<message>; 标记来传送。

<porttype>; 标记中表示了消息传送机制。 (e.g. request-only, request-response, response-only) 。

<binding>; 标记指定了编码的规范 。

<service>; 标记中表示服务所处的位置 (url)。

www.bsmz.neti客户并且可以和容器所管理的环境外面的代码进行通讯。

6.使用映象api查询ejb组件由于安全规则所不能访问的类。这个约束加强了java平台的安全性。

7.欲创建或获得一个类的加载器,设置或创建一个新的安全管理器,停止java虚拟机,改变输入、输出和出错流。这个约束加强了安全性同时保留了ejb容器管理运行环境的能力。

8.设置socket工厂被url"s serversocket,socket和stream handler使用。避免这个特点,可以加强安全性同时保留了ejb容器管理运行环境的能力。

9.使用任何方法启动、停止和管理线程。这个约束消除了与ejb容器管理死锁、线程

和并发问题的责任相冲突的可能性。

通过限制使用10-16几个特点,你的目标是堵上一个潜在的安全漏洞:

10.直接读写文件描述符。

11.为一段特定的代码获得安全策略信息。

12.加载原始的类库。

13.访问java一般角色所不能访问的包和类。

14.在包中定义一个类。

15.访问或修改安全配置对象(策略、安全、提供者、签名者和实体)。

16.使用java序列化特点中的细分类和对象替代。

17.传递this引用指针作为一个参数或者作为返回值返回this引用指针。你必须使用

sessioncontext或entitycontext中的getejbobject()的结果。

java2平台的安全策略

以上所列的特点事实上正是java编程语言和java2标准版中的标准的、强有力的特色。ejb容器允许从j2se中使用一些或全部的受限制的特色,尽管对于ejb组件是不可用的,但需通过j2se的安全机制来使用而不是通过直接使用j2se的api。

java2平台为ejb1.1规范中的ejb容器所制定的安全策略定义了安全许可集,这些许可在ejb组件的编程限制中出现。通过这个策略,定义了一些许可诸如:java.io.filepermission,java.net.netpermission,java.io.reflect.reflectpermission,java.lang.security.securitypermission,以便加强先前所列出的编程限制。

许多ejb容器没有加强这些限制,他们希望ejb组件开发者能遵守这些编程限制或者是带有冒险想法违背了这些限制。违背这些限制的ejb组件,比标准方法依赖过多或过少的安全许可,都将很少能在多个ejb容器间移植。另外,代码中都将隐藏着一些不确定的、难以预测的问题。所有这些都足以使ejb组件开发者应该知道这些编程限制,同时也应该认真地遵守它们。

任何违背了这些编程限制的ejb组件的实现代码在编译时都不能检查出来,因为这些特点都是java语言和j2se中不可缺少的部分。

对于ejb组件的这些限制同样适用于ejb组件所使用的帮助/访问(helper/access)类,j2ee应用程序使用java文档(jar)文件格式打包到一个带.ear(代表enterprise archive)扩展名的文件中,这个ear文件对于发送给文件部署器来说是标准的格式。ear文件中包括在一个或多个ejb-jar文件中的ejb组件,还可能有ejb-jar所依赖的库文件。所有ear文件中的代码都是经过深思熟虑开发的应用程序并且都遵守编程限制和访问许可集。

未来版本的规范可能会指定通过部署工具来定制安全许可的能力,通过这种方法指定了一个合法的组件应授予的许可权限,也指定了一个标准方法的需求:如从文件系统中读文件应有哪些要求。一些ejb容器/服务器目前在它们的部署工具中都提供了比标准权限或多或少的许可权限,这些并不是ejb1.1规范中所需要的。

理解这些约束

ejb容器是ejb组件生存和执行的运行期环境,ejb容器为ejb组件实例提供了一些服务如:事务管理、安全持久化、资源访问、客户端连接。ejb容器也负责ejb组件实例整个生命期的管理、扩展问题以及并发处理。所以,ejb组件就这样寄居在一个被管理的执行环境中--即ejb容器。

因为ejb容器完全负责ejb组件的生命期、并发处理、资源访问、安全等等,所以与容器本身的锁定和并发管理相冲突的可能性就需要消除,许多限制都需要使用来填上潜在的安全漏洞。除了与ejb容器责任与安全冲突的问题,ejb组件还意味着仅仅聚焦于商务逻辑,它依赖于ejb容器所提供的服务而不是自己来直接解决底层的系统层的问题。

可能的问题

通常,ejb组件在容器之间的移植不可避免地与如下问题相关:

1.它需要依靠的受限制的特点在特定ejb容器中没有得到加强。

2.它需要依靠的非标准的服务从容器中可获得。

为了保证ejb组件的可移植性和一致的行为,你应该使用一个具有与java2平台安全

策略集相一致的策略集的容器来测试ejb组件,并且其加强了前述的编程限制。

总结

ejb组件开发者应该知道这些推荐的关于ejb组件的编程限制,明白它们的重要性,并且从组件的稳定性和可移植性利益方面考虑来遵循它们。因为这些编程限制能阻止你使用标准的java语言的特点,违背了这些编程限制在编译时不会知道,并且加强这些限制也不是ejb容器的责任。所有这些原因都使你应很小心地遵守这些编程限制,这些限制在组件的合同中已经成为了一个条款,并且它们对于建造可靠的、可移植的组件是非常重要的。

2. 优化ejb

entity bean为在应用程序和设计中描述持久化商业对象(persistent business objec ts)提供了一个清晰的模型。在java对象模型中,简单对象通常都是以一种简单的方式进行处理但是,很多商业对象所需要的事务化的持久性管理没有得到实现。entity bean将持久化机制封装在容器提供的服务里,并且隐藏了所有的复杂性。entity bean允许应用程序操纵他们就像处理一个一般的java对象应用。除了从调用代码中隐藏持久化的形式和机制外,entity bean还允许ejb容器对对象的持久化进行优化,保证数据存储具有开放性,灵活性,以及可部署性。在一些基于ejb技术的项目中,广泛的使用oo技术导致了对entity bean的大量使用,sun的工程师们已经积累了很多使用entity bean的经验,这篇文章就详细阐述的这些卡发经验:

*探索各种优化方法

*提供性能优化和提高适用性的法则和建议

*讨论如何避免一些教训。

法则1:只要可以,尽量使用cmp

cmp方式不仅减少了编码的工作量,而且在container中以及container产生的数据库访问代码中包括了许多优化的可能。container可以访问内存缓冲中的bean,这就允许它可以监视缓冲中的任何变化。这样的话就在事物没有提交之前,如果缓存的数据没有变化就不用写到数据库中。就可以避免许多不必要的数据库写操作。另外一个优化是在调用find方法的时候。通常情况下find方法需要进行以下数据库操作:

查找数据库中的纪录并且获得主键

将纪录数据装入缓存

cmp允许将这两步操作优化为一步就可以搞定。[具体怎么做我也没弄明白,原文没有具体阐述]

法则2:写代码时尽量保证对bmp和cmp都支持

许多情况下,ejb的开发者可能无法控制他们写的bean怎么样被部署,以及使用的container是不是支持cmp.

一个有效的解决方案是,将商业逻辑的编码完全和持久化机制分离。再cmp类中实现商业逻辑,然后再编写一个bmp类,用该类继承cmp类。这样的话,所有的商业逻辑都在cmp类中,而持久化机制在bmp中实现。[我觉得这种情况在实际工作中很少遇到,但是作者解决问题的思路值得学习]

法则3:把ejbstore中的数据库访问减小到最少。

如果使用bmp,设置一个缓存数据改变标志dirty非常有用。所有改变数据库中底层数据的操作,都要设置dirty,而在ejbstore()中,首先检测dirty的值,如果dirty的值没有改变,表明目前数据库中的数据与缓存的一致,就不必进行数据库操作了,反之,就要把缓存数据写入数据库。

法则4:总是将从lookup和find中获得的引用进行缓存。(cache)

引用缓存对session bean和entity bean 都是适用的。

通过jndi lookup获得ejb资源。比如datasource,bean的引用等等都要付出相当大的代价。因此应该避免多余的lookup.可以这样做:

将这些引用定义为实例变量。

从setentitycontext(session bean使用setsessioncontext)方法查找他们。setentitycontext方法对于一个bean实例只执行一次,所有的相关引用都在这一次中进行查找,这样查找的代价就不是那么昂贵了。应该避免在其他方法中查找引用。尤其是访问数据库的方法:ejbload()和ejbstore(),如果在这些频繁调用的方法中进行datasource的查找,势必造成时间的浪费。

调用其他entity bean的finder方法也是一种重量级的调用。多次调用finder()方法的代价非常高。如果这种引用不适合放在setentitycontext这样的初始化时执行的方法中执行,就应该在适当的时候缓存finder的执行结果。只是要注意的是,如果这个引用只对当前的entity有效,你就需要在bean从缓冲池中取出来代表另外一个实体时清除掉这些引用。,这些操作应该在ejbactivate()中进行。

法则5:总是使用prepare statements

这条优化法则适用于所有访问关系数据库的操作。

数据库在处理每一个sql statement的时候,执行前都要对statement进行编译。一些数据库具有缓存statement和statement的编译后形式的功能。数据库可以把新的statement和缓存中的进行匹配。然而,如果要使用这一优化特性,新的statement要必须和缓存中的statement完全匹配。

对于non-prepared statement,数据和statement本身作为一个字符串传递,这样由于前后调用的数据不同而不能匹配,就导致无法使用这种优化。而对于prepared statement,数据和statement是分开传递给数据库的,这样statement就可以和cache中已编译的statement进行匹配。statement就不必每次都进行编译操作。从而使用该优化属性。

这项技术在一些小型的数据库访问中能够减少statement将近90%的执行时间。

法则6:完全关闭所有的statement

在编写bmp的数据库访问代码时,记住一定要在数据库访问调用之后关闭statement,因为每个打开的statement对应于数据库中的一个打开的游标。

security

1.加密

对称加密

(1)分组密码

(2)流密码

常用的对称加密算法:

des和tripledes

blowww.bsmz.netasterc ard 和visa 公司于1996 年发布,专家们认为set 是保证用户与商家在电子商务与在线交易中免受欺骗的重要手段。传统的信用卡交易者总在担心不诚实的店员会将自己的信用卡号码透露给他人,而在线交易也是如此,持卡者总在担心服务器端的管理员会将信用卡号码泄露出去,或者担心黑客会在管理员不知情的情况下盗取信用卡号码。事实上这些担心都是必要的,而set 标准则可以保证用户的信用卡号码只传送给信用卡公司进行认证,不会被系统管理员看到,也不会留在交易服务器的硬盘上给黑客以可乘之机。

5.pki

pki是一种易于管理的、集中化的网络安全方案。它可支持多种形式的数字认证: 数据加密、数字签字、不可否认、身份鉴别、密钥管理以及交叉认证等。pki可通过一个基于认证的框架处理所有的数据加密和数字签字工作。p ki标准与协议的开发迄今已有15年的历史,目前的pki已完全可以向企业网络提供有效的安全保障。

pki是一种遵循标准的密钥管理平台,它能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理。pki必须具有

1)ca、

2)证书库、

3)密钥备份及恢复系统、

4)证书作废处理系统、

5)客户端证书处理系统

等基本成分,构建pki也将围绕着这五大系统来构建

一个pki由众多部件组成,这些部件共同完成两个主要功能:

1)为数据加密

2)创建数字认证。

服务器(即后端)产品是这一系统的核心,这些数据库管理着数字认证、公共密钥及专用密钥( 分别用于数据的加密和解密)。

ca数据库负责发布、废除和修改x.509数字认证信息,它装有用户的公共密钥、证书有效期以及认证功能(例如对数据的加密或对数字签字的验证) 。为了防止对数据签字的篡改,ca在把每一数字签字发送给发出请求的客户机之前,需对每一个数字签字进行认证。一旦数字认证得以创建, 它将会被自动存储于x.500目录中,x.500目录为树形结构。ldap(lightwww.bsmz.netpleaction());

...

}

}

public class jaasexampleaction implements privilegedaction {

public object run() {

filewww.bsmz.netission"

name="com.ibm.security.sample.bid"

actions="create" />;

<permission classname=

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.bid"

actions="read" />;

<permission classname=

"com.ibm.resource.security.auth.resourcepermission"

name="com.ibm.security.sample.bid"

actions="www.bsmz.net.ibm.resource.security.auth.resourcepermission 类保护敏感代码。例如,auction 类拥有下列构造函数:

public auction() {

permission permission =

newww.bsmz.netple.auction", "www.bsmz.net.security.sample.auction", "accept", this);

accesscontroller.checkpermission(permission);

// sensitive code

this.accepted = flag;

}

public boolean fulfills(subject user, string relationship) {

if( relationship.equalsignorecase("auctionowww.bsmz.net.resource.security.auth.policy 可以用于指定另一个不同的文件名和位置。

www.bsmz.netl 文件未被修改时,上述这些才都是真的。

示例安装

下面的安装指导假设您正在使用 jdk 1.3 并且已经把文件解压缩到 d:jaasexample 目录。通过将文件解压缩到这个目录,您可以省去一些工作;否则您就必须使用正确的路径名修改 policy 和 resourcesecurity.xml 策略文件。

下面是运行该示例需要做的工作:

下载这个示例的源文件。

把 jaas.jar 和 jaasmod.jar 复制到 jdk jrelibext 目录(即 d:jdk1.3jrelibext)。

向位于 jdk 的 jrelibsecurity 目录(即 d:jdk1.3jrelibsecurity)中的 java.security 文件的末尾添加下面的字符串:auth.policy.provider=com.ibm.resource.security.auth.xmlpolicyfile。

执行 run.bat 文件。

结束语

类实例级授权把访问控制分离到一个通用框架(该框架使用基于所有权和特定关系的策略)中。然后管理员可以在应用程序的生命周期内更改这些策略。用这种方法扩展 jaas 减少了您或另一个程序员必须在应用程序生命周期内业务规则发生更改时重写代码的可能性。

通过将关系字符串抽象为类可以进一步扩展特定关系这个概念。不调用 resource 实现类的 fulfills(subject user, string relationship) 方法,而只要调用 relationship 实现类中定义的新 fulfills(subject user, resource resource) 方法。这样就会允许许多 resource 实现类使用相同的关系逻辑。

6.java的安全性

1. the security manager是一个application-www.bsmz.netanager (jdbc 1.0) 接口,j2ee 组件可以获得物理数据库连接对象(connection)。要获得逻辑(合用的)连接,j2ee 组件必须使用以下这些 jdbc 2.0 合用管理器接口:

javax.sql.connectionpooldatasource 接口,该接口充当合用的 java.sql.connection 对象的资源管理器连接 factory。每家数据库服务器供应商都提供该接口的实现

(例如,oracle 实现 oracle.jdbc.pool.oracleconnectionpooldatasource 类)。

javax.sql.pooledconnection 接口,该接口封装到数据库的物理连接。同样,数据库供应商提供其实现。

对于那些接口和 xa 连接的每一个,都存在一个 xa(x/open 规范)等价定义。

2. resultset

在jdbc2.0中,为了获得一个uptatable result,在query语句里必须包含primarykey,并且查询的内容里必须来自一个table

ava.sql.resultset接口中定义了三种类型的结果集

type_forwww.bsmz.netanager 的规范。

javatransaction service (jts) specifies the implementation of a transaction manager www.bsmz.netport java.awww.bsmz.net.*;

public class mousetest

{

public static void main(string[] args)

{

mouseframe frame=newww.bsmz.netove(rectangle2d s)

{

if(s==null) return;

if(s==current) current=null;

squares.remove(s);

repaint();

}

private static final int side_length=20;//正方形的边长

private arraylist<rectangle2d> squares;//存放所有已绘制的方块(鼠标有效绘制路径)

private rectangle2d current;//当前需要绘制的方块

private class mousehandler extends mouseadapter

{

/*

* 当鼠标按钮被按下时,先查找当前点是否已经包含在前期图新内,* 否,则添加至数组列表

*/

public void mousepressed(mouseevent event)

{

current=find(event.getpoint());

if(current==null)

add(event.getpoint());

}

/*

* 处理鼠标点击事件,如果当前点包含于图形之中,且鼠标连续点击两次以上,则擦除该图形。

*/

public void mouseclicked(mouseevent event)

{

current=find(event.getpoint());

if(current!=null && event.getclickcount()>=2)

remove(current);

}

}

private class mousemotionhandler implements mousemotionlistener

{

/*

* 改变鼠标形状

h);*/public void mousemoved(mouseevent event){if(find(event.getpoint())==null)setcursor(cursor.getdefaultcursor());elsesetcursor(cursor.getpredefinedcursor(cursor.crosshair_cursor));}/** 拖动图形*/public void mousedragged(mouseevent event){if(current!=null){int x=event.getpoint().x;int y=event.getpoint().y;current.setframe(x-side_length/2,y-side_length/2,side_length,side_lengt

}}}} repaint();

第五篇:关于java学习的一点心得体会

管理科学与工程学院11信管2班孙鑫201*4548

关于java学习的一点心得体会

我是学信管专业的,这学期除了学习了java软件开发综合实验这门选修课外,还有自己本专业要学的java面向对象的程序设计。学习了近一学期的java课程,觉得是该总结自己的心得体会了。开始学习任何一门课(包括java),兴趣最重要。一直觉得自己在学习了计算机编程语言(也就是c语言),学到了很多东西,再学习java的话,应该问题不大,但在学习了几个星期后,还是明确感到了,有点吃力,于是趁学校开设这门选修课,并且有自己院的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。

还记得我编写的第一个程序是简单的输出程序。当时自己不是很理解为什么main方法要这样来定义public static void main(string[] args),问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的”,但我自己不甘心,就自己进行了探索:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个string[]数组的,把string[]改掉,改成int[],或者string试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。 结果一个简单程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这 1

样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给了java。

因为基础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识!

学习一门新的语言,参考书是离不开的。听专业课老师说订的教材偏难,不适合我们初学者,于是我在图书馆借了本参考书(一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习java语法等)。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。

在学习java的语法时,java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。

在学习java的面向对象的编程语言的特性。比如继承,抽象类,方法的多态,重载,覆盖。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习java之前没有c++的经验,只有c语言的经验,花了很长时间,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了很多遍,才彻底领悟了。

此外,我对于static,public,private等等一开始都不是很懂,

都是把书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

在学习java的过程中我得出这样的结论:

1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。

2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。

4. 在 java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。

看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够,希望自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起到作用。

本网推荐访问其他精彩内容:

java学习心得

学习java的心得体会

学习java的心得体会

java学习的心得体会

java培训学习心得

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


一个老鸟的java学习心得》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/284096.html