为什么我安装qq三国彩色旷出现规律出现NOT RECOMMENDED

为什么我QQ三国***的时候没了_百度知道***QQ三国为什么出现NSIS error_百度知道QQ三国***为什么***不了 还出了一个小框 The installer you are trying to use is ........请详细说谢谢_百度知道qq三国***程序打开后出现一个窗口_百度知道这个研究缓存框架的话,研究一下ehcache肯定是不会错的,一般来说其特性和值得研究的方向就是以下几点:&br&
1. 快速&br&
2. 简单&br&
3. 多种缓存策略&br&
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题&br&
5. 缓存数据会在虚拟机重启的过程中写入磁盘&br&
6. 可以通过RMI、可插入API等方式进行分布式缓存&br&
7. 具有缓存和缓存管理器的侦听接口&br&
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域&br&
如果自己开发相同的缓存框架的话,注意以上几点肯定是错不了的,在另外一方面来说,不只是要注意以上这些。&br&
还需要注意缓存框架所占的内存大小,在设计与实现时最大的内存使用值,因为当缓存框架过大时,会出现缓存框架和应用程序抢占内存的情况,所以不建议缓存框架能够缓存太多的东西,在此可以和redis或者是memcached结合在一起来使用,研究ehcache相关特性后,将自己做的缓存框架当做一级缓存,redis作为二级缓存,redis进行应队列发布订阅,然后相应应用程序***队列,随之更新自己研发的缓存框架。这些都是需要考虑的。
这个研究缓存框架的话,研究一下ehcache肯定是不会错的,一般来说其特性和值得研究的方向就是以下几点: 1. 快速 2. 简单 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 5. 缓存数据会在虚拟机重启的过程中写入磁盘 6. 可以通过RMI…
这边这几天是Memorial Day weekend,很多人都没空刷知乎吧。&br&&br&首先请善用一些相关的网站,例如&a href=&///?target=http%3A///index.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Glassdoor - Get Hired. Love Your Job.&i class=&icon-external&&&/i&&/a&&br&请试试在上面搜索“Java Develoer”“Nashville, TN (US)”,看看有些怎样的工作。&br&这个网站有个tab是Salaries,点开它来了解“一般”的薪资状况。&br&看起来Nashville还有那么些Java职位,但是数量肯定远不如硅谷这边多。&br&&br&然后,专业英语最容易的学习方法就是阅读原版(或者影印版)的技术书,以及阅读原文的文档。不用太担心口语不流利的问题,来到这边很快就能在实际环境中达到“够用”的水平----为了生存,人的适应力还是很强大的。我见过很多人过来很多年口音还是很差,说话可能也还是磕巴,但并不太影响工作。&br&在英文口语方面,有一种可能让人意想不到的障碍是:如果要跟别国(例如印度)同事打交道的话,要听懂他们在说什么需要比你想像更强力的听力水平…&br&还有,出去吃饭的话有可能会?。请参考&a href=&/question/& class=&internal&&在美国吃赛百味从点餐到结账所需要用的英文有哪些? - 美食&/a&&br&&br&接着,在美国中部生活的话,薪资虽然普遍低一些但是生活开销也会比较低,就算年薪&$100k也可以活得很好吧。&br&在硅谷的话,税重消费高,什么都巨贵。如果是有妻小但是只靠你一个人工作的话,那就算年薪税前$200k也还是会觉得“吃力”----不是说活不下去,而是生活水平会很一般。反正光靠工资是买不起房子的,除非靠家里给首付。&br&同事经常开玩笑说当你报税只要交W-2的时候,年薪再怎么高也就那样。这当然是个夸张,不过这表达出的一般码农的淡淡忧伤很是生动。
这边这几天是Memorial Day weekend,很多人都没空刷知乎吧。 首先请善用一些相关的网站,例如 请试试在上面搜索“Java Develoer”“Nashville, TN (US)”,看看有些怎样的工作。 这个网站有个tab是Salaries,点开它…
2010年旧作,讲温格球员时代的,有不少细节和趋势可以看出温格为毛可以成为一个好教练。&br&&blockquote&如果说人生是一场游戏,那么温格就玩得很有策略性,就拿他前30年来讲,他早早意识到自己从先天条件到外部条件都注定无法成为顶级球员,于是他从一开始就琢磨怎么分配天赋点,并下定决心成为一名智力型英雄。在这个过程中,从酒吧的醉汉到儿时的玩伴再到球队的教练----身边可以利用的NPC他一个也不会放过,有的NPC可以帮助他增加技能,有的NPC可以帮助他获得双倍经验,有的NPC还会带他做任务,当然如果有必要,亲自体验一下其他类型英雄的玩法也无甚不可。从出生地的村庄到法丙、法乙、法甲再到日本、英格兰,温格的练级场所也随着他本人level的上升而改变,如果他能带领阿森纳实现终极梦想,那么他的人生游戏就将没有任何遗憾……&br&&br&球员生涯简史&br&&b&????-1969----杜特伦赫姆(司职右内锋)&/b&&br&值得一提的事情:温格人生中效力的第一支球队,10多岁时加盟该队,一直到20岁离开。温格在若干年后回忆往事时认为自己的球员生涯起步太晚,因此很难出人头地。不过温格在那时就已经显现自己做教练的潜质,他在20岁时已经开始负责球队训练和战术安排,俨然是这支村庄球队的领袖。&b&在前不久的访谈中温格还透露自己从小混迹酒吧,在那里学会与人打交道,并且听人谈论足球。&/b&&br&&br&球技点评:&br&&br&哈克(前穆特齐格球员,温格的对手):&b&他12岁时就是一个非常冷静,头脑清晰的球员,他通常都是球队的战术组织者。他能以很平静的方式让大家都按照他的想法踢球。&/b&----摘自《温格传记:一个传奇的诞生》&/blockquote&&img src=&/070c5acaf1b86a06ae1de8e_b.jpg& data-rawwidth=&879& data-rawheight=&504& class=&origin_image zh-lightbox-thumb& width=&879& data-original=&/070c5acaf1b86a06ae1de8e_r.jpg&&&blockquote&据说温格在球队里总是非常严肃,他对待足球有一种特别的神圣感,从上面这张照片里我们就能看出温格的那种“神圣感”。&br&&br&&b&----穆特齐格(司职防守型中场)&/b&&br&&br&值得一提的事:温格在这里遇到了自己最重要的人生导师(之一)----&b&希尔德。希尔德将温格选到自己球队的行为并未被很多人认可,他觉得那是慧眼识珠,可很多人笑他选错了“温格”,因为阿尔塞纳-温格的哥哥古伊-温格球技更出色,只是两人性格截然不同,阿尔塞纳严谨且较真,古伊散漫爱迟到。&/b&温格后来随球队一同获得了地区联赛冠军,也算小有收获。&b&与此同时温格正式开始为自己今后的教练生涯做积累,他总是希望从在斯特拉斯堡效力的好友那里得到详尽的训练信息。&/b&&br&&br&之所以说希尔德是温格人生最重要的导师,因为他和温格亦师亦友的关系。温格出生在战后的斯特拉斯堡----地处法德边境的阿尔萨斯地区首府,各位应该都读过都德的《最后一课》,阿尔萨斯曾经一度被德国人占领,在温格出生前阿尔萨斯就已经重归法国国土,可是那一地区依旧有着浓重的德国气息。&b&温格本人对自己的这段经历有如下回忆:“我是法国人,但同时也受到德国的影响,就算是我看待足球的方式也是如此,我能感受得到。我是在战后出生的,我生来所受的教育就要求我痛恨德国,但是这激发了我的好奇心,我越过边境线去看德国人的时候发现大家没两样,他们也渴望得到快乐,我觉得痛恨他们是极其愚蠢的。&/b&”&b&而领着温格越过边境线走入德甲赛场的人正是希尔德,温格在那里看到了当时叱咤风云的门兴格拉德巴赫,并且成为了他们的球迷……要知道,这支球队的前缀是Borussia(普鲁士),那时的温格可不在乎,普鲁士-门兴格拉德巴赫的球风快速精确,德甲比赛激烈精彩,温格为之深深倾倒。据希尔德回忆,在比赛里温格从不与球迷一同呐喊欢呼,倒是在漫长的往返旅程中,温格总是滔滔不绝地与老师讨论各种技战术问题。&/b&&br&&b&&br&&/b&&br&球技点评:&br&&br&马克斯-希尔德(前穆特齐格主帅):如果在16岁时发现他,温格也许能成为一个不错的职业球员,甚至在法甲找到自己的位置。对那样身材瘦高,四肢很长的人来说,他算是技术相当出色了。比赛全局观非常好,跑动积极,传球也不错。他的头球已经很有些功底了。&b&他更像谁?帕洛尔?罗伊-基恩!&/b&----摘自《温格传记:一个传奇的诞生》&br&&img src=&/9bbe58becbf6_b.jpg& data-rawwidth=&300& data-rawheight=&210& class=&content_image& width=&300&&&br&&b&----穆尔豪斯(司职右中场)&/b&&br&&br&值得一提的事:温格签下了一份月薪为2000法郎的半职业合同,奇怪的是球队签下了温格,主教练阿隆索却不给他任何机会,直到穆尔豪斯深陷保级圈,阿隆索下课弗朗茨上任,这一情况才有了改善。而弗朗茨是温格人生的另外一位重要导师,他的学生还包括雅凯、勒梅尔、居伊鲁、希尔德(就是温格恩师NO 1)。&b&温格在弗朗茨手下并不得重用,但是两人关系融洽,温格强大的学习能力和学习热情让弗朗茨惊叹,也许弗朗茨也觉得自己在培养一名教练,而不是一个球员。弗朗茨对于球员饮食和生活作息的理念也深深感染温格,这也在温格如今的执教理念中可见一斑。&/b&&br&&br&球技点评:&br&&br&弗朗茨(前穆尔豪斯主帅):&b&他不会用左脚踢球,速度也一般,不过很勤奋。他知道怎么组织好比赛。他有一个运速极快的大脑,很多问题,你只要提醒一次,他就能马上做好。他能解决许多足球疑问,不过理论上的知识和亲历亲为在场上表达出思想,完全是两码事。他总差一点 什么,也许只有1毫米的差距,可这正是职业球员和业余球员的差距。&/b&----摘自《温格传记:一个传奇的诞生》&br&&br&&img src=&/66d7d1c2d506bfbe77b4_b.jpg& data-rawwidth=&300& data-rawheight=&210& class=&content_image& width=&300&&&br&&br&&b&----ASPV斯特拉斯堡&/b&&br&&br&&b&----RC斯特拉斯堡(司职清道夫)&/b&&br&&br&值得一提的事:斯特拉斯堡主帅格雷斯亦是弗朗茨的弟子,他聘请自己的同门希尔德为预备队主帅,弗朗茨本人也是斯特拉斯堡的董事会成员,于是温格也跟在希尔德屁股后面去了斯特拉斯堡,从某种意义上讲那时的温格与其说是球员转会,倒不如说是教练转会。&b&温格在加盟球队第一个赛季就随队获得了法甲冠军,所以你可以说温格是法甲冠军队成员……虽然其实这件事和他关系不大,也许对温格本人来说那一年更有意义的事是他去剑桥大学学了三个礼拜的英语,当时队友都认为他疯了。在斯特拉斯堡全部3个赛季里温格一共只出战11次,后两个赛季以预备队队长名义统领预备队,在希尔德上调的情况下温格其实就是预备队主帅。温格也从那时开始了自己的考证生涯,从少年足球教练***到法国足协教练***,温格一一拿下。&/b&&br&&br&&img src=&/4ba60739bcf6e4e161fa_b.jpg& data-rawwidth=&424& data-rawheight=&516& class=&origin_image zh-lightbox-thumb& width=&424& data-original=&/4ba60739bcf6e4e161fa_r.jpg&&&br&&br&球技点评:&br&&br&马克斯-希尔德(前斯特拉斯堡主帅):&b&他会用头脑思考足球,思维的敏捷是他最大优势,对于俱乐部基础建设方面的事情他非常感兴趣。他参加过11场法甲联赛和一场联盟杯比赛。&/b&----摘自《温格传记:一个传奇的诞生》&br&&br&卡普费尔(足球记者):1979年斯塔拉斯堡队夺得法国联赛冠军的时候,温格作为首发曾经出场过两三次。但最让我记忆犹新的还是联盟杯赛客场与杜伊斯堡队的比赛,那是他参加的惟一欧洲比赛,但不幸的是以0比4失利,而温格那场比赛司职中后卫,回到主场他就失去上场机会。&b&温格之所以一直处于业余水平是因为他始终不愿意放弃大学课程。&/b&----摘自《温格传记:一个传奇的诞生》&/blockquote&配些视频&br&&br&&br&&br&&br&&br&第一个是温格说日语告别J联赛,最后两个一个是温格年轻时金发飘飘的影像,一个是他颠球的
2010年旧作,讲温格球员时代的,有不少细节和趋势可以看出温格为毛可以成为一个好教练。 如果说人生是一场游戏,那么温格就玩得很有策略性,就拿他前30年来讲,他早早意识到自己从先天条件到外部条件都注定无法成为顶级球员,于是他从一开始就琢磨怎么分配…
&i&首先,还是政治是否正确问题&/i&&br&&b&---------------------------------------------&/b&&br&&br&&br&&br&&br&&b&A.&br&想通过阅读一个开源项目来提高自己的能力 &/b&这个想法这个计划不完整,或者更婉转的说法:这是不可能达成提高能力的目标。&br&&br&学习编程,无论什么语言,个人经历经验中,唯一能提高能力的方法是:&br&&br&&u&&b&写代码=&阅读(书籍,源码)=&重构代码&/b&&/u&&br&&br&反复这个过程,直到代码达到工业级别。&br&&br&&b&B.&/b&&br&学习语言重要的是领会编程语言中的核心概念:面向对象,接口,泛型,闭包等等。这些东西不是阅读某一本书就能理解的。&br&&br&你得在心中持有这些疑问:为什么编程语言众多,各自区别是什么?为什么不同语言提供不同的语法特性?这些特性对要解决的问题,提供了怎么样的方案和抽象能力?&br&&br&去追问历史,探究语言为什么是当下这个样子,发展过程中经历哪些权衡取舍。&br&&br&刚开始时不一定要有***,但一定要问自己这些问题!&br&&br&&br&&br&&i&其次,针对问题的方法论&/i&&br&---------------------------------------------&br&大二学生,刚学习完Java。注意到题主措词是“刚读完”。所以,列入Java 入门者的定位。&br&&br&这个阶段,不要怕重复造轮子,尽可能多写代码吧。&br&&br&以学习 Log4j为例:&br&&br&刚学习完 Java 基础,可以试试 重复造一个 Log4j 出来。&br&&br&不了解 Log4j?那么去了解下!&br&去阅读相关的文档,了解提出了什么需求,要实现了什么目标。&br&&br&Log4j 作为一个基础构件,功能和目标都很清晰。自己实现一个后,看看工业级别的 Log4j 是怎么实现的。此时,你大概会发现,你要去学习设计模式,去深入理解 IO等等各种东西。不了解的东西很多,那么继续去看书吧。&br&&br&看完后,继续重构,重构时不要看 Log4j 源码。&br&&br&这样反复迭代几次看看效果吧&br&&br&&i&最后,其它&/i&&br&---------------------------------------------&br&不反对直接上手就拿 Java 来开发 JavaEE应用,开发 Android 应用。&br&但从提高能力角度来看,去实现一些基础构件,去重复造一些轮子,去迫使自己遵循并践行 KISS、DRY 原则,会是一个能力提升捷径。
首先,还是政治是否正确问题 --------------------------------------------- A. 想通过阅读一个开源项目来提高自己的能力 这个想法这个计划不完整,或者更婉转的说法:这是不可能达成提高能力的目标。 学习编程,无论什么语言,个人经历经验中,唯一能提高…
首先我想问你,你是付费看人家的视频吗?如果人家只是共享出来,让那些想学习的人入门更简单而已,而你却只知道在互联网资源上一味索取,看了人家共享的资源之后却在说人家垃圾之类的话,其实我也是一个IT从业者,我当初看过马士兵、韩顺平老师的视频,对于他们分享出自己的视频我非常的感谢,他们的视频让我入门java更容易。所以别这么的自私,如果你是付费消费的话,那你确实可以去说他。
首先我想问你,你是付费看人家的视频吗?如果人家只是共享出来,让那些想学习的人入门更简单而已,而你却只知道在互联网资源上一味索取,看了人家共享的资源之后却在说人家垃圾之类的话,其实我也是一个IT从业者,我当初看过马士兵、韩顺平老师的视频,对于…
因为大学期间花了大量的时间研究计算机图形学、人工智能、物理学的测试和体验工作,比如魔兽争霸、lol、劲舞团、冒险岛、魔兽世界、传奇世界、完美世界、诛仙、征途、绿色征途、qq三国、节奏大师等。
因为大学期间花了大量的时间研究计算机图形学、人工智能、物理学的测试和体验工作,比如魔兽争霸、lol、劲舞团、冒险岛、魔兽世界、传奇世界、完美世界、诛仙、征途、绿色征途、qq三国、节奏大师等。
让你高薪续约鲁尼!&br&&br&说高薪续约会给球员带来正面激励的就呵呵吧。刚从中东回来轮换足够几乎不可能存在体能问题打出了一场站桩式比赛。&br&&br&某核心全场只贡献了一个铲断,作为进攻核心只射门一次还他妈的没打正,作为组织核心0威胁球----对水晶宫那场基本中场没人逼抢他也是0威胁球----传球60次成功率82%,被断球6次,所有对抗都失败,1次过人。有这样的核心你想要进攻想要防守?鲁尼现在已经不光是能力问题了,他在场上的出工不出力完全就是副作用的战术毒瘤。而以他的能力配上这个职业态度加上这份薪水,一天在场上一天就是毒瘤。看看这场球球员们的精神气质已经糟糕到了什么程度?&br&&br&不作死就不会死,莫耶斯不长记性就活该。这赛季凡是弃用鲁雄心战术的基本结果都不错,而反之哪怕场面再好最后结果也是被打脸,还记不住还想捧着鲁雄心?还直接续约到19年?自己已经给后来人挖好坑了?能慢慢淡化处理了撸熊心这蠢货也还罢了。否则只能越陷越深。拿出当年在埃弗顿处理一众球霸的手段吧莫耶斯。唯一可以乐观的事儿是,现在你还有退路,而某核心已经彻底没有了。当然,他也不需要什么退路,合同已经到手了。别指望他能对得起这份合同。&br&&br&一个球队进攻转换的枢纽表现如此低迷,进攻端没有任何办法去克制对方的后场以赢得优势,尤其是还拿着全联赛历史级别的第一高薪,两次丢球之后坐地下看裁判拍草皮,表现成这样不怪他怪谁?全场球员这种站桩踢法难道不是最直接的反映?&br&&br&鲁尼这货除了大英头牌***头名之外还有多少实际价值,说句不好听的,真从战绩本身出发,拿郜林换鲁尼都值了。对于曼联主教练郜林可以搓圆捏扁随便怎么安排,但是鲁尼就是老大难问题……C罗一个人制造跟扭曲场上空间的能力是世界顶级的,他一个人就意味着对面这一个半扇都要被他牵制,即使在这种情况下鲁尼的进球率甚至都不如特维斯这个反抢属性更大的人。10年之后鲁尼身体再次下滑就连中锋都打不动了,不得不把贝巴一个九号半拿去当范尼用让鲁尼打二前锋。11年进欧冠决赛最大功臣是吉格斯那年英国舆论甚至提议给他封爵(如果不是那一出偷情门爵位十有八九就到手了)。而老吉生姜两个人老了不能稳定首发之后,弗格森倾尽全力也只能让曼联拿到一座亚军而且欧冠早早出局……随着曼联全队的老化就连两千场比赛经验加身的历史最强临场教练弗格森都没能力同时在数据跟战术地位上满足鲁尼。而且从埃弗顿经验来看,莫耶斯用来填充进英式体系里面的东西是力量跟稳定性,靠这个占据一块稳定空间并缩短反复突击距离。鲁尼任何程度上都不符合。。。&br&&br&想让鲁尼数据上满足也可以……曼联把整个后卫线换成一流水平,吉格斯跟斯科尔斯至少有一个回到08年前后的身体状态然后买进一个好边锋顺便拼命压榨范佩西维尔贝克跟瓦伦西亚……&br&&br&特维斯跟鲁尼在二选一中被放弃了,为了鲁尼的战术地位牺牲了瓦伦跟贝巴,为了鲁尼的踢法需求牺牲了纳尼跟安德森,为了鲁尼的场上位置放走了博格巴用废了克莱维利。而这一切的根源不过是鲁尼有***,10年之前鲁尼强到加上***这么干也勉强值了而10年之后……所有人都高估了这货的脑子+竞技状态+身体素质+节操水平+忠心程度……
让你高薪续约鲁尼! 说高薪续约会给球员带来正面激励的就呵呵吧。刚从中东回来轮换足够几乎不可能存在体能问题打出了一场站桩式比赛。 某核心全场只贡献了一个铲断,作为进攻核心只射门一次还他妈的没打正,作为组织核心0威胁球----对水晶宫那场基本中场没…
请独立完成论文写作
请独立完成论文写作
看了一圈,基本都乱答。ssh是javaee么?jdbc是javaee标准么?除了struts是基于servlet标准和filter标准之外,其他和javaee屁关系没有。&br&啥是javaee标准呢?jsp,servlet,ejb,jms,jta,jsf。你们耳熟能详的jdbc接口不是!为什么?因为你只需要***javase的包就可以引入。&br&&br&所以,看了上面的清单,你可想而知,在一线互联网公司和一线跨国公司。javaee早已开始被边缘化。拿存在感最高的servlet来说,大公司比如鹅厂的广告部用play代替javase系列的server改进并发性能,早已经没有servlet了。阿里内部服务架构广泛使用的dubbo是基于netty的,因为内部服务通信不需要http协议那么重。剩下的对客户端的那块,比如rs服务还是基于servlet,那也是历史原因了。出于成本考虑还没人改。随着架构的演进,大家肯定会青睐更轻量级的方案,javaee会渐渐退出历史舞台。&br&&br&3月25日更新&br&笔者并不是说javaee不重要,相反,我认为很多javaee标准相当重要。javaee的很多设计都是遵循best practice。只是,现代架构的演进,早已超过javaee标准的范围。举个最简单的例子,javaee的websocket标准推出的时候,node上的socketio早已推出了一年半。甚至tomcat7上都有了非标准实现。标准的推广也是有时间窗口的。当市面上的系统都开始用socketio了,大家还有多少动力去改成所谓的标准实现。osgi和kafka(对应jms)也是一个很好的例子。&br&&br&总结,javaee至少是没有那么重要了,碰到标准没有的情况(虽然现代架构很容易就能碰到),比如集群消息组件(kafka),集群缓存组件(radis),集群并发计算组件(spark),别犹豫,不要为了javaee而javaee。
看了一圈,基本都乱答。ssh是javaee么?jdbc是javaee标准么?除了struts是基于servlet标准和filter标准之外,其他和javaee屁关系没有。 啥是javaee标准呢?jsp,servlet,ejb,jms,jta,jsf。你们耳熟能详的jdbc接口不是!为什么?因为你只需要***javase的…
高能!接下来我要写一下如何用脑残方式分析源代码的方法(づ ̄ 3 ̄)づ&br&在没看到这个Question的时候其实我不知道forword原理是怎样的,只记得是服务器转发,还从来没探究过原理细节,正好看看tomcat细节也不错(虽然已经不用web容器了,但是要保持geek)&br&-----------&br&第一步:&br&
写个简单的servlet,在你的forword处打个断点。按流程一步步走&br&第二步:&br&
开始分析,看内存参数变化,流程。走一套流程,应该比较完全,现在电脑没有环境,我也懒得搞了,就在&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上面看看源码试着走一下,我们先看一个方法,大家应该熟悉吧&br&&div class=&highlight&&&pre&&code class=&language-java&&
&span class=&kd&&public&/span& &span class=&n&&RequestDispatcher&/span& &span class=&nf&&getRequestDispatcher&/span&&span class=&o&&(&/span&&span class=&n&&String&/span& &span class=&n&&path&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&c1&&//省去部分代码&/span&
&span class=&n&&context&/span&&span class=&o&&.&/span&&span class=&na&&getMapper&/span&&span class=&o&&().&/span&&span class=&na&&map&/span&&span class=&o&&(&/span&&span class=&n&&uriMB&/span&&span class=&o&&,&/span& &span class=&n&&mappingData&/span&&span class=&o&&);&/span&
&span class=&c1&&//省去部分代码&/span&
&span class=&n&&Wrapper&/span& &span class=&n&&wrapper&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&n&&Wrapper&/span&&span class=&o&&)&/span& &span class=&n&&mappingData&/span&&span class=&o&&.&/span&&span class=&na&&wrapper&/span&&span class=&o&&;&/span&
&span class=&n&&String&/span& &span class=&n&&wrapperPath&/span& &span class=&o&&=&/span& &span class=&n&&mappingData&/span&&span class=&o&&.&/span&&span class=&na&&wrapperPath&/span&&span class=&o&&.&/span&&span class=&na&&toString&/span&&span class=&o&&();&/span&
&span class=&n&&String&/span& &span class=&n&&pathInfo&/span& &span class=&o&&=&/span& &span class=&n&&mappingData&/span&&span class=&o&&.&/span&&span class=&na&&pathInfo&/span&&span class=&o&&.&/span&&span class=&na&&toString&/span&&span class=&o&&();&/span&
&span class=&n&&mappingData&/span&&span class=&o&&.&/span&&span class=&na&&recycle&/span&&span class=&o&&();&/span&
&span class=&c1&&// Construct a RequestDispatcher to process this request&/span&
&span class=&k&&return&/span& &span class=&k&&new&/span& &span class=&n&&ApplicationDispatcher&/span&
&span class=&o&&(&/span&&span class=&n&&wrapper&/span&&span class=&o&&,&/span& &span class=&n&&uriCC&/span&&span class=&o&&.&/span&&span class=&na&&toString&/span&&span class=&o&&(),&/span& &span class=&n&&wrapperPath&/span&&span class=&o&&,&/span& &span class=&n&&pathInfo&/span&&span class=&o&&,&/span&
&span class=&n&&queryString&/span&&span class=&o&&,&/span& &span class=&kc&&null&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&这个方法,根据路径名“path”找到一个包含有Servlet的Wrapper,wrapper这个东西在后面非常重要哦,最后实例化一个ApplicationDispatcher,并且返回该ApplicationDispatcher。&br&首先我们进入下面这个包看一下,这个包非常重要哦。我们主要关注ApplicationDispatcher类&div class=&highlight&&&pre&&code class=&language-text&&package org.apache.catalina.
&/code&&/pre&&/div&&img src=&/9a8cd575c6c64aa5b3c9dea43d6bcd8f_b.png& data-rawwidth=&388& data-rawheight=&69& class=&content_image& width=&388&&ApplicationDispatcher实现了RequestDispather这个servlet规范接口,然后找到forward方法&a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/8.0.24/org/apache/catalina/core/ApplicationDispatcher.java%23ApplicationDispatcher.forward%2528javax.servlet.ServletRequest%252Cjavax.servlet.ServletResponse%2529& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GC: ApplicationDispatcher&i class=&icon-external&&&/i&&/a&&br&&img src=&/6ba095b01ac5a38beac7f905fb9e1999_b.png& data-rawwidth=&681& data-rawheight=&290& class=&origin_image zh-lightbox-thumb& width=&681& data-original=&/6ba095b01ac5a38beac7f905fb9e1999_r.png&&哎呀卧槽,好多乱七八糟的东西=。=!看不懂,我还是去看海贼王吧(开个玩笑).这个时候不要慌张,我们看上面的title&br&&blockquote&Forward this request and response to another resource for processing. Any runtime exception, IOException, or ServletException thrown by the called servlet will be propagated to the caller.&br&&/blockquote&假设上面一段开发是做了些比较厉害的事吧,doFroward(req,resp)貌似才是正常的跳转方法(应该没人会怀疑吧)。那我们点进去吧,&a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/8.0.24/org/apache/catalina/core/ApplicationDispatcher.java%23ApplicationDispatcher.doForward%2528javax.servlet.ServletRequest%252Cjavax.servlet.ServletResponse%2529& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GC: ApplicationDispatcher&i class=&icon-external&&&/i&&/a& doFroward方法太长&br&但是里面注释很多,通过我机智的猜想,我觉得processRequest才是比较核心的方法(所以是无脑的分析嘛(づ ̄ 3 ̄)づ,你们不信)&br&&img src=&/f6a3ac2c08df4c6070f07a_b.png& data-rawwidth=&490& data-rawheight=&218& class=&origin_image zh-lightbox-thumb& width=&490& data-original=&/f6a3ac2c08df4c6070f07a_r.png&&其实这个方法里面干了很多事情,但是和我们要探究的事情不在一条线上,我们主要关心在哪里发起request,所以我们跟着request对象走就行了,看看有关的方法都做了写啥,怎么找到servelt的之类的,这个方法做了很多细节上的事情,包括&br&&img src=&/25dd07b8d75b7e852ab12d28521cae37_b.png& data-rawwidth=&600& data-rawheight=&89& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/25dd07b8d75b7e852ab12d28521cae37_r.png&&这样一些额外的东西,好吧,我们进去processRequest看看&a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/8.0.24/org/apache/catalina/core/ApplicationDispatcher.java%23ApplicationDispatcher.processRequest%2528javax.servlet.ServletRequest%252Cjavax.servlet.ServletResponse%252Corg.apache.catalina.core.ApplicationDispatcher.State%2529& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GC: ApplicationDispatcher&i class=&icon-external&&&/i&&/a&&br&&img src=&/653eaecef2b_b.png& data-rawwidth=&841& data-rawheight=&532& class=&origin_image zh-lightbox-thumb& width=&841& data-original=&/653eaecef2b_r.png&&?(???)?,又TM没注释,(?`□′)??┻━┻,看title吧&br&&blockquote&Prepare the request based on the filter configuration.&br&&/blockquote&好吧,根据filter来做请求准备,然后大家又发现了invoke方法&a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/8.0.24/org/apache/catalina/core/ApplicationDispatcher.java%23ApplicationDispatcher.invoke%2528javax.servlet.ServletRequest%252Cjavax.servlet.ServletResponse%252Corg.apache.catalina.core.ApplicationDispatcher.State%2529& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GC: ApplicationDispatcher&i class=&icon-external&&&/i&&/a&,哇。听这个方法名称我想我们已经找到最终的地方了,方法有点长,我们一段一段的看看,先看title。英文不过关,用翻译吧&br&&blockquote&Ask the resource represented by this RequestDispatcher to process the associated request, and create (or append to) the associated response.&br&&/blockquote&然后我们看第一段代码&br&&img src=&/e0af5b0ae6652fca8088a_b.png& data-rawwidth=&605& data-rawheight=&205& class=&origin_image zh-lightbox-thumb& width=&605& data-original=&/e0af5b0ae6652fca8088a_r.png&&%&_&%,看到这段的开始,我就预感到了,有啥?ClassLoader?&a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-servlet-api/8.0.24/javax/servlet/http/HttpServletResponse.java%23HttpServletResponse& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HttpServletResponse&i class=&icon-external&&&/i&&/a& ,Servlet接口 和必要的异常类,而且还有一句话,现在你可以放开你的思维!想想接下里会发生什么&br&&blockquote&Initialize local variables we may need&br&&/blockquote&&img src=&/7d405b230ba05ebc_b.png& data-rawwidth=&485& data-rawheight=&87& class=&origin_image zh-lightbox-thumb& width=&485& data-original=&/7d405b230ba05ebc_r.png&&然后我们的servlet出现的地方就是这里,然后后面是调用,&b&注意看注释&/b&&br&&img src=&/c1aadcd16bd16ac_b.png& data-rawwidth=&661& data-rawheight=&530& class=&origin_image zh-lightbox-thumb& width=&661& data-original=&/c1aadcd16bd16ac_r.png&&&blockquote&Call the service() method for the allocated servlet instance&br&&/blockquote&我们看看wrapper接口的allocate方法具体做了些啥?我们看看StandardWrapper &a href=&///?target=http%3A///file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/8.0.24/org/apache/catalina/core/StandardWrapper.java%23StandardWrapper.allocate%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GC: StandardWrapper&i class=&icon-external&&&/i&&/a&类的allocate的实现,先直接看返回的地方在哪里&br&&img src=&/aebfa3d44a_b.png& data-rawwidth=&411& data-rawheight=&44& class=&content_image& width=&411&&=。=最后一行,表示实在一个池子里面拿出来了,好吧,是不是对你的认识有一些同学有点不解,servlet咋会从池子里拿出来,&b&servlet不是单例的吗?&/b&&br&&blockquote&Allocate an initialized instance of this Servlet that is ready to have its service() method called. If the servlet class does not implement SingleThreadModel, the (only) initialized instance may be returned immediately. If the servlet class implementsSingleThreadModel, the Wrapper implementation must ensure that this instance is not allocated again until it is deallocated by a call to deallocate().&/blockquote&这里有一个故事,不知道大家是否知道呢?:正因为servlet是单例的,所以会出现我们说的线程不安全,为了解决问题当时就设计了SingleThreadModel这个接口,维护一个servlet pool,所以你会看到这些东西,以下&br&&img src=&/acde9b82ffdf6bbbbce2003_b.png& data-rawwidth=&272& data-rawheight=&40& class=&content_image& width=&272&&-----&br&&img src=&/32d0c163d9f9e8b58a23dfbe4782390d_b.png& data-rawwidth=&516& data-rawheight=&78& class=&origin_image zh-lightbox-thumb& width=&516& data-original=&/32d0c163d9f9e8b58a23dfbe4782390d_r.png&&&br&但是由于性能和不能解决所有问题,在API2.4以后Deprecated。&br&&blockquote&Ensures that servlets handle only one request at a time. This interface has no methods.&p&If a servlet implements this interface, you are &i&guaranteed&/i& that no two threads will execute concurrently in the servlet'sservice method. The servlet container can make this guarantee by synchronizing access to a single instance of the servlet, or by maintaining a pool of servlet instances and dispatching each new request to a free servlet.&/p&&p&Note that SingleThreadModel does not solve all thread safety issues. For example, session attributes and static variables can still be accessed by multiple requests on multiple threads at the same time, even when SingleThreadModel servlets are used. It is recommended that a developer take other means to resolve those issues instead of implementing this interface, such as avoiding the usage of an instance variable or synchronizing the block of the code accessing those resources. This interface is deprecated in Servlet API version 2.4.&/p&&br&Deprecated:&b&As of Java Servlet API 2.4, with no direct replacement.&/b&Author(s):Various&/blockquote&在allocate方法中,有一个initServlet方法,里面会发现一些有趣的东西&br&&img src=&/cfc4bb7177edc211f502_b.png& data-rawwidth=&620& data-rawheight=&415& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&/cfc4bb7177edc211f502_r.png&&其实&b&很多细节都没有讲清楚(真的)&/b&,码字太累了!只能有个大概的分析轮廓,能看懂最好咯(づ ̄ 3 ̄)づ&br&&br&引用:&br&&a href=&///?target=http%3A///gw811/archive//2674859.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深入研究Servlet线程安全性问题&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///developerworks/cn/java/j-lo-tomcat1/%23ibm-pcon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tomcat 系统架构与设计模式,第 1 部分: 工作原理&i class=&icon-external&&&/i&&/a&
高能!接下来我要写一下如何用脑残方式分析源代码的方法(づ ̄ 3 ̄)づ 在没看到这个Question的时候其实我不知道forword原理是怎样的,只记得是服务器转发,还从来没探究过原理细节,正好看看tomcat细节也不错(虽然已经不用web容器了,但是要保持geek) ------…
&p&The compiler is telling you that the case is ambiguous and you need see sharp.&/p&
The compiler is telling you that the case is ambiguous and you need see sharp.
诶,突然看到个我研究过的东西。&br&&br&简单说吧,复杂的我也说不来:&br&&br&OAuth 自身也有各种模式的,分为客户端的授权模式,授权码模式,简化模式,密码模式。知乎在 Android APP 上使用的是密码模式。&br&&br&知乎的 OAuth 验证会在你第一次登录成功后会给 APP 下发一个 User Token,用的是 Bearer Token,你可以想像成是用户的标识(***号)。&br&&br&APP 之后的每次请求都会在 HTTP Header 里带上这个 Token,服务器就知道你的 APP 现在代表的是哪个用户了。&br&&br&当然登录的过程还需要一些东西的配合,比如说每个 APP 需要由 CLIENTID,SECRET 等证实自己是合法应用;登录请求需要加密防止密码泄漏;需要 Cookies 和 Session 来储存验证码会话,等等细节。&br&&br&我在写项目的时候写了一篇文档来记录我分析知乎 OAuth 的过程,应该算很详细的,可以看看,目前应该还没有过时:&a href=&///?target=http%3A//zhihu-oauth.readthedocs.io/zh_CN/latest/for-dev/oauth/game.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Game walkthrough - 游戏攻略&i class=&icon-external&&&/i&&/a&&br&&br&然而看上面那篇文档需要一些基础知识吧可能,如果有看不懂的地方可以看看下面的参考资料(但是我写的应该很易懂了):&br&&br&关于 OAuth 的基础知识,可以看看阮一峰的这篇文章:&a href=&///?target=http%3A///blog/2014/05/oauth_2_0.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&理解OAuth 2.0&i class=&icon-external&&&/i&&/a&&br&如果你想更加深入了解,去看 RFC 吧:&a href=&///?target=https%3A//tools.ietf.org/html/rfc6749& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RFC 6749 - The OAuth 2.0 Authorization Framework&i class=&icon-external&&&/i&&/a&&br&然后是 Bearer Token 的 RFC:&a href=&///?target=https%3A//tools.ietf.org/html/rfc6750& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage&i class=&icon-external&&&/i&&/a&&br&&br&然后你第二个问题,***是知乎目前 PC web 端和 APP 端使用的 API 不相同。Web 版几乎所有 API 是返回 HTML 的,可能是为了方便前端吧。Mobile web 的话没研究过所以不清楚。&br&&br&以上。&br&&br&(希望我不会被封
诶,突然看到个我研究过的东西。 简单说吧,复杂的我也说不来: OAuth 自身也有各种模式的,分为客户端的授权模式,授权码模式,简化模式,密码模式。知乎在 Android APP 上使用的是密码模式。 知乎的 OAuth 验证会在你第一次登录成功后会给 APP 下发一个 U…
楼主加油,想搞java的话先打好基础:java se基础掌握好,比如集合框架、多线程、IO等等。&br&进阶点了解下jvm知识,分析,调优等。&br&学学linux的知识,怎么部署各种服务,包括装mysql jdk ,学学vi,bash脚本等等。&br&&br&&br&如果想做web开发,除了ssh,还要掌握前端开发,html css js ,jquery 什么的。&br&&br&如果想做app的server端开发,就学好java nio ,可以学个框架比如netty,protocolbuf,thrift等等。&br&学点中间件,缓存的有redis, memcache,消息队列有activemq,rabbitmq等。&br&学点分布式知识,nginx怎么配啦,怎么做高可用,高性能啦啥的。&br&&br&慢慢来,能去个有技术含量的公司最好了。good luck!
楼主加油,想搞java的话先打好基础:java se基础掌握好,比如集合框架、多线程、IO等等。 进阶点了解下jvm知识,分析,调优等。 学学linux的知识,怎么部署各种服务,包括装mysql jdk ,学学vi,bash脚本等等。 如果想做web开发,除了ssh,还要掌握前端开发,…
首先你要知道,分布式高并发并不意味着每个request都处理的很快,也不意味着机器之间就不共享数据了。其次,你可以把你所有带有副作用的task都给一个guid,最后写进数据库之前查一下这个guid是否已经被执行过了。
首先你要知道,分布式高并发并不意味着每个request都处理的很快,也不意味着机器之间就不共享数据了。其次,你可以把你所有带有副作用的task都给一个guid,最后写进数据库之前查一下这个guid是否已经被执行过了。
看楼主的经历和我有点类似,希望能给你一些参考&br&&br&我是大一暑假才开始学习Java的, 大一学习了C/C++和HTML CSS Javascrip基础。&br&SSH学习有一个难点就是突然涌入的知识点太多,对于一个没有开发经验的学生来说,一时间可能难以接受(我比较笨)。当时,从开始学习SSH,到真正产出一个完整的项目用了两三个月时间。&br&&br&&b&回来总结经验,为什么会花这么多时间呢?&/b&&br&&br&1. 没有可供参考的项目:那时候,信息检索能力还是比较差,就只查到 &a href=&///?target=http%3A//download.csdn.net/detail/zuokk/3802115& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&巴巴运动网源码和jar文件&i class=&icon-external&&&/i&&/a& 而且使用的还是status1,不过还是推荐阅读下代码,其中关于Hibernate层的封装给我的启发很大。&br&2. 过分追求代码结构设计而导致拖延症发作:经常纠结的问题就是,这个功能,我这么写,是否符合主流设计方法?是否以后不好扩展?&br&我个人的观点是,对于新手,完成一个功能首先要想的是这么实现他,当你实现后,再考虑如何优化的问题。好的代码设计是 简要架构-&编码-&重构-&重构-&积累经验&br&3. 没有人带,所谓师傅领入门,修行靠个人,如果有个靠谱的师兄带着,可以省很多时间,少走很多弯路。所以,少年,赶快巴结学校项目团队里面的师兄吧,师兄们都是很闷骚的,大多师兄都会很乐意带师弟师妹,因为他们也希望有人听他们吹牛逼^_^。&br&&br&我个人比较推崇的学习方法是, 驱动式学习,先清楚你要达到什么目标,比如完成一个博客系统(很多人第一个个人项目都是编写自己的Blog),&br&&br&确定目标-&开始编码-&遇到问题-&解决问题-&需要新知识-&学习新知识-&完成基本功能-&优化重构代码&br&&br&&b&接下来做什么呢?&/b&&br&&br&1. 学习一门脚本语言,如Python, NodeJS之类的,语言没有好坏,只有适合不适合。&br&2. 学习Linux操作系统,最好现在就开始再Linux下进行开发。所有的不习惯不方便都可以克服的。&br&3. 学习基础(重要),如TCP/IP,操作系统,基础数据结构,C/C++&br&&br&PS:我现在最后悔的事是,大一大二的时候过于看重项目经验而忽略基础知识的学习,现在正在补基础中...&br&&br&要注意什么呢?&br&&br&1. 不要做太多外包项目,外包项目能最大程度让你再学习接触到真实的商业产品的要求,是一种很不错的经验,但接单慎重, 一般外包给学生的,都的技术水平低的,大多是CRUD类型的项目,做一两个后就很难积累项目经验,而且给的钱也非常低。(我大学做的外包项目,赚的钱还没有实习一个月拿的多T_T,真的比搬砖还苦逼)&br&2. 学习的技能可以广泛,但要有一门是专精的。&br&3. 专业技能只是一方面,沟通技巧,为人处世也很重要。建议参加个社团,或多参加社会活动。&br&&br&代码写多了,都不会说人话了,回头看,发现文字逻辑有点乱,又要开始搬砖了,回头再改。
看楼主的经历和我有点类似,希望能给你一些参考 我是大一暑假才开始学习Java的, 大一学习了C/C++和HTML CSS Javascrip基础。 SSH学习有一个难点就是突然涌入的知识点太多,对于一个没有开发经验的学生来说,一时间可能难以接受(我比较笨)。当时,从开始…
搞清楚自己想深入什么,然后找个大牛带你做项目。&br&&br&有个老大跟我说过,java这东西,平着看,是一种编程语言;往上看,是面向对象思想;往下看,是jvm和字节码。每一个角度都可以做的很深。你所说的“深入”学习java,是哪个方面呢?&br&如果是深入编程语言,学习一下各种api,学习一下大牛们写的代码。&br&如果是深入面向对象,从thinking in java等书开始,理解对象和面向对象的思想,理解面向对象的一些原则,学学设计模式。&br&深入jvm么……这个我也不知道。&br&学莫便乎近其人,找个大牛带你是最好的。如果没有人直接带你,那就找点大牛的代码来学。毕竟,作为程序员的知识都会沉淀在代码中。&br&当然,作为一门技术,实践是必不可少的。找个项目做做,或者跟一跟。
搞清楚自己想深入什么,然后找个大牛带你做项目。 有个老大跟我说过,java这东西,平着看,是一种编程语言;往上看,是面向对象思想;往下看,是jvm和字节码。每一个角度都可以做的很深。你所说的“深入”学习java,是哪个方面呢? 如果是深入编程语言,学…
随便说几句。&br&&br&我发现无论是贴吧还是论坛或者生活中的聊天,都会存在一种人,大家俗称他们董秋迪,这些人张嘴闭嘴足球战术,动辄442,352,翻来覆去绕一些晦涩的术语,或者如同教授般夸夸其谈,或者又如同专家般咄咄逼人,或者还如同神明一样高高在上。仿佛自己掌握了足球的真谛,喷薄而出的辞藻就如同雨露一样滋润知识贫乏的看客和听众。&br&&br&然而,我每每看到这样的情景,就觉得莫名的可笑,因为,其实他们根本还没有触摸到足球战术真谛的哪怕一星半点而自己却懵然未知,或许正因为这些人的无知才造就了他们幼稚的骄傲。&br&&br&我随便说说理由。&br&&br&首先,只通过所谓看电视和录像是绝不可能真正看透一场比赛真正的战术意图的,哪怕你把看上千百遍。再先进的转播技术都摆脱不了镜头以足球为中心这个基本原则,所以,无论你怎样不眨眼睛的盯着看屏幕,你也只能看到足球场的一小部分。而所谓战术的大部分正发生在你看不到的镜头外,比如,当后腰拿球的时候,边后卫正在怎样积极的寻找位置为持球人制造出球点,边前卫正试图站在对方中场的前进路线上阻断对方上抢,前锋又在怎样努力的跑位以创造反越位的可能?这些在电视里都看不到,你怎么敢妄谈战术?&br&&br&我再举个热刺的实际例子,比如列侬此时在边线附近拿到球了,董秋迪会告诉你,这时候他加速下底是什么什么战术,说一堆,这时候他内切是什么什么战术,又说一堆,这时候他传出去又是什么什么战术,再说一堆。我就告诉你,纯扯淡,不能说这不是战术,但这仅仅是最最基本和初级的战术。而此时,真正的战术正在你看不到的镜头外的各个角落发生。道森正在指挥着威尔通亨向上压,拉近与列侬的距离,以应对万一他丢球后第一时间上抢;桑德罗大脑在飞速的运转,尝试判断此时应该跑向列侬为他多创造一个出球点还是向前插来捕捉一个可能出现的禁区前远射机会;球场另一端的埃里克森究竟是往外跑接应长传转移,还是往内跑准备接应传中。。。这一切的一切,我们看不到的东西,才真正是战术的核心。&br&&br&从来没有一个战术专家,是坐在电视机和电脑前修炼出来的。&br&&br&为什么有上千盘录像,但俱乐部还是要派出无数球探现场看球员的表现?为什么一些教练站在场边都觉得看不出端倪要多跑几步上看台?为什么在真正的媒体和电视里没有所谓的专家说些贴吧董秋迪里嘴里说的那些所谓高深莫测的战术呢?&br&因为他们不蠢,真正蠢的人正在电脑屏幕前打字说,你们都是伪球迷,我才最懂。&br&&br&董秋迪只看了首发阵容,看了一会比赛,就能敏锐的看透教练的各种布置,对教练的指挥和换人做各种指导,这又是一种愚蠢的表现。&br&&br&每一周的这一场联赛,都是一个多人的教练团队根据球员们一周的身体状况,训练情况甚至心理情况经过反复研究做出的一个总结和判断,背后有太多我们球迷看不到的东西。&br&&br&比如,这一周沃克刚从国家队回来,体力不好,也许撑不过90分钟,那么我们就抢个开局攻一阵,下半场悠着点踢;又比如,列侬这一周膝盖都不舒服,可上场但不宜多做急停急转,那么我们就把他放在右路,别去左路以避免逆足突破时过多的变相和急停反扣;再比如,对方这一场中卫正好是埃里克森丹麦国家队的队友,他很熟悉对方的特点,那么我们就把小埃多拉到中路看能否利用。&br&&br&总之,战术布置绝不只是拿个板画个位置画个跑动线路这么简单,我们这些不了解背后方方面面点点滴滴的人,是绝不可能比与这些长时间泡在一起的教练做出更正确的选择的。&br&&br&有的董秋迪言之凿凿的分析,352,442,433,这样怎么样,那样怎么样,把个球员在球场上位置变化看得仿佛比自己工资单的变化还要清晰。&br&&br&但是他们忘记了,足球说到底是人在踢,任何战术的产生和变化,都是因为人的原因。不要说具体到某一个队,你们仔细想想,大到一个国家的足球战术产生和发展在根源上都来自人。&br&&br&意大利为什么盛行352,是因为意大利很少出现绝对速度快的球员,352阵型天生怕速度型选手的缺陷较难暴露;荷兰为什么崇尚433,是因为他们盛产边锋,物尽其用;为什么只在南美还保留单前腰,因为他们那里的土壤孕育出大量摆脱能力强传球能力强的盘带高手。&br&&br&看不透人性,想读懂战术?做梦吧
随便说几句。 我发现无论是贴吧还是论坛或者生活中的聊天,都会存在一种人,大家俗称他们董秋迪,这些人张嘴闭嘴足球战术,动辄442,352,翻来覆去绕一些晦涩的术语,或者如同教授般夸夸其谈,或者又如同专家般咄咄逼人,或者还如同神明一样高高在上。仿佛自…
阿沙文是一个技术特点十分突出(控球突破表现最佳),个性很强(场上极具霸气的表现力)的球员,是俄罗斯足坛多年来唯一一个具有洲际影响力的球星,是阿森纳在无冠期难得引进的明星级球员。&br&&br&2002年阿沙文就进入了俄罗斯国家队,那时候他还没过21周岁的生日。不过,当时的俄罗斯国家队不能算欧洲豪强,21岁也不算年轻,所以绝对称不上是年少成名。一直到2007年,时任国家队主教练希丁克任命了阿沙文为国家队队长,0708赛季阿沙文带领泽尼特捧起了联盟杯冠军。所有的故事都要从这一年开始说起,阿沙文可以说是「妖星突起」。&br&&br&0708欧洲联盟杯,圣彼得堡泽尼特队在阿沙文的带领下一路过关斩将,勇夺冠军,被泽尼特淘汰的球队有:比利亚雷亚尔、马赛、勒沃库森、拜仁慕尼黑、格拉斯哥流浪者。阿沙文杯赛打进6球,决赛泽尼特2-0格拉斯哥流浪者,两个进球都来自于阿沙文的策动。他也是决赛最佳球员。&br&&br&那时候阿沙文已经算是名动天下了。可惜联盟杯关注度不高,俄超又属于非主流联赛,所以我当时只知道俄罗斯有一支叫泽尼特的黑马球队,里面有个叫阿沙文的人很妖。&br&&br&08年欧洲杯,阿沙文因为预选赛红牌而停赛两场。俄罗斯的D组对手是:西班牙(当时还不被看好,因为传统就是大赛必死,但是实力摆在那里)、希腊(卫冕冠军,虽然实力很渣,04年一招鲜的战术已经被吃透了,但毕竟还是冠军)、瑞典(北欧劲旅,代表:拉尔森、伊布)。阿沙文是俄罗斯的队长兼核心,小组赛前两场缺席对俄罗斯打击很大,如果发挥不好很可能阿沙文就出场一次走走过程。&br&&br&第一场打西班牙,被干净利索地打了个1-4。命悬一线。好在第二场打希腊,一球小胜。&br&&br&好了,第三场打瑞典。瑞典之前也是一胜一负。生死战。队长阿沙文复出,全世界都在看,这个在联盟杯很妖气的球星到底有多妖。阿沙文果然不负众望,策动了一个进球,打入一个进球,2-0解决了倾尽全力的瑞典。第一次,沙皇终于站在欧洲足坛的最高舞台上,向世人证明了自己。&br&&br&小组出线后对阵从死亡之组(荷兰、意大利、法国、罗马尼亚)以全胜战绩杀出的荷兰。阿沙文又惊艳了一次。下半场阿沙文的一次间接助攻帮俄罗斯首开纪录。终场前,范尼用一次定位球配合打入一球,把俄罗斯拖入加时赛,却没料到给了阿沙文一次惊讶全世界的机会。加时赛,阿沙文先是突破传中越过范德萨,助攻队员打入一球,接着自己又小角度打门,穿了范德萨的裆攻入制胜一球。这次可以说是用一己之力打败了夺冠热门。&br&&br&半决赛再次面对西班牙,这一次阿沙文停止了出彩的表现,俄罗斯也0-3再次完败西班牙。&br&&br&那届的欧洲杯,阿沙文出场三次,两次成为主角,一次表现隐形。他的技术特点就是,很快,带球技术很好,突破能力很强,能送出致命传球,也可以打入高难度进球,大赛表现也很突出,除了状态会起伏,基本上就是一个巨星胚子,大家都很奇怪,这个27岁的中生代球员到底是从哪里冒出来的?他过去的几年在冰天雪地的俄罗斯都是怎么度过的?就没有球探发现了他吗?还是当时欧洲的球探都不会去俄罗斯考察?&br&&br&成名以后的阿沙文很想加盟一支豪门,但是他的处境很尴尬,虽然他实力很出色,但是27岁已经属于成熟期,未来的发展空间有限,而且俄超冠军、联盟杯黑马、欧洲杯四强都不算什么强证,阿沙文在08年的表现是昙花一现还是货真价实,没有人敢打包票。泽尼特也不是一个缺钱的主,不希望贱卖了阿沙文,阿沙文又呆不住俄超小地方。最后在09年冬季转会市场关门前一刻,阿森纳签下了阿沙文,最终的转会费一直没有公开,但至少是高于1650万英镑(一说是高于1200万英镑)。&br&&br&对于当时的阿森纳来说,1650万几乎就是倾尽财力的天价了,而且阿沙文与当时阿森纳坚持的引援策略很不同。当时阿森纳签入的球员有两种类型:一是爱德华多、维尔马伦这样的不出名,有实力,年轻,上升空间大的球员;二是拉姆塞、斯泽斯尼、维拉这样的一大推青年球员,基本不值钱,打出来就俱乐部赚了,打不出来就废了。后来又开始签入贝纳永、坎贝尔、莱曼、亨利这样的发挥余热的球员。很显然,阿沙文是那种成名球星级别的。可能对其他豪门而言,阿沙文的球星成色不够,但是对***手说已经足够了。当赛季阿沙文来之即战,没有多少磨合就表现抢眼,力保***手欧冠资格赛席位,被成为***手的「救世主」。&br&&br&阿森纳的特点是传控节奏快,对球员传球能力(时机、质量)要求高,边路球员的速度快,带球的时候跑得快,无球跑动更加要积极。阿沙文的特点很配阿森纳,他的盘带突破和传球能力在英超属于超一流,除了状态不稳定和无球跑动不够勤奋以外,他是当时英超最好的左边锋之一。&br&&br&1112赛季前,阿沙文一直都是阿森纳的最好的锋线尖刀,有时候还是关键先生,比如对利物浦的大四元就不再赘述了。1112赛季阿沙文状态直线下滑,冬季租借回了泽尼特。一个赛季后,合同到期的阿沙文落叶归根,终归圣彼得堡。&br&&br&&b&阿沙文就是这样,0708赛季之前的表现已经难以考证,以欧洲第一妖人身份震撼世人的阿沙文一出场就已经是27岁「高龄」。迫不及待地登陆欧洲主流联赛之后,阿沙文表现得也是水准之内,五年里一共代表阿森纳出场143次,打入31球,助攻42球,为困难时期的阿森纳在进攻端作出了巨大的贡献,时有逆天表演或精彩瞬间,是那种你根本不会快忘记的天才球员,可惜没几年就因为年龄和职业态度因素太快失去了状态。经常让人唏嘘,要是早五年发现他就好了,我是不是可以称呼他为英超&/b&&b&「乱世的迟到者」&/b&&b&。&/b&&br&&br&总分十分的话,阿沙文球技七分,大赛表现九分,个人魅力九分。以上评分含***手球迷附加分。最后附上一张图,大赛前看村上春树的文艺青年。&br&&img src=&/d51ee81c8a905e186c96_b.jpg& data-rawwidth=&434& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&434& data-original=&/d51ee81c8a905e186c96_r.jpg&&&br&p.s 这是08年欧洲杯俄罗斯小组赛第二轮对希腊,生死战,但是沙皇不能上场,所以比较从容……
阿沙文是一个技术特点十分突出(控球突破表现最佳),个性很强(场上极具霸气的表现力)的球员,是俄罗斯足坛多年来唯一一个具有洲际影响力的球星,是阿森纳在无冠期难得引进的明星级球员。 2002年阿沙文就进入了俄罗斯国家队,那时候他还没过21周岁的生日…
请阅读文档:&a href=&///?target=https%3A//eclipse.org/aspectj/doc/next/runtime-api/org/aspectj/lang/ProceedingJoinPoint.html%23proceed& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ProceedingJoinPoint (AspectJ(tm) runtime API)&i class=&icon-external&&&/i&&/a&&br&题主可以通过ProceedingJoinPoint.getArgs()获取方法调用参数,对其进行修改,然后通过ProceedingJoinPoint.proceed(Object[] args)来传入修改过的参数继续调用。
请阅读文档: 题主可以通过ProceedingJoinPoint.getArgs()获取方法调用参数,对其进行修改,然后通过ProceedingJoinPoint.proceed(Object[] args)来传入修改过的参数继续调用。
&p&最近很多牛牛有需要spring mvc整合redis的代码,于是花几个小时整理了下,java前端技术是freemarker,web前端使用bootstrap,实现了最简单的用户添加,查询,删除的redis操作,希望对初学java web操作redis的牛牛有帮助。&br&项目截图:&/p&&img src=&/05cacbfbabc40cb07354d48_b.png& data-rawwidth=&298& data-rawheight=&542& class=&content_image& width=&298&&&br&&p&java build Path设置&/p&&img src=&/a33b4bdee8ed_b.png& data-rawwidth=&650& data-rawheight=&226& class=&origin_image zh-lightbox-thumb& width=&650& data-original=&/a33b4bdee8ed_r.png&&&br&&p&project facets设置&/p&&img src=&/5cf63fd92fd510f51266d5_b.png& data-rawwidth=&613& data-rawheight=&407& class=&origin_image zh-lightbox-thumb& width=&613& data-original=&/5cf63fd92fd510f51266d5_r.png&&&br&&p&tomcat web modules设置&/p&&img src=&/bcf062b69de3b_b.png& data-rawwidth=&650& data-rawheight=&181& class=&origin_image zh-lightbox-thumb& width=&650& data-original=&/bcf062b69de3b_r.png&&&br&&p&运行截图&/p&&img src=&/d832c49ecbd244c8f56b5c09723c81cc_b.png& data-rawwidth=&1173& data-rawheight=&353& class=&origin_image zh-lightbox-thumb& width=&1173& data-original=&/d832c49ecbd244c8f56b5c09723c81cc_r.png&&&img src=&/883b145636fcb845c420cf10f33f8827_b.png& data-rawwidth=&433& data-rawheight=&93& class=&origin_image zh-lightbox-thumb& width=&433& data-original=&/883b145636fcb845c420cf10f33f8827_r.png&&&br&&p&&strong&&a href=&///?target=http%3A//localhost& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&localhost&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&:端口/项目名称/user.htm?p=1(端口80可以不写,项目名称可有不设置)&/strong&&/p&&p&添加用户页面&/p&&p&项目通过maven构建,请参考&/p&&p&&a href=&///?target=http%3A///blog/3008.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何在eclipse jee中创建Maven project并且转换为Dynamic web project&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///blog/4192.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何在eclipse jee中检出weibo4j并转换为Maven project,最后转换为Dynamic web project&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///share/8112.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&史上最全的maven pom.xml文件教程详解&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///question/1472.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&java开发者在搭建Maven项目开发中有哪些奇葩的问题?是如何解决的?&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///question/9680.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&java web工程项目如何导入myeclipse环境并运行?&i class=&icon-external&&&/i&&/a&&/p&&p&redis相关资料:&/p&&p&&a href=&///?target=http%3A///share/kredis-p1-s1.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&redis分享源代码实例&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///share/9040.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&redis-cli pipe方式导入mysql sql查询导出的redis Protocol格式数据&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///share/2016.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最代码网站用户私信列表采用mysql union查询优化为Redis查询的经验和相关代码片段分享&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///share/6736.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&springdata redis实现的简单demo&i class=&icon-external&&&/i&&/a&&/p&&p&原文:&a href=&///?target=http%3A///share/1296.htm& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/share/2655&/span&&span class=&invisible&&.htm&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&
最近很多牛牛有需要spring mvc整合redis的代码,于是花几个小时整理了下,java前端技术是freemarker,web前端使用bootstrap,实现了最简单的用户添加,查询,删除的redis操作,希望对初学java web操作redis的牛牛有帮助。 项目截图: java build Path设置 p…
已有帐号?
无法登录?
社交帐号登录

参考资料

 

随机推荐