精华内容
参与话题
问答
  • 我说我懂多线程,面试官立马给我发了offer

    万次阅读 多人点赞 2020-04-07 09:24:52
    不小心拿了几个offer,有点烦

    前言

    只有光头才能变强。

    文本已收录至我的GitHub精选文章,欢迎Starhttps://github.com/ZhongFuCheng3y/3y

    在上周总结了一篇「工作中常用到的Java集合类」,反响还不错。这周来写写Java另一个重要的知识点:「多线程

    多线程大家在初学的时候,对这个知识点应该有不少的疑惑的。我认为主要原因有两个:

    • 多线程在初学的时候不太好学,并且一般写项目的时候也很少用得上(至少在初学阶段时写的项目基本不需要自己创建线程)。
    • 多线程的知识点在面试经常考,多线程所涉及的知识点非常多,难度也不低。

    这就会给人带来一种感觉「这破玩意涉及的东西是真的广,平时也不怎么用,怎么面试就偏偏爱问这个鬼东西

    不多BB,我要开始了。

    为什么使用多线程?

    首先,我们要明确的是「为什么要使用多线程」,可能有人会认为「使用多线程就是为了加快程序运行的速度啊」。如果你是这样回答了,那面试官可能会问你「那多线程是怎么加快程序运行速度的?」

    于我的理解:使用多线程最主要的原因是提高系统的资源利用率

    现在CPU基本都是多核的,如果你只用单线程,那就是只用到了一个核心,其他的核心就相当于空闲在那里了。

    厕所的坑位有5个,如果只用一个坑位,那不是很亏?比如现在我有5个人要上厕所。

    在单线程的时候:进去一个人解决要10分钟,然后后面的人都得等一个坑位。那总的时间就要花费50分钟。

    在多线程的时候,进去一个人要解决10分钟,然后后面的人发现还有别的坑位,就去别的坑位了,不是傻瓜地等一个坑位。

    我们可以把「等坑位」看作是IO操作,众所周知IO操作相对于CPU而言是非常慢的,CPU等待IO那段时间是空闲的。如果我们需要做类似IO这种慢的操作,可以开多个线程出来,尽量不要让CPU空闲下来,提高系统的资源利用率。

    说白了,我们就是在**「压榨」**CPU的资源。本来就有的资源,如果有需要,我们就应当好好利用。

    多线程不是银弹,并不是说线程越多,我们的资源利用效率就越好。执行IO操作我们线程可以适当多一点,因为很多时候CPU是相对空闲的。如果是计算型的操作,本来CPU就不空闲了,还开很多的线程就不对了(有多线程就会有线程切换的问题,线程切换都是需要耗费资源的)

    多线程离我们远吗?

    多线程其实离我们很近,只是很多时候我们感知不到它的存在而已。

    Tomcat我相信每个Java后端的同学都认识它,它就是以多线程去响应请求的,我们可以在server.xml中配置连接池的配置,比如:

    <Connector port="8080" maxThreads="350" maxHttpHeaderSize="8192" minSpareThreads="45" maxPostSize="512000" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="200" keepAliveTimeout="15000" maxKeepAliveRequests="-1" maxConnections="25000" connectionTimeout="15000" disableUploadTimeout="false" useBodyEncodingForURI="true" URIEncoding="UTF-8" />
    

    Tomcat处理每一个请求都会从线程连接池里边用一个线程去处理,这显然是多线程的操作。然后这个请求线程顺藤摸瓜到了我们的Servlet,执行对应的service()方法。

    而我们的service方法是无状态的,多个线程请求service方法,往往都没有操作共享变量,不操作共享变量就不会有线程安全问题。

    上面只是用了Servlet举例,我们常用的SpringMVC其实也是一样的(毕竟底层还是Servlet)。

    还有我们在连接数据库的时候,也会用对应的连接池(Druid、C3P0、DBCP等),比如常见的Druid配置:

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
         <property name="url" value="${jdbc_url}" />
         <property name="username" value="${jdbc_user}" />
         <property name="password" value="${jdbc_password}" />
    
         <property name="filters" value="stat" />
    
         <property name="maxActive" value="20" />
         <property name="initialSize" value="1" />
         <property name="maxWait" value="60000" />
         <property name="minIdle" value="1" />
    
         <property name="timeBetweenEvictionRunsMillis" value="60000" />
         <property name="minEvictableIdleTimeMillis" value="300000" />
    
         <property name="testWhileIdle" value="true" />
         <property name="testOnBorrow" value="false" />
         <property name="testOnReturn" value="false" />
    
         <property name="poolPreparedStatements" value="true" />
         <property name="maxOpenPreparedStatements" value="20" />
    
         <property name="asyncInit" value="true" />
     </bean>
    

    我想说的是:我们日常开发的程序几乎都是多线程模式的,只是绝大多数时候我们没感知到而已。很多时候都是框架帮我们屏蔽掉了。

    多线程知识重要吗?

    从上面总结下来,我们可以发现:我们日常「关于多线程的代码」写得不多,但是我们写的程序代码的的确确是在多线程的环境下跑的。

    如果我们不懂多线程知识,很直接的一个现实:

    生成结果

    从文章最开头的思维导图,我们可以发现多线程的知识点还是很多的,我们起码得知道:

    • 线程和进程的区别
    • Thead类的常见方法
    • 可以用什么手段来解决线程安全性问题
    • Synchronized和Lock锁的区别
    • 什么是AQS、ReentrantLock和ReentrantReadWriteLock锁
    • JDK自带的线程池有哪几个,线程池的构造方法重要的参数
    • 什么是死锁,怎么避免死锁
    • CountDownLatch、CyclicBarrier、Semaphore是什么?
    • Atomic包下的常见子类,什么是CAS,CAS会有什么问题
    • ThreadLocal是什么?
    • …//

    虽然在工作中未必会全部用得上,但如果项目真的用到了,我们如果学过了可能就可以很快地理解当时为什么要这样设计(我觉得去挖掘过程还是挺有意思的)。

    我可能不用,但你必须要有

    这个道理也很容易懂:「我买电脑的时候,虽然我是木耳听不出什么音质出来,但你音质就是得好」。企业招人的时候也一样「你在工作的时候未必要写,但你必须要会

    至少在我看来,从求职的角度触发,多线程是很重要的。之前我还整理过在我当时校招经常被问到的多线程面试题目:

    1. 多线程了解多少啊?使用多线程会有什么问题?你是怎么理解“线程安全”的?
    2. 如果我现在想要某个操作等待线程结束之后才执行,有什么方法可以实现?为什么要用CountDownLatch?CountDownLatch的底层是什么?(引出AQS)
    3. synchronized关键字来说一下,它的用途是什么?synchronized底层的原理是什么?
    4. 线程安全的容器有哪些?(着重于ConcurrentHashMap、CopyWriteOnArrayList与其他非线程安全容器的区别以及它们的具体实现)
    5. ThreadLocal你了解过吗?主要是用来干什么的?具体的源码实现原理来说一下吧
    6. 产生死锁的条件是什么?我们可以如何避免死锁?(可延伸到操作系统层面上的死锁)
    7. synchronized锁和ReentrantLock锁有什么区别呀?
    8. 线程池你应该也看过吧,来说说为什么要用线程池。JDK默认实现了几个线程池,分别有xxx(自然地ThreadPoolExecutor构造函数的常用几个参数你也得一起说出来)

    我在工作中用到的线程知识有哪些

    本来是打算这篇文章主旋律就写这块的,然后我翻了一下自己维护的系统,用到的线程的地方还真的不是很多…

    我就拿我现在的系统用到线程相关知识的几个例子吧。

    线程池

    我这边有个调度系统,运营设置了对应的时间,该任务就去执行,执行的内容大致就是去读HDFS文件,然后将数据组装,再传递到下游。

    任务触发了以后,我们直接将这个任务交给一个线程池去处理,交由线程池后就直接返回SUCCESS

    这样做的好处是什么?如果多个任务同时触发,那可能某些任务执行时间过长,请求可能会被阻塞住,而我们如果放在线程池中可以提高系统的吞吐量。

    使用线程池的时候,往往我们的调用方都不需要考虑请求是否立马处理成功。假设线程池在处理任务的时候因为某些原因失败了,我们可以走报警机制(用邮件/短信等渠道去提醒请求方即可)。

    不知道大家学过消息队列了没有,我们常常说消息队列是异步的,很多时候调用方的请求我们丢到消息队列里边,就告诉调用方我们这条请求处理成功了。实际上,这个请求可能还交由下游的多个系统去处理,下游的系统可能也是异步的…

    在使用线程池的时候,很多时候我们也是把他当做异步来使(WebFlux实际上也是将请求丢到线程池嘛),只要我们的系统之间交互不是强一致性的,又希望提高系统的吞吐量,我们就可以考虑使用线程池。

    轮询

    有的时候,我们需要有一个线程去轮询处理某些任务。

    比如,我的系统会有发短信的功能,我调用渠道商的下发接口的后,我需要拿到短信的回执信息,于是我就需要去调用渠道商的回执接口。

    此时最简单的做法就是开一个线程,不断的轮询渠道商的回执接口(我们设定轮询的间隔时间即可)

    Thread thread = new Thread(new Runnable() {
      @Override
      public void run() {
        while (true) {
          try {
            // 间隔一段时间轮询一次                                           
            TimeUnit.MILLISECONDS.sleep(period);
    
            // 调用接口
            String result = http.post();
    
            // 得到result后进行处理(比如将结果插入到数据库)
            smsDao.insert(result);
          }
        }
      });
    thread.start();
    

    或者有的时候,我们把任务放到内存阻塞队列或者Redis,也是通过一个线程轮询去取「队列」的数据。

    借助juc包实现线程安全

    juc其实就是java.util.concurrent

    我们在使用线程的时候,或者在日常开发的时候,都是得考虑我们现在使用的场景是否是线程安全的。

    如果不是线程安全的,我们可以做什么东西来使我们的程序变得线程安全。

    • 如果是集合,我们可以考虑一下juc包下的集合类。
    • 如果是数值/对象,我们可以考虑一下atomic包下的类。
    • 如果是涉及到线程的重复利用,我们可以考虑一下是否要用线程池。
    • 如果涉及到对线程的控制(比如一次能使用多少个线程,当前线程触发的条件是否依赖其他线程的结果),我们可以考虑CountDownLatch/Semaphore等等
    • 如果synchronized无法满足你,我们可以考虑lock包下的类


    img

    涵盖Java后端所有知识点的开源项目(已有6 K star):https://github.com/ZhongFuCheng3y/3y

    如果大家想要实时关注我更新的文章以及分享的干货的话,微信搜索Java3y

    PDF文档的内容均为手打,有任何的不懂都可以直接来问我(公众号有我的联系方式)。

    展开全文
  • offer

    2006-12-09 09:45:00
    11.28号回了家,29号接近中午的时候接到IBM成都ISSC的电话,说叫我去签offer,心里激动了一下,这意味着我要开始工作了。其实之前去面过迅雷的产品经理,但是第一时间没有得到offer,虽然还有第二批的offer,但是...

           11.28号回了家,29号接近中午的时候接到IBM成都ISSC的电话,说叫我去签offer,心里激动了一下,这意味着我要开始工作了。其实之前去面过迅雷的产品经理,但是第一时间没有得到offer,虽然还有第二批的offer,但是显然家里的人更希望我留在成都,IBM那边也催的很紧,确实没有理由再等下去了。说实话,还是很想去迅雷,一家高速发展的互联网企业,一家还没上市的潜力股。
           下午签了offer,签得还是比较干脆,没什么可疑虑的,第一份工作往往不是适合自己的工作,所以就是一个学习的地方,能在一个国际化的公司里面待着,本身就能长很多见识,况且待遇也很不错。非常期待12月初开始的培训,又可以让自己忙碌起来了,这样的感觉确实非常的棒。

     
    展开全文
  • 大三实习生,字节跳动面经分享,已拿Offer

    万次阅读 多人点赞 2020-03-29 21:32:51
    说实话,自己的算法,我一个不会,太难了吧

    计科大三学生,无实习无项目经历成绩普通

    一面3.9:40min

    HashMap和ConcurrentHashMap的区别

    vector,list

    C++多态,虚函数机制

    进程通信

    进程线程差异

    TCP三次握手四次挥手细节

    算法题:最长不重复字串(HashTable,O(N))

    面试官人非常好,有一些遗漏的知识点会给你指出来并且讲解,也很耐心。

    二面3.15:1h

    Java多态(看程序说结果,比较复杂,还考察了override和overwrite)

    二叉搜索树

    B树b+树

    红黑树删除算法

    用互斥锁实现读写锁,写者优先

    算法题:有100个方格,每个上面有毒蘑菇和体力蘑菇,毒蘑菇减体力体力蘑菇加体力,当前体力是能跳到的最远距离,求是否能跳到最远方格,如果可以,求落在第100格上的最大剩余体力

    二面面试官挺严肃的,回答问题不会肯定或者否定你,听完你的回答就会直接继续下一个知识点,节奏非常紧凑。面完我一度以为凉了,结果十分钟后hr打电话通知三面,而且三面面试官说前面的两次面试官评价挺高。所以小伙伴碰到比较严肃的面试官也不要灰心,平常心回答就好

    三面3.17: 1h

    服务方法调用

    RPC/Netty

    序列化/反序列化

    10亿找Top10000,需要考虑分片,如果用最小堆需要考虑高效合并

    要考虑等待时间且带有优先权的打印机,设计数据结构使打印任务高效

    二十四点牌

    在三面开始的时候面试官问了能够实习的时间和想要实习的地点,猜测可能是leader直接面试(最后也正好去了这个面试官在的城市),人很和善,不过问题都不是我准备过的基础题型,碰到的时候还是有一点束手无策。

    3.27收到offer啦!等了快两周终于拿到心心念念的offer哈哈!

    其实准备字节跳动的面试还是需要着重准备基础部分(数据结构、算法、操作系统、计算机网络),另外对做算法题的要求很高,如果在看到题目的时候能直接给出这个题目的最优时空复杂度解法,面试官对你的评价会很高。

    如果基础知识比较扎实了,可以看看网络上的面试经验,找找自己不会的知识点,查漏补缺。

    也祝大家都能拿到心仪的offer!

    絮叨

    首先恭喜一下读者,让敖丙我去,我是肯定面不过,这些好多都没准备过,我之前说校招比社招难,真的没框你们,所以仔们,真的得好好准备呀。

    说一下最近我的事情吧,最近小忙,文章输出频率不比以前了,而且最近熬夜熬多了好像头发少了,我后面还是控制下熬夜的事情。

    最后发个意见征集吧,不知道写啥了,我在写一个分布式锁的,下周发出来,其他就不知道了,你们留言看看你们想看啥,我看到感兴趣的我就写了。

    春招结束我就会停止录制面试视频了,还是想搞点技术的,或者搞点生活的?

    你们看看录啥喜欢看点。

    絮叨

    另外,敖丙把自己的面试文章整理成了一本电子书,共 1630页!目录如下

    现在免费送给大家,在我的公众号三太子敖丙回复 【888】 即可获取。

    我是敖丙,一个在互联网苟且偷生的程序员。

    你知道的越多,你不知道的越多人才们的 【三连】 就是丙丙创作的最大动力,我们下期见!

    注:如果本篇博客有任何错误和建议,欢迎人才们留言!


    文章持续更新,可以微信搜索「 三太子敖丙 」第一时间阅读,回复【资料】有我准备的一线大厂面试资料和简历模板,本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。

    展开全文
  • 各位小主,咱们又见面了!在前两期的公告中,CSDN产品组已...Java精选频道上线 OFFER大挑战等你来! CSDN APP Java精选频道上线,内容涵盖基础知识点,Java学习路线,Java 面试指导,热门框架教程等,独家优质资源,...

    各位小主,咱们又见面了!在前两期的公告中,CSDN产品组已感受到大家对我们深沉的爱,再此谢谢大家的褒贬。服务好每一位用户,是我们一直不变的初心。
    在这里插入图片描述
    在过去一周,开发在产品的鞭策下,又带来了哪些功能呢?

    CSDN APP端

    Java精选频道上线 OFFER大挑战等你来!

    CSDN APP Java精选频道上线,内容涵盖基础知识点,Java学习路线,Java 面试指导,热门框架教程等,独家优质资源,助你完成技术升级。

    除了汇聚优质内容,还有在线刷题闯关大挑战,金牌还是银牌,来闯一闯便知!扫码前往CSDN APP开启闯关模式。
    在这里插入图片描述

    在这里插入图片描述

    • 电子书功能优化 阅读更愉悦
    • 极客头条内容升级,萌妹御姐音,陪你一起成长
    • 动态功能优化
    • 性能提升,速度更快

    博客

    1、博客付费专栏上线 跟“风云卫星”数据工程师学Python

    在这里插入图片描述
    博客首个付费专栏重磅来袭,目前订阅只需1.9元即可享受 Python 从小白入门学习的基础语法、基础模块精讲等内容外,还提出了“Python语感训练”的概念和方法,不仅为初学者提供了进阶之路,有一定基础的程序员亦可从中受益。后续,本专栏还将加入2D/3D应用开发、数据处理、实战项目等精品内容,敬请期待。

    作者许向武曾参与过风云系列卫星、碳卫星、子午工程、嫦娥等项目的数据处理工作;有超10年大型项目的开发经验,立即订阅

    2、MD 编辑器支持插入 B 站视频

    在上一期公告中,博客团队上线了MD编辑器视频插入功能,本周博客开发团队继续完善,操作更便捷,目前支持插入腾讯视频,B站视频。

    在这里插入图片描述
    该功能上线受到了大家一致好评,还未使用的小伙伴不妨来体验一番

    3、WAP端上线博文发布功能

    在手机上写博客是不少用户一直期待的功能,目前已上线。阅读博文、浏览专栏,统统都可以了哈,给产品跟开发小哥点赞!
    在这里插入图片描述
    使用说明:

    在手机浏览器登陆CSDN官网,点击头像——我的博客,点击右下角红色写作按钮即可进行创作。

    4、博客等级权益上线

    随着博主等级的提升,用户可以逐渐得到更多的权益,权益设计包括博客皮肤、会员奖励、会员折扣、自定义域名等。
    在这里插入图片描述

    博客权益说明图

    5、博文数据统计

    对博主来说,文章得到更多人关注与浏览是一种莫大的肯定,也会给予他们更多的创作动力。对此,CSDN博客管理后台上线了博文数据统计功能,让你分分钟知道博文数据概况。
    在这里插入图片描述
    操作说明:

    登陆CSDN网站,点击管理博客——博文数据统计即可,点击前往>>

    本期的公告就到这里,以上这些功能,哪一个是你最青睐的呢。CSDN产品团队特地做了一份调查问卷,希望能够听到你们的真实声音。

    点击前往功能现场,建议 or 吐槽>>

    FAQ

    针对以上更新,如果您有异议或者更好的反馈,欢迎联系客服:

    • 客服QQ

    • 客服邮箱;kefu#csdn.net(把#换成@)

    展开全文
  • 剑指offer | 面试题66:构建乘积数组

    万次阅读 2020-03-12 13:45:06
    本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i...
  • Java面试Offer直通车

    2020-04-23 15:35:34
    Java面试Offer直通车
  • 离职半年了,老东家又发 offer,回不回?

    万次阅读 多人点赞 2020-03-19 10:06:48
    有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1...
  • 剑指Offer——丑数

    万次阅读 2016-09-16 18:29:53
    剑指Offer——丑数前言参照《剑指Offer》,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固。package cn.edu.ujn.offersword; import java.util.Scanner; public class C5_34_UglyNumber { /** * @...
  • 本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 一个链表中包含环,如何找出环的入口结点?如下图,环的入口节点是3 解题分析 这道题,首选用我们程序员...
  • 现在CSDN、知乎、掘金上各路大佬层出不穷,他们身经百战、血洗杀场,总结出满满的干货,方便刚刚入此行的道友们少走弯路,拿到心仪的offer。但同时也存在很多非良心的博主,要么活出了人类的本质,复读机一样到处...
  • 剑指Offer——回溯算法

    万次阅读 2016-08-07 16:03:27
    剑指Offer——回溯算法什么是回溯法 回溯法实际是穷举算法,按问题某种变化趋势穷举下去,如某状态的变化用完还没有得到最优解,则返回上一种状态继续穷举。回溯法有“通用的解题法”之称,其采用了一种“走不通就...
  • YOU CAN前言正文不要自卑,去提升实力互联网行业谁技术牛谁是爹你这么聪明,你会被游戏控制?朋友是你在玩它。 前言 学得越多,不会得越多 活着就是为了改变世界 下一阶段目标:工作第一年攒10w,在老家买房子付...
  • 剑指Offer——分治算法

    万次阅读 2016-09-04 10:00:56
    剑指Offer——分治算法基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题...
  • 剑指Offer——常用SQL语句、存储过程和函数常用SQL语句1.在MySQL数据库建立多对多的数据表关系2.授权、取消授权grant、revokegrant select, insert, update, delete on testdb.* to common_user@’%’; revoke all ...
  • 华为社招面试(拿到offer)

    万次阅读 多人点赞 2018-06-22 20:03:07
    前段时间华为主动联系我要不要面试,抱着试一下的心态接受了面试邀请,最后顺利拿到了offer,不过最终由于方方面面的原因还是没有去。 本文主要分享下,面试的大致过程。 1. 初步电话技术面试 主要问了下,...
  • 剑指Offer——全排列递归思路

    万次阅读 2016-08-09 21:54:44
    剑指Offer——全排列递归思路前言 全排列,full permutation, 可以利用二叉树的遍历实现。二叉树的递归遍历,前中后都简洁的难以置信,但是都有一个共同特点,那就是一个函数里包含两次自身调用。所以,如果一个递归...
  • offer攻略

    千次阅读 2018-05-08 18:51:26
    Offer攻略:写给立志做程序员的应届毕业生们http://www.codeceo.com/article/offer-programmer-student.html
  • 剑指Offer——二分查找算法

    万次阅读 2016-08-03 11:50:13
    剑指Offer——二分查找算法前言 本片博文主要讲解查找算法的相关知识。重点介绍二分查找。 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟...
  • 剑指Offer 最新版

    2017-09-11 10:38:48
    剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer剑指Offer
  • 剑指Offer——知识点储备-设计模式

    万次阅读 2016-11-07 15:58:32
    剑指Offer——知识点储备-设计模式设计模式设计模式的六大原则 (1)单一职责原则(有且仅有一个原因引起类的变化); (2)里氏替换(任何父类出现的地方子类都可以替换); (3)依赖倒置(依赖抽象而不是依赖具体...
  • 100% 成功率的 offer 收割机是怎样练成的?

    万次阅读 多人点赞 2019-09-17 08:51:57
    都说今年的形势不好,各种找工作不顺利,但我身边就有一位同学,每次面试都拿到了offer,我特意邀请他来给大家分享下经验,虽然不同人的技术领域未必相同,但很多东西是相通的,...
  • 剑指Offer——简述堆和栈的区别

    万次阅读 2016-09-02 21:31:43
    剑指Offer——简述堆和栈的区别堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建; Java虚拟机规范描述:所有的对象实例及数组都要在堆上分配; Java堆可以处于物理上不连续的内存空间,只要逻辑...
  • ❤️万字攻略,详解腾讯面试,offer offer offer❤️

    千次阅读 多人点赞 2021-01-13 22:05:11
    本文一万字,以非腾讯在职人的身份,来聊腾讯面试的流程、攻略和建议,但愿能助有缘人。标题涉及的范围很广,对多数面试腾讯的人而言,都有参考价值,看完本文之后,必有所得。退一步来讲,即便是准备面试其他公司,...
  • 剑指Offer——京东校招笔试题+知识点总结笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统。工作量还是很大的。做到精确制导的好方法就是在网上刷题,包括牛客和...
  • 我的阿里秋招之路——阿里实习offer+校招offer

    万次阅读 多人点赞 2017-09-08 00:28:39
    我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份经历了阿里五次面试,四月顺利收到实习offer。然后五月怀着忐忑的心情开始了蚂蚁金服的实习。八月,又经历了两轮面试,总算拿到转正offer...
  • offer和面经分享(内含offer截图)

    千次阅读 2018-10-28 12:01:45
    一直以来其实不太倾向把offer截图公开分享,少不了有点炫耀的嫌疑。但是呢,总有些同学在公众号后台留言质疑:“博主只会吹嘘,我还拿到了google、微软的offer呢,敲键盘谁不会啊”。对于这类留言本来直接忽略就好,...
  • DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程——01~20 目录 剑指offer——66道在线编程——01~20 1、二维数组中的查找某个target—二分法查找 2、字符串内空格进行替换—列表转为字符串...
  • Queue 中 add() 和 offer() 区别

    万次阅读 2019-05-06 15:32:14
    在 Queue 中 add() 和 offer() 有什么区别? Queue 中 add() 和 offer()都是用来向队列添加一个元素。 在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。 JDK...
  • 剑指offer

    2018-08-15 15:09:13
    剑指Offer_编程题01:二维数组中的查找 剑指Offer_编程题06:旋转数组的最小数字(指针) 剑指Offer_编程题13:调整数组顺序使奇数位于偶数前面 剑指Offer_编程题28:数组中出现次数超过一半的数字 剑指Offer_编程...
  • 2016校招offer

    2019-07-05 18:43:04
    蘑菇街内推电话面试 一面跪 ...华为提前批 Special offer 15*12+10(10W为第一年年终奖,以后看绩效) 腾讯SNG后台开发 offer 12.5 不低于19.5W/年 百度医疗事业部 offer 14*14.6 20.44W/年 携程 机票组后台开发 ...

空空如也

1 2 3 4 5 ... 20
收藏数 162,566
精华内容 65,026
关键字:

offer