精华内容
下载资源
问答
  • 通过典型事件理解人物形象.doc
  • 高中语文古诗鉴赏人物形象典型题专练.doc
  • 学先进典型树先锋形象主题研讨会发言稿精选.doc
  • 文中的"恶母"形象主要指文学作品中守寡多年,对儿子产生...作为现代文学中两个恶母形象典型,《孔雀东南飞》和《原野》中的焦母形象具有不同内涵,造成这种差异性的重要因素就在于男女作家视角的差别和时代精神的影响。
  • 典型用户场景分析

    千次阅读 2019-04-26 17:01:00
    一:典型用户:小明 性别:男 年龄:18岁 性格:内向,不善与人交流。 资质:刚高考结束,想要来石家庄铁道大学上大学。 目的:了解学校情况,环境,师资力量,和分数线等情况。 用户偏好:上网查询各个学校的...

    一:典型用户:小明

    性别:男 

    年龄:18岁

    性格:内向,不善与人交流。

    资质:刚高考结束,想要来石家庄铁道大学上大学。

    目的:了解学校情况,环境,师资力量,和分数线等情况。

    用户偏好:上网查询各个学校的情况等。

    用户场景

       小明下载本APP,进行登录注册后就可以进入到主页面中,在主页面中可以看到学校各个建筑物的介绍等。非常形象客观的了解到关于学校的基本信息。然后他想提一些问题,他在论坛的功能上提出问题,就会有学长学姐来回答他提出的问题。这样会非常的便捷,也解决了他不善与人交流的问题。

    转载于:https://www.cnblogs.com/xuange1/p/10994345.html

    展开全文
  • 互联网发展至今,数据规模越来越大,数据结构越来越复杂,而且对系统的需求越来越高。如果学习过数据结构,那么都知道图是...而挖掘是一个很形象化的动词,一般意义上,挖掘是挖掘出对我们有用的东西,不然也不会闲着
  • 典型销售面试问题

    千次阅读 2012-10-11 10:26:18
    典型销售人员面试问题 浏览: 16058 | 更新: 2012-02-17 15:58 | 标签: 面试  17  6 简介 典型销售人员面试问题。在销售人员面试时,面试官往往会准备一些...


    典型销售人员面试问题
    • 浏览: 16058
    • |
    • 更新: 2012-02-17 15:58
    • |
    • 标签: 面试

    简介

    典型销售人员面试问题。在销售人员面试时,面试官往往会准备一些针对销售人员的面试问题,而这些销售人员面试问题是非常典型的,以下便是11个典型销售人员面试问题。

    步骤/方法

    1. 请简要介绍一下自己
      这个问题是为了弄清楚两个事情:关于应聘者的一些有意义的背景信息和应聘者把这些背景信息组织成合适具体情况的陈述能力。通过考察他/她在说明自己的经验时所采用的策略,我们就可以知道他/她在绘声绘色地描述我们公司产品时能采用的策略。夸大其词、错误百出或者絮絮叨叨地复述过去的事情,却又与当前的工作毫无关系,这些都是危险的信息。求职者应注意避免。

    2. 你打算如何把自己以前的经验应用到我们公司的销售工作中?
      这个问题是看你在证明自己的能力时所使用的例子。这些例子可能跟销售活动有些直接或间接的关系。除了这些明显相关的情节,销售人员还应该突出自己在设定目标和达到目标方面的能力。

    3. 为什么决定到我们公司应聘这份销售工作?
      针对这个问题,用人单位都不希望求职者茫然地凝视和耸肩,然后含糊其词地说:“你们在报纸上打广告,我就来应聘了。”
      企业希望找到证据证实你对下列情况有些基本的了解:你所应聘的公司是做什么的?销售对象是哪些?为什么说把公司的产品或服务卖给那些人是一个对专业水平的挑战?在回答时,尽量表达出内心对于销售这份工作的热情。

    4. 请说出一个你遇到的棘手问题并说明你是如何妥善处理这个问题的具体例子。
      你说明的案例应该可以表现出你的机智、交际手段以及意想不到的挑战迅速给予回应的能力。应聘者知道如何对过去的功绩做有说服力的口头说明。在叙述的过程中,一定要流利。如果结结巴巴地讲了一个面试官勉强能听懂的故事,很明显,面试官不会相信你会有多强的销售能力。


    5. 可以告诉我,你认为你有哪些技能可以让你销售成果显著?
      对于这个问题会有两个类似的好回答:其一,“我就是那种在任何地方都可以销售成功的人,在这个公司也不例外。”记住,要充满自信,并且需要举例说明。
      其二,“根据我了解到的关于贵公司的一些情况,我认为可以在这里做得很好,我对此非常有信心。不过,我对这份工作了解还不够多,在此不能冒昧的告诉你我为什么会取得显著成果的具体理由。坦诚地说,还有许多事情我不知道,我能否问您几个关于这份工作的问题?”根据很普通而又可靠的原则,用人单位有时候更愿意雇佣那种敢于机智发问和那种不介意纠正他的错误的人。

    6. 如果你有机会把事情重做一遍,你的做法会有什么不同?
      这个问题要考察的是,当不同的方法可能产生更好的结果时,你是否具备后退一步、反复思考的能力。无论销售人员是野心勃勃的新手还是经验丰富的老手,如果不能从诸如一次糟糕的销售会议或者一个没有及时回复的客户电话之类的事情中吸取教训,那么不大可能成为我们所想象的那种优秀的销售人员。

    7. 你和你的经理或者老板有过意见分歧吗?
      对于这个问题,不适合说“没有”,因为工作中意见分歧是在所难免的。首先你可以说明,人并不总是与他人和睦相处,没有任何分歧的,并且你知道如何讨论、协商以及如何从工作冲突中脱身。不好的回答是含蓄地或者直截了当地问到底自己做错了什么,最终把分歧的错误归到经理或老板那里。

    8. 告诉我一笔别人都不相信你能完成但你却完成了的业务。
      有经验的销售人员至少会有五六个这样的事例。对于这个问题,你应该重点突出你的抗干扰和克服难题的经验和毅力以及思考方式等。

    9. 如果我认为你在面试期间的回答表现存在严重问题,你会怎么做?
      这个问题主要是看你对与客户交流中存在的压力如何反应。大多时候,面试官并没有直接说你有严重问题或者表现很差,只不过是一些暗示。遇到这个问题,最关键的要保持冷静的头脑,从容机智的来应答。

    10. 你对今后有什么打算?
      回答这个问题时,销售人员应该将所应聘岗位和自己的职业发展规划结合起来,表现出你脚踏实地的精神。

    11. 为取得成功,一个好的销售人员应该具备哪四方面的素质?你为什么认为这些素质是十分重要的?
      回答这个问题时,说出你自己的见解即可。
      参考回答:认真、有激情、努力加有相当的沟通能力与业务技巧。
      认真是做好一件事保障,认真才能做好一件事情,如果不认真是做不好任务一件事情的。


    2

    销售面试常见问题及答题思路

    来源: 罗颖婷的日志

    销售面试经常会问到的问题
       在一个公司中,销售是最重要的部门,维持公司运转的资金几乎都从销售所得。因此公司对销售人员的招聘往往也非常苛刻,毕竟一个销售员在为公司获得财富的同时也代表着一个公司的形象。面试销售考官会问哪些问题呢,以就下是当你面试一个销售职位时可能碰到的提问。
       1. 你为什么想做销售工作?
       这个问题对于工业专业出身的人来说有些不好回答,但是更重要的是你的实习经验,公司其实也没有必要回到学校请MBA来做这个职位。尽量让你的回答具体,最好用举例子的方法列举你以前的成功经验。而且让招聘方认为你具有做好这个工作的潜质。
       2. 你认为自己最大的长处是什么?
       这里你需要回答你如何与同伴合作,你是一个销售人员,需要有动力爆发力和前进的精神。这些都是这个工作所必不可少的基本技能。如果你有别的方面销售天赋,那只能说你就天生是用来做销售的。
       3. 你认为自己最大的弱点是什么?
       在这种面试的情况下,请你不要说出自己有特别明显的缺点,或者说不要说出你应聘的职位最需要的缺点,可以谈一些不足,或者自己做不好的一些例子,但是不要因为谦虚,让招聘方认为你是一无是处的。这是最最重要的一点。 
       4. 如何评价你自己?
       这个问题是招聘方考察你的个人表达能力和认识能力的问题。你可以突出自己的一些优点,但是不要说得过于直白,同时要强调自己的能力比较适合做销售工作,这里技巧很重要。同时说话要机智,也可以适当加些小幽默,显示你天生有与人交际的能力,这对于销售工作来说是很重要的。
       5. 你认为你具备什么样的技能适应这份工作?
       其实这个问题和上一个问题很相似,但是你回答不能雷同,虽然要表达的可能是同一个意思,但是决不能千篇一律,要适当的有变化,来体现你的应变能力。能应付好招聘方的人对于销售工作也能做得不错。同时,这也在考查你的耐心,因为可能顾客的要求要麻烦得多,多次解释或者换一个角度解释也是必备能力之一。 
       6. 工资对你有多重要?
       不要说得很重要,因为如果做到一定的份额,工资自然会很高,但是也不要完全不在乎,因为销售是做生意,一定程度上有钱的意识也是必要的。可以先问一下公司可以提供的,自己只要看能否接受就可以,或者说适量就可以。
       7. 请你讲一个好笑的笑话?
       这是一个看似很简单的问题,但是你会发现关键时刻能讲一个好笑的笑话也是一件很难的事情。这个问题,其实也是在考察你与人交际的能力。良好的客户意识和满足客户需要的能力,是这个问题的回答要点。讲不合时宜的冷笑话和又不好色彩的笑话是这个问题的大忌,不管它们有多好笑,都会使他们对你的品行产生不好的影响。所以千万要小心的讲看似轻松的笑话。 
       8. 为什么你对销售工作比其他职位更有兴趣?
       这个问题需要从两方面回答。一个是从销售本身来说,你认为它有什么优势或者令你着迷的地方,你会全心全意的投入这个工作,但是切忌不能说别的职位就不好,这会让招聘方心情步愉快,而且你有可能会被调配,所以谓了不丧失工作机会,要三思而后言。另一个方面就是你个人的特点,因为个人能力和兴趣,更适合销售工作,这样会给招聘方留下相当良好的印象,收到事半功倍的效果。 
       9. 如果每天让你给客户突然打销售电话你会怎么办?
       没有人愿意每天给客户突然打销售电话,因为这样收到冷遇的情况很多。但是不要直接说你不会干这项工作,你可以说你会考虑方法,或者说话的口气。或者你要是够机智的话,你可以提出不打突然电话,但是能达到一样效果的措施的话,那招聘方一定会对你刮目相看。
       10.你最大的一次冒险是什么,你是如何做的? 
       销售工作有时候是需要冒险精神的,但是不要给招聘方,你天生就是个冒险家,毕竟,做生意是要赚钱,不是冒险,如果招聘方认为你会拿公司的钱、信誉去冒险,那你可以说彻底没有希望了。但是销售是需要进取的职业,表现的萎缩不前,公司也不会考虑雇佣你。可以说一些野外的冒险故事,尽量逼真,说明你是勇敢的人,但不是表现在工作上的冒进。
       11.是什么原因吸引你加盟我们公司的?
       要了解这家你面试的公司,了解公司的强项和不足,然后具体说一下你的设想,说明你到职后怎么样开展销售工作,要认同企业文化,特别是对于外资企业,企业文化是十分重要的,在同一个企业文化氛围中,才能有良好的团队合作意识,最好强调是企业文化比较吸引你。这样效果会比较好,但是如果你不是从内心认同,最好不要发表评论,言不由衷比什么都不说显得更加没有诚意,最好不要做这样的事情。
       12.你还面试过哪些公司?
       这是一个狡猾而且强硬的问题。你必须考虑你有多少信息已经透漏给公司。权衡的回答。如果你已经参加过这个行业顶尖公司的面试,你现在面试的公司会怀疑如果录取你的话,你会不会优先到顶尖企业去工作。而且万一你是被大企业拒绝了得,那么就会有尴尬的问题,拿就是你为什么没有进入该企业,这是个非常棘手的问题,所以你要巧妙的避开,不要给自己带来不必要的麻烦。 
       另外如果你面试公司过多,那么现在面试的这一家会怀疑你没有诚意,但是过少的话,又会认为你没有能力。所以你要权衡后谨慎回答。一般公司喜欢和别的公司竞争,如果你足够优秀的话,如果这家公司录取你,你没有去哪一家,表明这一家有竞争力,它会很高兴。但是如果同时有很多企业要你的话,那样它会考虑如果录取你,你却不能入职,这是他们不愿意看到的,大多数公司为了正常招聘着想,可能会选择放弃你,另觅人选。这个问题也是考察你个人能力的重要问题。回答时一定要谨慎,因为稍有不慎,就可能和一个绝好的职位失之交臂。建议你可以适当的说面试的公司,然后,表明你真诚的态度,会考虑公司的决定,对公司的尊重。 
    市场问题
       市场是销售人员生存和发展的土壤,所以让你回答有关市场的问题也并不过分。只是你在回答的时候,要表现出一种诚恳的态度,如果你不知道千万不要编造,因为这样,会让你使去这个机会,因为坐在你对面的都是这方面的专家。这些问题一般都是针对一些已经有工作经验的销售员,但是如果你没有经验的话,看看这些常用的问题,一定会有益处的。
       1. 请你和我谈一下经济?
    其实是一个比较空泛的问题,但是最好提前准备一下,不要表现的对这方面一无所知。显得你根本没有诚意。
       2. 如果你有一百万你会做什么?
       一个考察你的计划性的问题,不能回答买房购车这样的事情,有头脑的人,永远将投资作为最大的快乐,显示你是个有计划的人,。但是不要浮夸,比如马上开一家公司这样的话,最好不要说,因为你一无所知的时候,如此激进会让招聘方对你产生不信任感。
       3. 请和我谈一下你个人对股票的看法?
       如果你不清楚,千万要诚恳,谈谈你个人的一些看法就好了,在专家面前班门弄斧可不是明智的选择。如果你提前有查阅相关资料,有这方面的准备,那么恭喜你,一个英明的决定。
       4. 请你给我介绍一种你想买的或者想卖的股票?
       这个问题,无法给你建议,请提前准备。
       5. 告诉我三种你想要买的股票?
       只能靠你平时留心了,如果你不了解股票行业并且不感兴趣的话。但是不要瞎说,这样的会造成适得其反的效果。
       6. 请讲讲你遇到的最困难的销售经历,你是怎样劝说客户购买你的产品的? 
       问题解析:不管销售也好还是其他的什么职业。当你去面试时最常见的就是这样的一个问题,让你说说自己曾经的工作经历,考官主要是想从你过去的工作中了解你处理问题的能力,回答这样的问题可以将过去的经历稍微夸大,让考官对你刮目相看。 
       7. 人们购买产品的主要原因都有什么?
       大部分购买行为的发生,并不仅仅只是因为产品的价格或者是产品的质量,每一个人购买某种产品的目的都是满足他背后的某种需求。购买产品的人首先是想获得产品的使用价值满足自身的要求、产品的质量、价格也是促使人们是否购买产品的原因。
       8. 关于我们的产品生产线和我们的客户群体,你了解多少?
       问题解析:此类问题也是考管在面试时比较关注的,所以在准备面试前,你最好先对你打算进入的公司有一个整体的了解,做到有备而来。 ?
       9. 关于销售,你最喜欢和最不喜欢的是什么?为什么? 
       这个问题是考察你对销售工作的价值取向,你可以回答最喜欢得到签单后的那种快感,不喜欢被客户拒绝等等。销售工作有很多内容,这个工作主要是和人打交道的,所以你要接触很多人,有你喜欢的也有你不喜欢的。 ?
       10. 你最典型的一个工作日是怎样安排的?
    在《人在职场》中我们给出了一个销售一天的工作安排,可以做为参考,回答这个问题前你应当已经有所准备,好的销售人员一天的工作应该是有序的。 
       11. 为取得成功,一个好的销售人员应该具备哪四方面的素质?你为什么认为这些素质是十分重要的? 
       销售人员所应该具备的素质非常多,所以根据行业的不同会得出不同的结果不过推销能力、内在的自信、与客户建立良好关系的能力、严谨的工作作风绝对是所有行业的销售工作者都该拥有的基本素质,销售的工作是以人为工作对象,因此如何处理和人的关系至关重要。以上四个基本素质都是这个方面的体现。 
       12. 在你的前任工作中,你用什么方法来发展并维持业已存在的客户的?
    对客户的维护每个人有每个人的不同方式,不过把客户当做朋友不要总是觉得和客户间只有生意关系这样就能与客户保持较好的关系,在回答这个问题时,你可以告诉考官一些你曾经与客户间保持良好关系的例子,这样比说空话要好得多。 
       13. 如果让你给新员工上一堂销售课程,你在课堂上要讲些什么?为什么?
       在回答这个问题时,应当考虑考官的意图,事实上出这样考题的考官八成是想知道你是不是对激励销售人员有自己独特的办法,给新员工上课,最重要的是如何激励他让他能全心投入销售工作。 
       14. 说一下你在前任工作中所使用的最典型的销售方法和技巧。
    这个问题是要考察你的实际工作能力,讲述一个故事,不要去谈具体的什么技巧,只要告诉考官你成功的将产品卖给了客户就可能让考官满意。 
       15. 假如给你定的销售任务很大,完成任务的时间又很短,你用什么办法以确保达到销售任目标的?
       这个问题比较尖刻,是看你是否有应变能力,其实任务大时间短是销售人员经常遇见的问题,你可以告诉考官,你会将任务量化,把每天应该做多少工作都计算出来,然后严格按照计划去做,有计划的工作是成功的最大保障。 
       16. 你是否有超额完成销售目标的时候,你是怎样取得这样的业绩的?
       销售工作存在着一定的不确定性,运气的好坏有时也左右着一个销售人员的业绩,你可以讲述你在取得好业绩时候的辛苦但最好多说一些你的好方法,这样会让考官更欣赏你 。 
       17. 一般而言,从和客户接触到最终销售的完成需要多长时间?这个时间周期怎样才能缩短?
       根据产品的不同时间就会有所不同,你应当根据行业的特点去回答第一个问题,缩短周期的办法最重要的就是了解客户的真正需求,尽快在价格上达成一致。 
       18. 你怎样才能把一个偶然的购买你产品的人变成经常购买的人?
    对客户进行定期的售后回访是招揽回头客的最好方式,你只有让客户感觉到你的服务是一直存在的,你的产品是有把保障的时候他才会在你有了新的产品后继续购买,同时与客户保持良好的关系也非常重要。 
       19. 当你接管了一个新的行销区或一新的客户群时,怎样才能使这些人成为你的固定客户? 
       这个问题是考察你对环境的适应能力,你可以向面试考官讲述你刚入行时的一些工作经历,从你过去的成功做法中向考官介绍你的工作方式。
       20. 在打推销电话时,提前要做哪些准备?
       了解客户公司的情况、了解客户的情况和需求、确定自己的销售目标。 
       请向我推销一下这支铅笔。 
       大胆的推销,把考官当成你的客户。 
       21. 和业已存在的老客户打交道,以及和新客户打交道,你更喜欢那种?为什么?
       回答那种都不会有错,关键是你要知道你所要面试的行业是更需要老客户的支持还是需要不断的挖掘新客户。 
       22. 具备什么样的素质和技能才能使你从众多的销售人员中脱颖而出?
       在第一部分中我们已经谈到了这样的话题,当然销售人员所必须的技能和素质还有很多,回答这个问题时候最好增加一些有行业针对的素质。





    展开全文
  • 长篇世情小说《金瓶梅》突破了古代小说以男性形象描写为主的倾向,以中国16世纪资本主义萌芽为背景,描写了城市生活中的女性世界,塑造了典型丰满的女性形象,与以前的小说相比,在女性形象的关注上,体现了作者创作...
  • 针对动画卡通形象的特点,选取典型卡通形象范例,并分割出范例图元形成图元库。利用傅里叶形状描述方法统一描绘用户输入草图和范例图元的轮廓特征,用输入草图的特征检索图元库,得到相似的范例图元,通过交互方式...
  • 第十一章 物联网的典型架构 EPC系统 EPCglobal旨在搭建一个可以自动识别任何地方任何事物的开放性的全球网络即EPC系统可以形象地称为物联网EPC强调适用于对每一件物品都进行编码的通用方案每一件物品的EPC代码在...
  • 针对均质、双孔、复合油藏这3种典型封闭油藏,基于外边界封闭及考虑井筒储存和表皮效应的内边界下诸油藏模型的无因次井底压力动态的Laplace空间解的相似结构理论,利用Matlab工具软件编程,绘制了相应的对比分析图版...
  • 这部分包含 4 篇文章,除了会深入讲解 Java 中的各种类和接口的相关内容,还会深入讲解浅克隆和深克隆的各种实现方式,以及配合各种图片让你更形象地理解深/浅克隆的本质。 第三部分:数据结构和队列 这部分包含 4 ...

    课程背景

    又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。

    然而,面试人群众多,技术市场却相对冷淡,面试的同学们不得不面临着 1 个职位 N 个应聘者的巨大竞争。

    问:在这种现状下,如何才能收获又多又好的 Offer?

    答:短期准备——刷面试题;长期筹谋——巩固核心技能

    • 面试题怎么刷?刷高频题、有深度的题、符合时效性的题。

    • 核心技能如何巩固?先深入理解原理,再系统应用到实践。

    不过,面试成功并不是终极目标。我们要的,是在接下来的工作中,把所学的技能点运用到产品开发,发挥重要的工作价值。

    从业十多年,我先是一个被面试者,又成为面试官。为了使更多开发者拿到好 Offer 并且顺利工作,也为了帮助企业找到合适技术人才,我拜访几十家互联网公司、花了大半年,付出很多心血,凝结成这个课程——《Java面试全解析:核心知识点与典型面试题》


    课程亮点

    • 500道 Java 常见面试题 + 10万字核心知识解析

    • 丰富的 Java 技术栈:基础和框架,线程池和锁优化,SpringBoot 和分布式消息队列,数据结构和常用算法,设计模式和 JVM 等

    • 易学易会:提供了大量的图片说明和代码示例

    • Java 核心知识图谱 X1 + 阿里内推名额 X1 + 阿里面试通关攻略 X1 + 阿里内推交流群 X1


    适宜人群

    • 准备 Java 面试的在校生(大专或研究生)
    • 准备跳槽、正在找工作的 Java 工程师
    • 自学和准备转行到 Java 技术领域的人
    • 想巩固 Java 核心知识、查漏补缺的人

    你会获得什么

    • 收获 Java 技术栈的核心知识点

    这个课程几乎涵盖了 Java 技术栈的大部分内容,不止对于面试,在日常的工作中也可以发挥很大的作用。

    • 详解 500 多道实用、权威、高频 Java 面试题

    这 500 多道面试题,都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每道题都做到了详尽的描述,以确保每个阶段的读者都能看得懂,面试题中的专业短语也都确保提供了必要的介绍,部分难懂的题目也提供了题目解析和示例代码。

    • 理解技术背后的实现原理

    死记硬背的内容通常会随着时间的推移很快就忘记,所以在学习一门技术的时候,一定要了解其背后的实现原理,从而构建逻辑上的因果关系,这样才能够记的更久。这门课程会深入浅出地对技术背后的原理进行深入的分析,让读者“知其然,并知其所以然”。


    作者介绍

    老王 资深面试官,阿里云社区认证专家。

    十余年编程从业经验,现上市公司技术研发经理,曾就职于 360,有着丰富的大型系统设计、开发和调优的经验,在不断探索和学习的过程中,积累了宝贵的编程与面试经验。公众号「Java中文社群」。


    目录

    购买须知

    • 本课程为图文内容课程,共计 37 篇,8月19日起,每周更新 2 篇或 2 篇以上
    • 付费用户可享受文章永久阅读权限
    • 读者可在评论区向作者提问或交流
    • 本课程为虚拟产品,一经付费概不退款,敬请谅解
    • 本课程可在 GitChat 服务号、APP 及网页端 gitbook.cn 上购买,一端购买,多端阅读

    订阅福利

    • 订购本课程可获得专属海报,分享专属海报每成功邀请一位好友购买,即可获得返现奖励,多邀多得,上不封顶,立即提现
    • 提现流程:请在 GitChat 服务号中点击“我-我的邀请-提现”进行提现

    课程内容

    开篇词:如何轻松获得 Offer

    你好,我是王磊,某上市公司技术研发经理,前奇虎 360 员工,有着 10 余年的编程工作经验,目前主要负责新员工技术面试和构建企业技术架构的相关事宜。随着面试过的人数增加,我发现面试者们暴露出了技术方面的很多问题,为了让更多面试者少走一些弯路,也为了让企业能招到合适的技术人才,于是就诞生了这门课程。

    为了能把这门课程写好,我先后拜访了一二十家互联网公司,与不同的面试官和面试者进行面对面探讨,深入了解了企业对于面试者的要求和常见的 Java 面试题型。之后我花了大半年的时间,结合自己 4 年多作为面试官的经历,把这些内容整理成文,用大约 10万 字的内容对 Java 的核心知识点和常见的 500 多道面试题,做了详细的介绍,也就是本课程中你所看到的全部内容,希望对你能有所帮助。

    为什么要学这门课程?

    「因为它能为你赢得面试的主动权,让你获得更多的 Offer。」

    从业十多年,我从面试者变成面试官,在 Java 面试上积累了比较丰富的经验。

    其实,很多面试者在搜集面试资料的时候都踩过一些“坑”,你是不是也遇到过:

    • 免费搜索的面试题,内容不全面,这就算了,有时候答案都不准确
    • 很多培训机构提供的面试宝典内容虽然不少,但深度不够,且面试题过于老旧脱离了企业实际需要;
    • 还有很多付费的面试题存在滥竽充数,提供了很多没有价值的面试题,钱花了,干货没学到
    • 市面上大部分面试题只讲了基础概念,没有提供题目解析和示例代码,不利于读者真正的掌握背后的原理,只能死记硬背,且容易忘记。

    为了规避这些“坑”,我跑了很多家互联网公司,来确认 Java 面试中实际考察的高频知识点和常见题型。可是有了第一手素材后,我要如何让大家真正从我的讲解中学到干货、用到实处呢?

    经过反复验证,我才设计了如下的内容讲述模式。

    第一,500+ 面试题详解。

    如果你是还没走入职场的新人,我会为你提供完整的 Java 技术栈讲解,以及 最新、最全、最实用 的 500 多道 Java 面试题详解。

    第二,10万字 Java 核心知识点梳理。

    本课程的每一篇内容,都采用的是「核心知识点 + N道相关面试题」的模式,让你不单能应付面试,还能学到更多的 Java 核心知识。

    第三,技术、面试搭配平衡,不但让你学到心里,还助你展示出来。

    面对目前技术市场的相对冷淡和一个职位多个应聘者竞争的现状,面试者们只有掌握更多 Java 核心技能和面试理论知识,才能在众多面试者中脱颖而出。

    本课程每篇文章大致分为两个部分:Java 核心点介绍 + 相关面试题详解,这两部分内容相辅相成,前面的核心知识点介绍让后面的面试题更容易理解,后面的面试题加深了读者对于 Java 核心点的掌握。如此一来,让你所学及所用,不仅能够应付面试,更能学习到更多有价值的 Java 技术点,让你在面试中和工作中都能展示的更加出色。

    点击收下这份《Java 面试全解析》

    课程大纲

    本课程分为七大部分,共计 37 讲,约 10 万字。

    第一部分:Java 基础强化

    这部分包含 7 篇文章,我会从 Java 最基础的内容讲起。有最常见的 String 面试题从表象到原理的深入讲解;还有 Java 8 中新特性的介绍,比如时间和日期模块,让你使用更简洁和优化的方式写出更完美的代码;还有我们日常用的很多包装类不为人知的有趣现象和知识盲点介绍;还有数组以及算法的介绍,虽然基础但容易被面试者忽略和容易出错的问题……

    第二部分:各种类和克隆

    这部分包含 4 篇文章,除了会深入讲解 Java 中的各种类和接口的相关内容,还会深入讲解浅克隆和深克隆的各种实现方式,以及配合各种图片让你更形象地理解深/浅克隆的本质。

    第三部分:数据结构和队列

    这部分包含 4 篇文章,对面试中必考的集合,除了相关的面试题讲解,更要理清各种集合之间的关系,创建集合之间的联系,这样才能对集合的整体理解做到心中有数。我使用了归纳法和各种关系图,帮你理清思路,打通你的“任督二脉”。其中还有队列的内容,可能开发者经常会听到,但实际的工作中使用的较少,本部分内容也会带你玩转这些数据结构,让你在面试中能够应对自如。

    第四部分:反射和动态代理

    这部分会帮你理清反射和动态代理的关系,并提供很多实际使用的场景,让你更好地使用到反射和动态代理,当然这部分也会为你提供各种形式反射和动态代理的实现方式,让你可以随心所欲的使用它们。这部分内容还提供了 IO 的相关知识,并提供详细的示例和原理分析,也会试着编写一个简单 Socket 服务器。

    第五部分:多线程编程

    这部分包含 7 篇文章,讲述了包含 Java 8 在内的 8 种线程池,以及线程池的正确使用姿势,还有死锁代码的编写和死锁的解决方案。本部分还会介绍 Java 中的各种锁,以及它们的区别和使用场景,还会介绍 CAS 和著名的 ABA 问题的解决方案,还有多线程中的各种高频面试题。

    第六部分:Java 热门框架和分布式消息队列

    这部分包含 6 篇文章,从 Spring 到最近比较热门的微服务框架 SpringBoot,还有国内常用的 Mybatis 和 Java 技术栈中其他常用的框架,比如 Dubbo 和 Zookeeper,还有分布式消息队列 RabbitMQ 和 Kafka 的介绍和面试题汇总。

    第七部分:Java 高手进阶

    本部分内容包含 6 篇文章,可谓 Java 技术栈最实用的面试补充“大礼包”,有设计模式的面试题汇总;还有 DBA 级别的 MySQL 和 Redis 面试题汇总;还有成为高手必懂的 JVM 和算法的面试题汇总;最后回到本课程的主题内容,提供了 Java 最容易出错的面试题汇总作为收束篇目,助你稳健地拿到想要的 Offer。

    以下是这门课程的知识树:

    Java 知识树

    点击可查《Java 面试全解析》还会讲什么

    课程寄语

    希望通过本门课程的学习,你不但能拿到 Offer、取得更好的工作,还能建立一个完整的 Java 知识体系,让你学到的所有内容都能转化为实际的生产力,帮你在工作中取得不凡的成绩。并且希望明白原理后的你,能把这些记忆一直存储在自己大脑中,这样它将会成为你一辈子的财富。

    我坚信:持续学习才是最有价值的投资,让我们一起行动起来,一起来做这件最有价值的事情。

    最后,预祝每一位学习本门课的朋友,都能找到一份自己理想中的工作。


    此外,我们为本课程付费读者创建了《Java 面试全解析》的微信交流群,方便读者更有针对性地讨论课程相关问题,以及分享Java 技术和面试心得。

    入群请添加「GitChat 小助手泰勒」:识别下方二维码,或者添加 GitChatty5,注明「Java 面试」。

    温馨提示:需购买才可入群哦,加小助手后需要截图已购买页面来发给小助手验证一下~

    FtkDbtI-hx5hlJERoW0MGan1I8Ax

    第 1-1 课:Java 程序是如何执行的?

    了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能。同样学习 Java 也是如此,本节就让我们先从整体来看一下 Java 中的精髓。

    Java 介绍

    Java 诞生于 1991 年,Java 的前身叫做 Oak(橡树),但在注册商标的时候,发现这个名字已经被人注册了,后来团队的人就在咖啡馆讨论这件事该怎么办,有人灵机一动说叫 Java 如何,因为当时他们正在喝着一款叫做 Java 的咖啡。就这样,这个后来家喻户晓的名字,竟以这种“随意”的方式诞生了,并一直沿用至今。

    Java 发展历程:

    • 1990,Sun 成立了“Green Team”项目小组
    • 1991,Java 语言前身 Oak(橡树)诞生
    • 1995,Oak 语言更名为 Java
    • 1996,Java 1.0 发布
    • 1997,Java 1.1 发布
    • 1998,Java 1.2 发布
    • 2000,Java 1.3 发布
    • 2000,Java 1.4 发布
    • 2004,Java 5 发布
    • 2006,Java 6 发布
    • 2011,Java 7 发布
    • 2014,Java 8 发布
    • 2017,Java 9(非长期支持版)发布
    • 2018.03,Java 10(非长期支持版) 发布
    • 2018.09,Java 11(长期支持版)发布
    • 2019.03, Java 12(非长期支持版) 发布

    注:长期支持版指的是官方发布版本后的一段时间内,通常以“年”为计数单位,会对此版本进行持续维护和升级。

    版本发布时间Java 10 之后,官方表示每半年推出一个大版本,长期支持版本(LTS)每三年发布一次。

    Java 和 JDK 的关系

    JDK(Java Development Kit)Java 开发工具包,它包括:编译器、Java 运行环境(JRE,Java Runtime Environment)、JVM(Java 虚拟机)监控和诊断工具等,而 Java 则表示一种开发语言。

    Java 程序是怎么执行的?

    我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等 Web 容器中就可以正常运行了,但你有没有想过 Java 程序内部是如何执行的?

    其实不论是在开发工具中运行还是在 Tomcat 中运行,Java 程序的执行流程基本都是相同的,它的执行流程如下:

    1. 先把 Java 代码编译成字节码,也就是把 .java 类型的文件编译成 .class 类型的文件。这个过程的大致执行流程:Java 源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字符码生成器 -> 最终生成字节码,其中任何一个节点执行失败就会造成编译失败;
    2. 把 class 文件放置到 Java 虚拟机,这个虚拟机通常指的是 Oracle 官方自带的 Hotspot JVM;
    3. Java 虚拟机使用类加载器(Class Loader)装载 class 文件;
    4. 类加载完成之后,会进行字节码效验,字节码效验通过之后 JVM 解释器会把字节码翻译成机器码交由操作系统执行。但不是所有代码都是解释执行的,JVM 对此做了优化,比如,以 Hotspot 虚拟机来说,它本身提供了 JIT(Just In Time)也就是我们通常所说的动态编译器,它能够在运行时将热点代码编译为机器码,这个时候字节码就变成了编译执行。

    Java 程序执行流程图如下:

    avatar

    Java 虚拟机是如何判定热点代码的?

    Java 虚拟机判定热点代码的方式有两种:

    • 基于采样的热点判定

    主要是虚拟机会周期性的检查各个线程的栈顶,若某个或某些方法经常出现在栈顶,那这个方法就是“热点方法”。这种判定方式的优点是实现简单;缺点是很难精确一个方法的热度,容易受到线程阻塞或外界因素的影响。

    • 基于计数器的热点判定

    主要就是虚拟机给每一个方法甚至代码块建立了一个计数器,统计方法的执行次数,超过一定的阀值则标记为此方法为热点方法。

    Hotspot 虚拟机使用的基于计数器的热点探测方法。它使用了两类计数器:方法调用计数器和回边计数器,当到达一定的阀值是就会触发 JIT 编译。

    方法调用计数器:在 client 模式下的阀值是 1500 次,Server 是 10000 次,可以通过虚拟机参数: -XX:CompileThreshold=N 对其进行设置。但是JVM还存在热度衰减,时间段内调用方法的次数较少,计数器就减小。

    回边计数器:主要统计的是方法中循环体代码执行的次数。

    由上面的知识我们可以看出,要想做到对 Java 了如之中,必须要好好学习 Java 虚拟机,那除了 Java 虚拟机外,还有哪些知识是面试必考,也是 Java 工程师必须掌握的知识呢?

    1. Java 基础中的核心内容

    字符串和字符串常量池的深入理解、Array 的操作和排序算法、深克隆和浅克隆、各种 IO 操作、反射和动态代理(JDK 自身动态代理和 CGLIB)等。

    2. 集合

    集合和 String 是编程中最常用的数据类型,关于集合的知识也是面试备考的内容,它包含:链表(LinkedList)、TreeSet、栈(Stack)、队列(双端、阻塞、非阻塞队列、延迟队列)、HashMap、TreeMap 等,它们的使用和底层存储数据结构都是热门的面试内容。

    3. 多线程

    多线程使用和线程安全的知识也是必考的面试题目,它包括:死锁、6 种线程池的使用与差异、ThreadLocal、synchronized、Lock、JUC(java.util.concurrent包)、CAS(Compare and Swap)、ABA 问题等。

    4. 热门框架

    Spring、Spring MVC、MyBatis、SpringBoot

    5. 分布式编程

    消息队列(RabbitMQ、Kafka)、Dubbo、Zookeeper、SpringCloud 等。

    6. 数据库

    MySQL 常用引擎的掌握、MySQL 前缀索引、回表查询、数据存储结构、最左匹配原则、MySQL 的问题分析和排除方案、MySQL 读写分离的实现原理以及 MySQL 的常见优化方案等。Redis 的使用场景、缓存雪崩和缓存穿透的解决方案、Redis 过期淘汰策略和主从复制的实现方案等。

    7. Java 虚拟机

    虚拟机的组成、垃圾回收算法、各种垃圾回收器的区别、Java 虚拟机分析工具的掌握、垃圾回收器的常用调优参数等。

    8. 其他

    常用算法的掌握、设计模式的理解、网络知识和常见 Linux 命令的掌握等。

    值得庆幸的是以上所有内容都包含在本课程中,接下来就让我们一起学习,一起构建 Java 的认知体系吧!

    点击收下这份《Java 面试全解析》

    相关面试题

    1. Java 语言都有哪些特点?

    答:Java 语言包含以下特点。

    • 面向对象,程序容易理解、开发简单、方便;
    • 跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;
    • 执行性能好,运行效率高;
    • 提供大量的 API 扩展,语言强大;
    • 有多线程支持,增加了响应和实时交互的能力;
    • 安全性好,自带验证机制,确保程序的可靠性和安全性。

    2. Java 跨平台实现的原理是什么?

    答:要了解 Java 跨平台实现原理之前,必须先要了解 Java 的执行过程,Java 的执行过程如下:

    执行过程

    Java 执行流程:Java 源代码(.java)-> 编译 -> Java 字节码(.class) ->通过 JVM(Java 虚拟机)运行 Java 程序。每种类型的服务器都会运行一个 JVM,Java 程序只需要生成 JVM 可以执行的代码即可,JVM 底层屏蔽了不同服务器类型之间的差异,从而可以在不同类型的服务器上运行一套 Java 程序。

    3. JDK、JRE、JVM 有哪些区别?

    答:了解了 JDK、JRE、JVM 的定义也就明白了它们之间的区别,如下所述。

    • JDK:Java Development Kit(Java 开发工具包)的简称,提供了 Java 的开发环境和运行环境;
    • JRE:Java Runtime Environment(Java 运行环境)的简称,为 Java 的运行提供了所需环境;
    • JVM:Java Virtual Machine(Java虚拟机)的简称,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,简单来说就是所有的 Java 程序都是运行在 JVM(Java 虚拟机)上的。

    总体来说,JDK 提供了一整套的 Java 运行和开发环境,通常使用对象为 Java 的开发者,当然 JDK 也包含了 JRE;而 JRE 为 Java 运行的最小运行单元,一般安装在 Java 服务器上,所以 JDK 和 JRE 可以从用途上进行理解和区分。JVM 不同于 JDK 和 JRE,JVM 是 Java 程序运行的载体,Java 程序只有通过 JVM 才能正常的运行。

    4. Java 中如何获取明天此刻的时间?

    答:JDK 8 之前使用 Calendar.add() 方法获取,代码如下:

    Calendar calendar = Calendar.getInstance();calendar.add(Calendar.DATE, 1);System.out.println(calendar.getTime());

    JDK 8 有两种获取明天时间的方法。

    方法一,使用 LocalDateTime.plusDays() 方法获取,代码如下:

    LocalDateTime today = LocalDateTime.now();LocalDateTime tomorrow = today.plusDays(1);System.out.println(tomorrow);

    方法二,使用 LocalDateTime.minusDays() 方法获取,代码如下:

    LocalDateTime today = LocalDateTime.now();LocalDateTime tomorrow = today.minusDays(-1);System.out.println(tomorrow);

    minusDays() 方法为当前时间减去 n 天,传负值就相当于当前时间加 n 天。

    5. Java 中如何跳出多重嵌套循环?

    答:Java 中跳出多重嵌套循环的两种方式。

    • 方法一:定义一个标号,使用 break 加标号的方式
    • 方法二:使用全局变量终止循环

    方法一,示例代码:

    myfor:for (int i = 0; i < 100; i++) {    for (int j = 0; j < 100; j++) {        System.out.println("J:" + j);        if (j == 10) {            // 跳出多重循环            break myfor;        }    }}

    方法二,示例代码:

    boolean flag = true;for (int i = 0; i < 100 && flag; i++) {    for (int j = 0; j < 100; j++) {        System.out.println("J:" + j);        if (j == 10) {            // 跳出多重循环            flag = false;            break;        }    }}

    6. char 变量能不能存贮一个中文汉字?为什么?

    答:char 变量可以存贮一个汉字,因为 Java 中使用的默认编码是 Unicode ,一个 char 类型占 2 个字节(16 byte),所以放一个中文是没问题的。

    7. Java 中会存在内存泄漏吗?请简单描述一下。

    答:一个不再被程序使用的对象或变量一直被占据在内存中就造成了内存泄漏。

    Java 中的内存泄漏的常见情景如下:

    • 长生命周期对象持有短生命的引用,比如,缓存系统,我们加载了一个对象放在缓存中,然后一直不使用这个缓存,由于缓存的对象一直被缓存引用得不到释放,就造成了内存泄漏;
    • 各种连接未调用关闭方法,比如,数据库 Connection 连接,未显性地关闭,就会造成内存泄漏;
    • 内部类持有外部类,如果一个外部类的实例对象的方法返回了一个内部类的实例对象,这个内部类对象被长期引用了,即使那个外部类实例对象不再被使用,但由于内部类持有外部类的实例对象,这个外部类对象将不会被垃圾回收,这也会造成内存泄露;
    • 改变哈希值,当一个对象被存储进 HashSet 集合中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则对象修改后的哈希值与最初存储进 HashSet 集合中时的哈希值就不同了,在这种情况下,即使在 contains 方法使用该对象的当前引用作为的参数去 HashSet 集合中检索对象,也将返回找不到对象的结果,这也会导致无法从 HashSet 集合中单独删除当前对象,造成内存泄露。

    点击可查《Java 面试全解析》还会讲什么


    此外,我们为本课程付费读者创建了《Java 面试全解析》的微信交流群,方便读者更有针对性地讨论课程相关问题,以及分享Java 技术和面试心得。

    入群请添加「GitChat 小助手泰勒」:识别下方二维码,或者添加 GitChatty5,注明「Java 面试」。

    温馨提示:需购买才可入群哦,加小助手后需要截图已购买页面来发给小助手验证一下~

    FtkDbtI-hx5hlJERoW0MGan1I8Ax

    第 1-2 课:你不知道的基础数据类型和包装类 + 面试题

    基本数据类型

    Java 基础数据按类型可以分为四大类:布尔型、整数型、浮点型、字符型,这四大类包含 8 种基础数据类型。

    • 布尔型:boolean
    • 整数型:byte、short、int、long
    • 浮点型:float、double
    • 字符型:char

    八种基础类型取值如下:

    数据类型代表含义默认值取值包装类
    boolean布尔型false0(false) 到 1(true)Boolean
    byte字节型(byte)0-128 到 127Byte
    char字符型'\u0000'(空)'\u0000' 到 '\uFFFF'Character
    short短整数型(short)0-2^15 到 2^15
    -1Short
    int整数型0-2^31 到 2^31-1Integer
    long长整数型0L-2^63 到 2^63-1Long
    float单浮点型0.0f1.4e-45 到 3.4e+38Float
    double双浮点型0.0d4.9e-324 到 1.798e+308Double

    除 char 的包装类 Character 和 int 的包装类 Integer 之外,其他基础数据类型的包装类只需要首字母大写即可。包装类的作用和特点,本文下半部分详细讲解。

    我们可以在代码中,查看某种类型的取值范围,代码如下:

    public static void main(String[] args) {    // Byte 取值:-128 ~ 127    System.out.println(String.format("Byte 取值:%d ~ %d", Byte.MIN_VALUE, Byte.MAX_VALUE));    // Int 取值:-2147483648 ~ 2147483647    System.out.println(String.format("Int 取值:%d ~ %d", Integer.MIN_VALUE, Integer.MAX_VALUE));}

    包装类型

    我们知道 8 种基本数据类型都有其对应的包装类,因为 Java 的设计思想是万物既对象,有很多时候我们需要以对象的形式操作某项功能,比如说获取哈希值(hashCode)或获取类(getClass)等。

    那包装类特性有哪些?

    1. 功能丰富

    包装类本质上是一个对象,对象就包含有属性和方法,比如 hashCode、getClass 、max、min 等。

    2. 可定义泛型类型参数

    包装类可以定义泛型,而基础类型不行。

    比如使用 Integer 定义泛型,代码:

    List<Integer> list = new ArrayList<>();

    如果使用 int 定义就会报错,代码:

    List list = new ArrayList<>();  // 编译器代码报错

    3. 序列化

    因为包装类都实现了 Serializable 接口,所以包装类天然支持序列化和反序列化。比如 Integer 的类图如下:

    Integer 类图

    4. 类型转换

    包装类提供了类型转换的方法,可以很方便的实现类型之间的转换,比如 Integer 类型转换代码:

    String age = "18";int ageInt = Integer.parseInt(age) + 2;// 输出结果:20System.out.println(ageInt);

    5. 高频区间的数据缓存

    此特性为包装类很重要的用途之一,用于高频区间的数据缓存,以 Integer 为例来说,在数值区间为 -128~127 时,会直接复用已有对象,在这区间之外的数字才会在堆上产生。

    我们使用 == 对 Integer 进行验证,代码如下:

    public static void main(String[] args) {        // Integer 高频区缓存范围 -128~127        Integer num1 = 127;        Integer num2 = 127;        // Integer 取值 127 == 结果为 true(值127 num1==num2 => true)        System.out.println("值127 num1==num2 => " + (num1 == num2));        Integer num3 = 128;        Integer num4 = 128;        // Integer 取值 128 == 结果为 false(值128 num3==num4 => false)        System.out.println("值128 num3==num4 => " + (num3 == num4));    }

    从上面的代码很明显可以看出,Integer 为 127 时复用了已有对象,当值为 128 时,重新在堆上生成了新对象。

    为什么会产生高频区域数据缓存?我们查看源码就能发现“线索”,源码版本 JDK8,源码如下:

    public static Integer valueOf(int i) {  if (i >= IntegerCache.low && i <= IntegerCache.high)    return IntegerCache.cache[i + (-IntegerCache.low)];  return new Integer(i);}

    由此可见,高频区域的数值会直接使用已有对象,非高频区域的数值会重新 new 一个新的对象。

    各包装类高频区域的取值范围:

    • Boolean:使用静态 final 定义,就会返回静态值;
    • Byte:缓存区 -128~127,全部缓存;
    • Short:缓存区 -128~127,部分缓存;
    • Character:缓存区 0~127,部分缓存;
    • Long:缓存区 -128~127,部分缓存;
    • Integer:缓存区 -128~127,部分缓存。

    包装类的注意事项

    • int 的默认值是 0,而 Integer 的默认值是 null。

    • 推荐所有包装类对象之间的值比较使用 equlas() 方法,因为包装类的非高频区数据会在堆上产生,而高频区又会复用已有对象,这样会导致同样的代码,因为取值的不同,而产生两种截然不同的结果。代码示例:

    public static void main(String[] args) {    // Integer 高频区缓存范围 -128~127    Integer num1 = 127;    Integer num2 = 127;    // Integer 取值 127 == 结果为 true(值127 num1==num2 => true)    System.out.println("值127 num1==num2 => " + (num1 == num2));    Integer num3 = 128;    Integer num4 = 128;    // Integer 取值 128 == 结果为 false(值128 num3==num4 => false)    System.out.println("值128 num3==num4 => " + (num3 == num4));    // Integer 取值 128 equals 结果为 true(值128 num3.equals(num4) => true)    System.out.println("值128 num3.equals(num4) => " + num3.equals(num4));}
    • Float 和 Double 不会有缓存,其他包装类都有缓存。

    • Integer 是唯一一个可以修改缓存范围的包装类,在 VM optons 加入参数:

    -XX:AutoBoxCacheMax=666 即修改缓存最大值为 666

    示例代码如下:

    public static void main(String[] args) {    Integer num1 = -128;    Integer num2 = -128;    System.out.println("值为-128 => " + (num1 == num2));    Integer num3 = 666;    Integer num4 = 666;    System.out.println("值为666 => " + (num3 == num4));    Integer num5 = 667;    Integer num6 = 667;    System.out.println("值为667 => " + (num5 == num6));}

    执行结果如下:

    值为-128 => true值为666 => true值为667 => false

    由此可见将 Integer 最大缓存修改为 666 之后,667 不会被缓存,而 -128~666 之间的数都被缓存了。

    先收下这份《Java 面试全解析》

    相关面试题

    1. 以下 Integer 代码输出的结果是?

    Integer age = 10;Integer age2 = 10;Integer age3 = 133;Integer age4 = 133;System.out.println((age == age2) + "," + (age3 == age4));

    答:true,false

    2. 以下 Double 代码输出的结果是?

    Double num = 10d;Double num2 = 10d;Double num3 = 133d;Double num4 = 133d;System.out.println((num == num2) + "," + (num3 == num4));

    答:false,false

    3. 以下程序输出结果是?

    int i = 100;Integer j = new Integer(100);System.out.println(i == j);System.out.println(j.equals(i));

    A:true,true
    B:true,false
    C:false,true
    D:false,false

    答:A

    题目分析:有人认为这和 Integer 高速缓存有关系,但你发现把值改为 10000 结果也是 true,true,这是因为 Integer 和 int 比较时,会自动拆箱为 int 相当于两个 int 比较,值一定是 true,true

    4. 以下程序执行的结果是?

    final int iMax = Integer.MAX_VALUE;System.out.println(iMax + 1);

    A:2147483648
    B:-2147483648
    C:程序报错
    D:以上都不是

    答:B

    题目解析:这是因为整数在内存中使用的是补码的形式表示,最高位是符号位 0 表示正数,1 表示负数,当执行 +1 时,最高位就变成了 1,结果就成了 -2147483648。

    5. 以下程序执行的结果是?

    Set<Short> set = new HashSet<>();for (short i = 0; i < 5; i++) {    set.add(i);    set.remove(i - 1);}System.out.println(set.size());

    A:1
    B:0
    C:5
    D:以上都不是

    答:5

    题目解析:Short 类型 -1 之后转换成了 Int 类型,remove() 的时候在集合中找不到 Int 类型的数据,所以就没有删除任何元素,执行的结果就是 5。

    6. short s=2;s=s+1; 会报错吗?short s=2;s+=1; 会报错吗?

    答:s=s+1 会报错,s+=1 不会报错,因为 s=s+1 会导致 short 类型升级为 int 类型,所以会报错,而 s+=1 还是原来的 short 类型,所以不会报错。

    7. float f=3.4; 会报错吗?为什么?

    答:会报错,因为值 3.4 是 double 类型,float 类型级别小于 double 类型,所以会报错。如下图所示:

    报错示例图

    8. 为什么需要包装类?

    答:需要包装类的原因有两个。

    ① Java 的设计思想是万物既对象,包装类体现了面向对象的设计理念;
    ② 包装类包含了很多属性和方法,比基础数据类型功能多,比如提供的获取哈希值(hashCode)或获取类(getClass)的方法等。

    9. 基础类 int 和包装类 Integer,在 -128~127 之间都会复用已有的缓存对象,这种说法正确吗?

    答:不正确,只有包装类高频区域数据才有缓存。

    10. 包装类 Double 和 Integer 一样都有高频区域数据缓存,这种说法正确吗?

    答:不正确,基础数据类型的包装类只有 Double 和 Float 没有高频区域的缓存。

    11. 包装类的值比较要使用什么方法?

    答:包装类因为有高频区域数据缓存,所以推荐使用 equals() 方法进行值比较。

    12. 包装类有哪些功能?

    答:包装类提供的功能有以下几个。

    • 功能丰富:包装类包含了有 hashCode、getClass 、max、min 等方法;
    • 可定义泛型类型参数:例如 List<Integer> list = new ArrayList<>(); ;
    • 序列化:包装类实现了 Serializable 接口,所以包装类天然支持序列化和反序列化;
    • 类型转换:包装类提供了方便的类型转换方法,比如 Integer 的 parseInt() 方法;
    • 高频区域数据缓存:高频区域可使用已有的缓存对象。

    详见正文“包装类型”部分内容。

    13. 泛型可以为基础类型吗?为什么?

    答:泛型不能使用基础数据类型。泛型在 JVM(Java虚拟机)编译的时候会类型檫除,比如代码 List<Integer> list 在 JVM 编译的时候会转换为 List list ,因为泛型是在 JDK 5 时提供的,而 JVM 的类型檫除是为了兼容以前代码的一个折中方案,类型檫除之后就变成了 Object,而 Object 不能存储基础数据类型,但可以使用基础数据类型对应的包装类,所以像 List<int> list 这样的代码是不被允许的,编译器阶段会检查报错,而 List<Integer> list 是被允许的。

    14. 选择包装类还是基础类的原则有哪些?

    答:我们知道正确的使用包装类,可以提供程序的执行效率,可以使用已有的缓存,一般情况下选择基本数据类型还是包装类原则有以下几个。

    ① 所有 POJO 类属性必须使用包装类;
    ② RPC 方法返回值和参数必须使用包装类;
    ③ 所有局部变量推荐使用基础数据类型。

    15. 基础数据类型在 JVM 中一定存储在栈中吗?为什么?

    答:基础数据类型不一定存储在栈中,因为基础类型的存储位置取决于声明的作用域,来看具体的解释。

    • 当基础数据类型为局部变量的时候,比如在方法中声明的变量,则存放在方法栈中的,当方法结束系统会释放方法栈,在该方法中的变量也会随着栈的销毁而结束,这也是局部变量只能在方法中使用的原因;
    • 当基础数据类型为全局变量的时候,比如类中的声明的变量,则存储在堆上,因为全局变量不会随着某个方法的执行结束而销毁。

    16. 以下程序执行的结果是?

    Integer i1 = new Integer(10);Integer i2 = new Integer(10);Integer i3 = Integer.valueOf(10);Integer i4 = Integer.valueOf(10);System.out.println(i1 == i2);System.out.println(i2 == i3);System.out.println(i3 == i4);

    A:false,false,false
    B:false,false,true
    C:false,true,true
    D:true,false,false

    答:B

    题目解析:new Integer(10) 每次都会创建一个新对象,Integer.valueOf(10) 则会使用缓存池中的对象。

    17. 3*0.1==0.3 返回值是多少?

    答:返回值为:false。

    题目解析:因为有些浮点数不能完全精确的表示出来,如下代码:

    System.out.println(3 * 0.1);

    返回的结果是:0.30000000000000004。

    点击可查《Java 面试全解析》还会讲什么


    此外,我们为本课程付费读者创建了《Java 面试全解析》的微信交流群,方便读者更有针对性地讨论课程相关问题,以及分享Java 技术和面试心得。

    入群请添加「GitChat 小助手泰勒」:识别下方二维码,或者添加 GitChatty5,注明「Java 面试」。

    温馨提示:需购买才可入群哦,加小助手后需要截图已购买页面来发给小助手验证一下~

    FtkDbtI-hx5hlJERoW0MGan1I8Ax

    第 1-3 课:深入理解字符串 + 面试题
    第 1-4 课:Java 中的运算符和流程控制 + 面试题
    第 1-5 课:深入了解 Java 中的异常处理 + 面试题
    第 1-6 课:玩转时间 + 面试题
    第 1-7 课:数组和排序算法 + 面试题 ####
    第 2-1 课:类与 Object + 面试题
    第 2-2 课:各种内部类和枚举类 + 面试题
    第 2-3 课:抽象类和接口 + 面试题
    第 2-4 课:克隆和序列化 + 面试题 ####
    第 3-1 课:集合详解(上) + 面试题
    第 3-2 课:集合详解(下) + 面试题
    第 3-3 课:泛型和迭代器 + 面试题
    第 3-4 课:数据结构——队列详解 + 面试题
    第 4-1 课:BIO、NIO、AIO 详解 + 面试题
    第 4-2 课:反射和动态代理 + 面试题 ####
    第 5-1 课:线程与死锁 + 面试题
    第 5-2 课:线程池——ThreadPoolExecutor + 面试题
    第 5-3 课:线程池——Executors + 面试题
    第 5-4 课:ThreadLocal 详解 + 面试题
    第 5-5 课:线程安全——synchronized 和 ReentrantLock + 面试题
    第 5-6 课:Java 并发包中的高级同步工具 + 面试题
    第 5-7 课:Java 中的各种锁和 CAS + 面试题 ####
    第 6-1 课:Spring 核心 + 面试题
    第 6-2 课:SpringMVC 核心 + 面试题
    第 6-3 课:SpringBoot 核心 + 面试题
    第 6-4 课:MyBatis 核心 + 面试题
    第 6-5 课:消息队列面试题汇总
    第 6-6 课:Java 分布式框架面试题合集 ####
    第 7-1 课:MySQL 面试题汇总
    第 7-2 课:Redis 面试题汇总
    第 7-3 课:设计模式常见面试题汇总
    第 7-4 课:算法常用面试题汇总
    第 7-5 课:JVM 面试题汇总
    第 7-6 课:常见面试题翻车合集
    结语

    阅读全文: http://gitbook.cn/gitchat/column/5d493b4dcb702a087ef935d9

    展开全文
  • 形象易懂讲解算法II——压缩感知

    千次阅读 多人点赞 2016-09-27 20:20:55
    抛弃复杂的数学表述,用没有公式的语言讲清楚压缩感知的核心思路,尽量形象易懂。 我还绘制了大量示意图,因为排版问题,我将主要以PPT的形式呈现,并按slice标好了序号。 -------------------------------------...
    作者:咚懂咚懂咚
    链接:https://zhuanlan.zhihu.com/p/22445302
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    之前曾经写过一篇关于小波变换的回答( 能不能通俗的讲解下傅立叶分析和小波分析之间的关系? - 咚懂咚懂咚的回答),得到很多赞,十分感动。之后一直说要更新,却不知不觉拖了快一年。。此次更新,思来想去,决定挑战一下压缩感知(compressed sensing, CS)这一题目。

    在我看来,压缩感知是信号处理领域进入21世纪以来取得的最耀眼的成果,并在磁共振成像、图像处理等领域取得了有效应用。压缩感知理论在其复杂的数学表述背后蕴含着非常精妙的思想。基于一个有想象力的思路,辅以严格的数学证明,压缩感知实现了神奇的效果,突破了信号处理领域的金科玉律——奈奎斯特采样定律。即,在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。

    正是被它的精妙思想所打动,我选择它作为专栏第二篇的主题。理解压缩感知的难度可能要比之前讲的小波还要大,但是我们从中依然可以梳理出清晰的脉络。这篇文章的目标和之前一样,我将抛弃复杂的数学表述,用没有公式的语言讲清楚压缩感知的核心思路,尽量形象易懂。我还绘制了大量示意图,因为排版问题,我将主要以PPT的形式呈现,并按slice标好了序号。

    ---------------------------------------------------------------------------------------------------------------------------


    一、什么是压缩感知(CS)?

    compressed sensing又称compressed sampling,似乎后者看上去更加直观一些。没错,CS是一个针对信号采样的技术,它通过一些手段,实现了“压缩的采样”,准确说是在采样过程中完成了数据压缩的过程

    因此我们首先要从信号采样讲起:

    1. 我们知道,将模拟信号转换为计算机能够处理的数字信号,必然要经过采样的过程。问题在于,应该用多大的采样频率,即采样点应该多密多疏,才能完整保留原始信号中的信息呢?

    ---------------------------------------

    2. 奈奎斯特给出了答案——信号最高频率的两倍。一直以来,奈奎斯特采样定律被视为数字信号处理领域的金科玉律。

    ---------------------------------------

    3. 至于为什么是两倍,学过信号处理的同学应该都知道,时域以τ为间隔进行采样,频域会以1/τ为周期发生周期延拓。那么如果采样频率低于两倍的信号最高频率,信号在频域频谱搬移后就会发生混叠

    ---------------------------------------

    4. 然而这看似不容置疑的定律却受到了几位大神的挑战。Candes最早意识到了突破的可能,并在不世出的数学天才陶哲轩以及Candes的老师Donoho的协助下,提出了压缩感知理论,该理论认为:如果信号是稀疏的,那么它可以由远低于采样定理要求的采样点重建恢复

    ---------------------------------------

    5. 而突破的关键就在于采样的方式。当我们说“采样频率”的时候,意味着做的是等间距采样,数字信号领域通常都是做等间距采样,也服从奈奎斯特采样定律。

    但是如果是不等间距采样呢?依然必须要服从采样定理吗?

    ---------------------------------------


    6. 答案是,随机的亚采样给了我们恢复原信号的可能。

    上图非常关键,它可以简单直观地表述压缩感知的思路。 如图b、d为三个余弦函数信号叠加构成的信号,在频域的分布只有三条线(图a)。 如果对其进行8倍于全采样的等间距亚采样(图b下方的红点),则频域信号周期延拓后,就会发生混叠(图c),无法从结果中复原出原信号。

    ---------------------------------------

    7. 而如果采用随机亚采样(图b上方的红点),那么这时候频域就不再是以固定周期进行延拓了,而是会产生大量不相关(incoherent)的干扰值。如图c,最大的几个峰值还依稀可见,只是一定程度上被干扰值覆盖。这些干扰值看上去非常像随机噪声,但实际上是由于三个原始信号的非零值发生能量泄露导致的(不同颜色的干扰值表示它们分别是由于对应颜色的原始信号的非零值泄露导致的)

    P.S:为什么随机亚采样会有这样的效果?


    这可以理解成随机采样使得频谱不再是整齐地搬移,而是一小部分一小部分胡乱地搬移,频率泄露均匀地分布在整个频域,因而泄漏值都比较小,从而有了恢复的可能。

    ---------------------------------------

    8. 接下来的关键在于,信号该如何恢复? 下面讲一种典型的算法(匹配追踪):

    (1) 由于原信号的频率非零值在亚采样后的频域中依然保留较大的值,其中较大的两个可以通过设置阈值,检测出来(图a)。

    (2) 然后,假设信号只存在这两个非零值(图b),则可以计算出由这两个非零值引起的干扰(图c)。

    (3) 用a减去c,即可得到仅由蓝色非零值和由它导致的干扰值(图d),再设置阈值即可检测出它,得到最终复原频域(图e)

    (4) 如果原信号频域中有更多的非零值,则可通过迭代将其一一解出。


    以上就是压缩感知理论的核心思想——以比奈奎斯特采样频率要求的采样密度更稀疏的密度对信号进行随机亚采样,由于频谱是均匀泄露的,而不是整体延拓的,因此可以通过特别的追踪方法将原信号恢复。





    二、压缩感知的前提条件

    接下来我们总结一下,能实现压缩感知的关键在于什么,即需要哪些前提条件。

    9. 在刚才的讲述中大家可以感受到,这个例子之所以能够实现最终信号的恢复,是因为它满足了两个前提条件:

    1. 这个信号在频域只有3个非零值,所以可以较轻松地恢复出它们。

    2. 采用了随机亚采样机制,因而使频率泄露均匀地分布在整个频域。

    这两点对应了CS的两个前提条件——稀疏性(sparsity)不相关性(incoherence)

    ---------------------------------------

    10. 关于稀疏性可以这样简单直观地理解:若信号在某个域中只有少量非零值,那么它在该域稀疏,该域也被称为信号的稀疏域

    因此,第一个前提条件要求信号必须在某一个变换域具有稀疏性。比如例子中,信号在频域是稀疏的,因而可以通过所述的重建方法轻松地在稀疏域(频域)复原出原信号。

    ---------------------------------------

    然而通常信号在变换域中不会呈现完全的稀疏性。其实只要它近似满足稀疏性,即大部分值趋于零,只有少量大的非零值,就可以认为它是可压缩信号,可以对它进行CS亚采样。

    对于之前讲的例子,如果它在频域中不稀疏,我们可以做DWT、DCT等,找到它的稀疏变换。

    ---------------------------------------

    11. 这里针对信号的稀疏性和信号压缩额外补充一下:其实,信号的稀疏性已经在图像压缩领域有了很广泛的应用。利用信号的稀疏性,可以对信号进行压缩。如图像压缩领域的JPEG格式,就是将图像变换到离散余弦域,得到近似稀疏矩阵,只保留较大的值,从而实现压缩。

    ---------------------------------------

    12. 比如这个例子中,仅用原图像6.9%的点就复原了和原图像基本相同的图像。我们还可以采用小波变换,即为JPEG-2000,压缩效果更好。

    ---------------------------------------


    13. 这里需要指出,图像压缩和压缩感知这两个概念很容易弄混,大家一定要分清。

    它们其实有着本质上的区别。图像压缩是先进行了全采样,然后再变换域丢弃小系数,完成压缩;

    而压缩感知不同,它的思想其实从图像压缩中借鉴了很多:既然全采样了还要再丢弃,我们为什么不能直接少采样一些点?因此,压缩感知直接进行了亚采样,然后再用算法消除亚采样导致的伪影。可以说,压缩感知直接在采样时就完成了压缩

    ---------------------------------------

    14. 接下来,在将第二个前提条件之前,还是需要引入必要的数学表达的。上图是一个大家在压缩感知相关的书籍文献中会经常看到的一张示意图。很多文章试图用这张图给大家讲清楚什么是压缩感知,结果导致大家看得一头雾水,混淆在各种“矩阵”当中。。不过相信有了我之前的讲解,现在这张图会好理解很多。这张图也就是把亚采样的过程用矩阵的方式表达出来而已:

    如图,x是为长度N的一维信号,也就是原信号,稀疏度为k。此刻它是未知的。

    Φ为观测矩阵,对应着亚采样这一过程。它将高维信号x投影到低维空间,是已知的。

    y=Φx为长度M的一维测量值,也就是亚采样后的结果。显然它也是已知的。

    因此,压缩感知问题就是在已知测量值y和测量矩阵Φ的基础上,求解欠定方程组y=Φx得到原信号x。

    然而,一般的自然信号x本身并不是稀疏的,需要在某种稀疏基上进行稀疏表示。令x=Ψs,Ψ为稀疏基矩阵,s为稀疏系数。

    于是最终方程就变成了:y=ΦΨs。已知y、Φ、Ψ,求解s。

    ---------------------------------------

    15. 对应一开始的例子大家就能明白:x就是三个正弦信号叠加在一起的原信号;稀疏矩阵Ψ就是傅里叶变换,将信号变换到频域S;而观测矩阵Φ就对应了我们采用的随机亚采样方式;y就是最终的采样结果。

    ---------------------------------------

    16. y=ΦΨs有点长,我们把ΦΨ合并成一个矩阵,称之为传感矩阵。即令Θ=ΦΨ,则y=ΘS。

    问题即为,已知y和Θ,求解S。

    求解出S后,由x=Ψs即可得到恢复出的原信号x。

    然而在正常情况下,方程的个数远小于未知数的个数,方程是没有确定解的,无法重构信号。但是,由于信号是K稀疏,如果上式中的Φ满足有限等距性质(RIP),则K个系数就能够从M个测量值准确重构(得到一个最优解)。

    ---------------------------------------



    17.接下来的数学内容可以简短略过:陶大神和Candès大神证明了RIP才是观测矩阵要满足的准确要求。但是,要确认一个矩阵是否满足RIP非常复杂。于是Baraniuk证明:RIP的等价条件是观测矩阵和稀疏表示基不相关(incoherent)。

    这就是压缩感知的第二个前提条件。

    ---------------------------------------

    18. 那怎样找到不相关的观测矩阵呢?陶哲轩和Candès又证明: 独立同分布的高斯随机测量矩阵可以成为普适的压缩感知测量矩阵。

    于是满足高斯分布的随机测量矩阵就成了CS最常用的观测矩阵。

    对于二维信号,往往就采用如右上图所示的采样矩阵对图像进行亚采样。

    对于一维信号,采用前文提到的随机不等间距的亚采样即可。

    ------------------------------------------------------------------------------



    到这里,我们可以这样用一句话概括地描述什么是压缩感知:

    如果一个信号在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号。

    以上可以算作是压缩感知的定义吧。但是如果要再简洁一点呢?



    在我看来,压缩感知可以用这样一句话来表述:

    直接采集出一个JPEG


    ——之前图像压缩的方法是全采样之后再压缩,抛弃稀疏变换域中的一些小系数;而CS直接减少了采样点,采集完后、经过重建的图像,就是一副在某变换域稀疏的压缩图像,比如JPEG。



    那这么做有什么优势呢?

    对于很多情形,比如照相机拍摄照片,这样减少采样点并没有优势。因为所有像素的采集在一瞬间就都完成了。

    但是对于一些采集比较慢的情形,比如核磁共振成像,CS就可以发挥巨大优势。原本一副MRI图像常常需要几十秒,速度慢也是MRI的一大缺陷。而应用CS技术后,只需要采集全采样几分之一的数据,就可以重建出原图。这样就可以把成像速度提高好几倍,同时对图像质量影响不大。

    另一个应用是Rice大学开发的单像素相机,也就是说这种相机只需要一个像素,非常有趣。感兴趣的朋友可以自己去调查。



    三、压缩感知的重建方法

    如前文所述,CS的重建也就是求解欠定方程组y=ΘS的方法。这是一个零范数(l0)最小化问题,是一个NP完全问题(没有快速解法的问题),因此往往转换成一范数(l1)最小化的求解,或者用一些近似估计的算法。这部分的具体内容在这里就不再详述了。




    ------------------------------------------------------------------------------

    以上就是压缩感知的简单讲述。各方面都只是浅尝辄止,更多内容需还要大家自己研究。

    其实写这篇文章之前我已经做好了受冷落的准备,毕竟不像小波变换,压缩感知的受众面比较小,理解难度又比较大,大家阅读时还请耐心一点。如果看后能对压缩感知的主要思想有了一定的认识,也就不枉我费劲力气画了这么多图、码了这么多字。




    同系列另一篇:形象易懂讲解算法I——小波变换 - 咚懂咚懂咚的文章 - 知乎专栏


    注:未经允许,禁止微信公众号转载。

    「原来还能打赏(⊙o⊙)」
    展开全文
  • MATLAB典型代码扎瓦尔齐诺 zavarzino是我们在其中一篇论文中为运输分析案例研究开发的一些代码。 为了说明运输系统中常见的一种常见分析,我们尝试形象化交通数据的每周模式。 根据一周中的一天,运输需求将随位置和...
  • 详细介绍 LTE 随机接入,小区搜索,附着 承载建立 1.1 控制面与用户面 5 1.2 接口与协议 5 1.2.1 NAS协议(非接入层协议) 7 1.2.2 RRC层(无线资源控制层) 7 1.2.3 PDCP层(分组数据汇聚协议层) 8 ...
  • 选取黄土高原典型小流域作为研究对象,黄河的泥沙主要来源于黄土高原腹部陕北黄土高原,面积高程积分常常...面积高程积分在研究地貌发育定量研究中,虽比较准确,但是体积高程积分具有形象直观,计算快速,计算结果和实际比较
  • orelDRAW X5平面设计典型实例(中文版)》是一本特别为广大数字艺术与平面设计师编写的教材。 全书共分为9章,通过33个经典设计作品的制作全过程,包括制作蛋糕图形、字母LOGO、变形文字、Super标牌、Redbaby标牌、...
  • 名企面试官精讲典型编程题之数据结构字符串篇 字符串是由若干字符组成的序列。由于字符串在编程时使用的频率非常高,为了优化,很多语言都对字符串做了特殊的规定。下面分别讨论C/C++和C#中字符串的特性。 C/C++ ...
  • 信息安全概述;什么是信息安全 ;信息安全的目标 信息系统中数据与信息的安全与保密 信息系统自身的安全;信息安全的三个方面(BS7799) 机密性保密性 完整性一致性 可用性服务连续性;...国内外典型调查2
  • 双扬:一个非典型前端的成长之路

    千次阅读 2020-09-09 16:37:33
    简介:每个人的成长都有自己特殊性和普遍性,希望大家从我「特殊」的境遇之中吸取你认为「普遍」的部分,并化用在自己的日常工作中,全情...回望过去的职业生涯,我一直不是一个典型的前端形象。 搞技术的不懂产品和运
  • 张爱玲是一个典型的用女性意识、女性话语写作的女作家。她巧妙地利用写作这一方式,用含蓄而隐喻的写作策略,展示与演绎了在封建父权社会体制下女性被侵压、被凌辱的历史真相;同时通过对男性批判与放逐的书写方式对...
  • 对比了南昌市与国内外著名城市道路建筑空间效果,指出南昌城市道路建设中存在问题―――对城市道路前方的建筑和空间形象关注不够,并对城市道路对景建筑空间形象作了深入地阐述,同时分析了南昌市两处典型案例的建设...
  • 本书用大量的篇幅讲述了与计算机原理相关的各种编码...第19章 两种典型的微处理器 第20章 ASCII 码和字符映射 第21章 总线连接 第22章 操作系统 第23章 定点数和浮点数 第24章 高级语言和低级语言 第25章 图形化革命
  • 代码形象——javadoc注释规范

    万次阅读 2017-03-25 14:19:43
    基本注释 (1)类和接口 (2)构造方法 (3)普通方法(实体类对象的setter、getter方法不用注释) (4)全局变量 (5)字段、属性 特殊注释 (1)典型算法 (2)在代码不明晰处 (3)在代码修改处加上修改标识注释...
  • 信息系统典型的开发架构

    千次阅读 2007-03-14 11:48:00
    信息系统典型的开发架构是: MS SQLSERVER + 存储过程 +DataAccess+ DAL + Model + BLL + UI• 数据库设计 : 在建表的时候,请添加对字段的描述。这将为后来的所有自动创建注释和前台页面做好准备。(字段描述可在...
  • 典型的DIV+CSS布局——固定宽度且居中的版式

    千次阅读 多人点赞 2012-10-16 07:19:34
    一、效果 二、HTML结构 典型的DIV+CSS布局 典型的DIV+CSS布局
  • 形象易懂讲解算法I——小波变换

    千次阅读 2017-11-17 21:36:52
    从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。 下面我就按照傅里叶-->短时傅里叶变换-->...
  • 十大典型个人网站成功真实案例

    千次阅读 2007-08-24 11:42:00
    很多站长 经常会产生这样那样的疑问 某某站长吹牛说自己一天多少pageview 多少点击率 一天几百的广告收入 真的有这么多吗? 看看这些名不见经传的个人网站 他们并不是很...网站形象 活动推广策划 以及网站本身
  • 形象易懂讲解算法——压缩感知

    万次阅读 多人点赞 2018-10-16 11:15:00
    这篇文章的目标和之前一样,我将抛弃复杂的数学表述,用没有公式的语言讲清楚压缩感知的核心思路,尽量形象易懂。我还绘制了大量示意图,因为排版问题,我将主要以PPT的形式呈现,并按slice标好了序号。 一、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,655
精华内容 16,262
关键字:

典型形象