java吧 关注:1,256,732贴子:12,750,229

回复:简单讲讲自己成为架构的经历

取消只看楼主收藏回复

啊 终于回答完毕了 还有同学没回复的可以继续问我哈 我会一一回复的


来自Android客户端204楼2019-02-02 23:38
收起回复
    技能篇-容器
    1. hashmap的原理 数据结构 hash的链表散列原理 equalse方法和hashcode方法在hashmap中的使用(先hashcode进行确定index来确定buget如果碰撞则比较equalse方法然后形成链表)
    2. hashmap的进阶原理 对于大小的控制 对于concurrentmodification ex的问题等等内容
    3. 不同jdk版本下的hashmap原理 主要还是jdk1.8下对于hashmap进行了优化然后jdk1.5下对于hashmap的并发进行了优化
    4. 对于hashmap在分布式业务下的应用 比如hash值的负载均衡 一致性hash等内容


    来自Android客户端205楼2019-02-03 14:02
    收起回复
      后面会进行面试部分的总结和思想感悟 标注lz自己的学习方法和思考方法


      来自Android客户端206楼2019-02-03 14:02
      收起回复
        1.1.2 javaee部分
        javaee部分根据不同的面试企业可能考察的方面不一样 比如外包的公司可能重点考察javaee的框架serverlet和jsp 前端框架等内容 互联网公司可能重点考察常用框架如spring myvatis等内容 所以一定要做好规划啊


        来自Android客户端209楼2019-02-04 13:34
        收起回复
          javaee-spring
          spring这么说吧 现在不懂spring可以说不懂java了 现在spring可以说是一个一个完整的技术栈 lz面试的时候被问的是spring的设计思想和事务处理 所以这里说明这两点
          1. spring的设计思想 di和ioc解决的问题 为什么使用spring进行配置而不是直接new 这里我的理解是面向对象思想的解释和面向对象设计五大原则然后引入架构风格最后解释技术选项的思考
          我自己的回答 首先spring是一个轻量级的容器框架 基于工程模式封装了所有bean的构建方法生命周期
          这种方式比e**轻量级非常多 并且对于架构设计来说控制上下文和bean的构建方法是控制架构范围的一种方法 如面向对象原则里面的ocp和lsp都是说了内聚和面对抽象设计 这样必须对于抽象的实现提供框架级别的支持
          解释完上面之后再说 在做技术选型的时候需要考虑方方面面 对于spring这种容器及上下文的选择已经经过很多大型系统的验证 社区也非常丰富并且掌握的人足够多 所以是最合适的


          来自Android客户端210楼2019-02-04 13:34
          收起回复
            javaee-框架部分
            spring是单独罗列的 面试的时候可能遇到springaop问题spring的transaction manage的问题等等 还有一部分是mybatis等部分 这些lz真的好久不用了 所以每个人都自己准备自己的就好


            来自Android客户端211楼2019-02-04 13:35
            回复
              1.1.2 项目问题
              具体肯定会问项目里面的很多细节
              lz第一次面试的时候只有企业管理软件所以逗死三层架构部分 第二次面试是互联网公司 当时自己做了消息服务(消息队列) 统一session管理和sso 标准app的后台系统简单架构 这里分别说 注意这里的项目经验是lz自己的 所以每个人要对自己的项目足够了解
              项目-标准三层架构
              标准服务器三层架构的职责划分 每一层的技术选型 每一层的职责内容 每一层的设计规范 比如标准的web层使用springmvc框架 考虑的是外部交互封装的是视图(服务器的json)这些内容


              来自Android客户端212楼2019-02-04 13:35
              收起回复
                技能篇这里就简单介绍完毕了
                这里都是lz第一次面试时掌握的技能 可以看出来都是基础技能 不同的是当时lz准备的时候会比别人多准备一些问题 所以面试初高级开发的时候成功率还很高 因为初高级开发考察的都是基础部分
                下面会介绍一些思路篇章 思路部分可能比较抽象 所以这里会简单介绍
                思路介绍完毕后就讲讲我第一份工作的具体内容和自己学习的过程
                希望帮助到大家


                来自Android客户端213楼2019-02-04 13:39
                回复
                  大家新年好 祝愿所学终有所报


                  来自Android客户端214楼2019-02-04 22:55
                  收起回复
                    各个地方推销自己的帖子 好心累


                    来自Android客户端233楼2019-02-12 23:35
                    收起回复
                      感觉又没人看了 我还是后面讲的生动一些吧


                      来自Android客户端265楼2019-02-18 18:04
                      回复
                        2. 思路篇
                        其实如果一路看下来的同学会发现lz对思路非常非常重视 可以说整个帖子都是用自己的思路来拆开技能给大家讲 自己成长的经历就是思路更迭的过程 这个可以后面说说(又挖坑)
                        2.1 思路篇-简历
                        2.1.1 简历整体写什么
                        简历可以说是求职最重要的了 我们需要写联系方式 项目经历 自我介绍 教育信息 个人亮点 一个完整的建立必定是包含上面每一点的 请一定完整书写
                        2.1.2 项目经历
                        项目经历请一定一定参考我的建议 记住项目经历不是流水账记录你的工作内容 而是一个展示技能展示能力的工具 请一定记住没人会在意你之前项目是怎么做的 大家在意的是你用这个项目体现出来的能力
                        具体内容为
                        1. 项目概述 按照业务背景 项目目标 应用架构的方式来逐一描述自己的项目 概述就是用一句话来描述项目是在干什么 业务背景则需要描述业务场景 业务功能如果感觉自己nb可以介绍业务架构 应用架构可以简单理解为这个项目的技术选型和技术相关的架构 记住项目介绍的时候必须每个都涉及到
                        2. 自我职责
                        重点说明自己在项目中完成了什么内容 与第一点的不同地方是 第一点是整个项目的 哪怕不是自己做的也要介绍(因为这样可以体现自己的宏观思路和能力) 而这部分介绍自己在项目中承担的职责 即自己完成了哪部分工作 这部分工作的核心设计是什么 有哪些地方自己觉得很nb 并且针对哪些地方进行了深入了解
                        3. 项目递进
                        上面两点是必须写在简历里面的 而这点是需要融入道面试和简历中的 项目递进 主要是表现出自己的思考能力学习能力以及在项目中没有用到但是自己具备的能力 这也是面试中考察的重点 如
                        是否能具体介绍项目整体架构
                        目前架构是否合理 是否有更好的实现方式
                        如果业务量级翻十倍 那么目前的技术架构能否完成?


                        来自Android客户端269楼2019-02-18 19:29
                        收起回复
                          今天下班早 大家问起来啊


                          来自Android客户端270楼2019-02-18 19:29
                          收起回复
                            最近很多面试 这里贴一个今天我简单记录的面试记录 可以让大家看一下具体阿里的要求


                            来自Android客户端308楼2019-02-20 17:27
                            收起回复
                              1. 自我介绍,重点介绍技术栈和项目经理
                              2. 结合项目直接问soa服务化拆分的原则和拆分的设计.引导水平拆分和垂直拆分的一些思考.由于候选人说没有做垂直拆分就无法进行追问.
                              3. 候选人提出自己写了一个分布式事务的sdk.所以针对分布式事务模型进行了提问,主要考察基于jta/xa两阶段模型上的设计和思考.没有发现对分布式事务模型进行过多了解和思考.后续追问如何实现一阶段/二阶段.但是候选人对于xa模型不太理解.后续提醒之后发现对于transactionManager还是有所设计.但是没有详细了解关于分布式事务一致性的保障问题.如事务恢复涉及.
                              4. 提到弱一致性的读高并发.进而进行问如何解决高并发写的问题.候选人提出使用redis进行缓冲记录库存的方案.以及提出使用处理请求队列的方案.进而提问对于请求队列导致的时效性降低(异步化)如何解决.候选人没有理解
                              5. javacore问题.多线程线程池参数问题,coresize,maxsize等参数是否了解,回答不完美.


                              来自Android客户端309楼2019-02-20 17:28
                              收起回复