首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java程序员的校招笔记——求职如梦

    2018年春,在家过完春节, 过完十一,回学校。第一周还是自以为是的浪,泡馆看书,记得当时看完了《镜花缘》,还有的忘了。反正前一周毫无压迫感,然后偶遇师兄提醒,开始紧张。紧张之余,制订了一套计划,开始准备春招实习,大三下学期。 春招启程   首先是做简历,和复习交叉着来。简历,先花钱在淘宝上买了很多套模板,跟着模板做,参考《剑指offer》做出了第一版。然后是发给比较要好的师兄求批评,收集到第一波意见,改之。继续发给师兄和老师看,重复迭代。后面的求职阶段,基本保持简历周更,每次都有优化,而且越来越少收到否定。值得一提的是,发给师兄和老师,他们看到你简历写的不错,也会帮你内推。   复习这一块,分析了一下自己的优劣势,我的基础比较扎实,所以优先夯实基础。菜鸟刚开始绝对不能搞木桶理论,一定要扬长避短,最大限度放大优势。首先复习了数据结构,把常见的算法刷一遍,然后第三次刷周志明的《深入理解Java虚拟机》;看了一下计算机网络,过一遍;我的项目经验比较水,是最大的劣势,所以简历上写的项目都比较水,在后面也花了时间去包装。数据库,17年我过了一遍“Innodb技术内幕”,虽然忘光了,但是时间宝贵也就没有抽时间复习,redis在寒假期间大概复习了如何用而已;我的大赛经验还行,所以在简历里是写在靠前的,两个国际级(一个到四月底才出了结果),还有国家级证书等,还是有得吹,所以也自己花了时间构思逻辑;   闲暇,看面经。牛客上的面经真的很好吃。因为我是做Java的,很多关于分布式,中间件,RPC,当时完全没有学过,纯粹靠面经补。然后是Java的底层,如线程安全,这个结合“深入理解Java虚拟机”这本书,此书神书也。当然,线程安全的神书是“Java 并发编程实战”,我和舍友一致推为Java多线程圣经,当年我只看过几章,很难看得下去,度日如年,过后却觉功力大增。很好,这里我发现Java这一块我的熟悉领域在多线程和JVM模型,所以以后但凡面试问Java,我都把话题暗暗地牵扯到Java虚拟机,此招制霸。   说说那些令我痛心疾首,心服口服的面试。 处面,阿里巴巴   18年四月初,我在牛客找了阿里的内推。一个普通二本院校的普通学生,初生牛犊不怕虎。不出几日,某夜,一个电话打过来,开始一面。聊了数据库的底层,我很多记不清,就诚实地说不记得了。然后聊数据结构,从排序聊起,聊到队列,聊了循环队列,然后他其实想问我缓存队列的,我没扯过去,他主动扯了,我大概聊,没说好;聊了生产者消费者模式,又没说好。聊JVM,当时我还没复习周志明的大作,忘光死。问了很多线程安全的问题,一个都回答不上。内存模型也没描述清楚,运行时数据区和OOM都没说出来。聊了接近一个小时,面试官说先这样,挂了电话,自觉凉了,莫名心伤,在内推群喊了一句已凉。不巧,面试官也在那群,互加了好友,私信说我基础不错,简直就是一剂强心剂,激动不已,自我感觉良好。   过几日,还是晚上,电话二面,面试官说看了前面的面试记录,感觉不错,然后把一面所有我答不上的问题逐个提出,阵亡。其实一面之后,我并没有放松,但是当时只是把自己错的题目记了下来,打算后面再复习,自己按照原定计划走,结果也就如此了。我第一次面试,还是阿里,错招频出。其一,自己实在是懂得太少,错得不自知。其实在后面,因为知识学的广了,重点知识的深度也有一些,在面试中是可以预测下一个问题要问什么的,甚至是暗示面试官问什么。其二,心理素质可圈可点,整个阿里面,特别是一面,展现了比较强的求生欲,其实当时就是觉得反正希望渺茫,不如拼了。到了二面,由于被敲打短处,搓伤口,整个过程都在淌血,越聊越怂。这个其实也属无奈。其三,面试被问到不会的,下来第一时间复习,这是后面自己强制执行的。   需要特别说的是,两面结束前都请面试官给出了意见,然后阿里的面试官超好,给我点出了优势和弱点,并且说出了他们自己觉得哪里不该错,让我感激不已。阿里的面试,一次面试可以长很多经验,技术也好,面试技巧也好,都让我学到了很多。 奈何舍我,唯品会   四月,投了唯品会的Java助理实习,笔试过,在清明前一天远程视频面试。一面面试官上来就问Java虚拟机,我那时候正好被阿里碾压过一次,刚刚恶补了JVM,开始秀Java虚拟机的知识,详细到JDK7和8的区别,什么情况下major GC,线程安全,volative的语义,全部半引导的聊了出来,简直太爽了。一面基本没遇到比较难的问题,过。二面聊数据结构,面试官长得像学校网络中心的陈老,说话也像,自来熟。聊得也还行,最后问了笔试大题的思路,我说不记得题目,他竟然发过了啦,尴尬。然后我略作思考,和他讨论了解题思路,注意的边界,打算开始写,他电脑没电了,掉线。然后通过电话继续聊了一下,结束。那天是清明的前几天,我面试完就收拾东西回家了。结果车上HR打过来问是否有空聊三面,我说在车上,延后。   清明后,顺利聊了HR,准备发Offe

    03

    Android实习周记:第一周,井底之蛙上岸

    由于公司距离学校较远,每天七点就要起床,洗漱、早点后,大概一个半小时刚好到公司。我每次都是九点前到,那时候公司人还没来5分之一。等到九点十五左右,大家陆陆续续都到了公司,我也没去过大公司,传说中好像大公司都要准点打卡,这点上小公司还是略胜一筹。 不管别人来了没有,作为实习生,我力求每天九点前能到。当然,这里用了“力求”两个字,是因为有时候真是天不遂人愿,比如今早,我硬是在公交站牌眼睁睁地看着*4辆我要坐的车满满而来、满满而去,挥一挥衣袖,一个人都挤不上去。还好第五辆有机会,我健步如飞百步穿杨使着武当梯云纵硬是挤了上去,真是难啊。* 到了公司,大家都比较自觉地开始自己的工作,而我由于新来乍到,当前任务是熟悉代码,每天就是在上百个类中辗转反侧,久久不能自拔。 上午还是很快就过去的,转眼就十二点。大家成群结队地去吃饭,我跟着带我的师兄一起穿越人海,去附近的一个小居民区吃各种小吃,也是开心得很。 吃完饭大概差一点到一点,漫步回到公司,很多员工都趴在桌子上,或者仰躺在椅子上休息。第一天不好意思休息,发现不休息果然下午效率跟不上。于是后来的日子里我也有了“午休”,哈哈。 大概二点左右工作就开始了。相比较上午,下午显得格外漫长,不过好在我有源码在手,可以满足我对好多效果实现方式的好奇,时间也是一晃而过。这个时候我还真要感慨一下,还好我选择的是继续做我喜欢的Android开发,而不是为了更高的工资去别的公司从事别的岗位。有兴趣,即使上班也不会觉得痛苦,还有比这更好的吗? 正式下班时间是下午6点,一般过了六点,没什么任务的同事就先后下班了。不过对于程序猿来说,只要投入哪还管什么时间。公司对这些可爱的人还是不错的,给提供比较丰盛的晚餐。

    02

    Android开发笔记(八)神奇的shape

    shape意即形状,是Android中描述规则几何图形的定义,ShapeDrawable其实就是Drawable的一个子类。用好shape,可以让APP页面不再呆板;用好shape,可以节省不小的美工工作量。 shape的定义文件是xml,以shape元素为根节点。根节点下定义了六个节点:corners(圆角)、gradien(渐变)、padding(间隔)、size(尺寸)、solid(填充)、stroke(描边),各节点的属性值主要是各种长宽、半径、角度,以及颜色。这些定义很简单,多用几遍就记住了,不过网上的介绍大多不全,所以博主在下面就详细介绍各节点的属性用法。   shape(根节点) android:shape: 字符串类型,图形的形状。为rectangle表示矩形(默认),为oval表示椭圆(此时corners节点将失效),为line表示直线(此时必须设置stroke节点,不然会报错),为ring表示圆环。 下面的属性只有在android:shape="ring"时可用: android:innerRadius: 像素类型,内圆的半径。 android:innerRadiusRatio: 浮点型,以环的宽度比率来表示内圆的半径。例如,如果android:innerRadiusRatio="3",表示内圆半径等于环的宽度(即外圆直径)除以3。如已设置android:innerRadius则不需设置本属性 android:thickness: 像素类型,环的厚度 android:thicknessRatio: 浮点型,以环的宽度比率来表示环的厚度。例如,如果android:thicknessRatio="2",那么环的厚度就等于环的宽度除以2。如已设置android:thickness则不需设置本属性 android:useLevel: 布尔类型,如果当做是LevelListDrawable使用时值为true,否则为false(一般情况必须设置为false,不然ring无法显示)。   corners(圆角) android:bottomLeftRadius: 像素类型,左下圆角的半径 android:bottomRightRadius: 像素类型,右下圆角的半径 android:topLeftRadius: 像素类型,左上圆角的半径 android:topRightRadius: 像素类型,右上圆角的半径 android:radius: 像素类型,圆角半径(若有上面四个圆角半径的定义,则不需要radius定义)   无corners节点表示没有圆角   gradien(渐变) android:angle: 整型,渐变的起始角度。0值时表示时钟的九点位置,其值增大表示往逆时针方向旋转。例如值为90表示时钟六点位置,值为180表示时钟三点位置,值为270表示时钟零点/十二点位置 android:centerX: 浮点型,圆心的X坐标。当android:type="linear"时不可用 android:centerY: 浮点型,圆心的Y坐标。当android:type="linear"时不可用 android:gradientRadius: 整型,渐变的半径。当android:type="radial"时才需要设置该属性 android:centerColor: 颜色类型,渐变的中间颜色 android:startColor: 颜色类型,渐变的起始颜色 android:endColor: 颜色类型,渐变的终止颜色 android:type: 字符串类型,渐变类型。为linear表示线性渐变(默认值),为radial表示放射渐变(起始颜色就是圆心颜色),为sweep表示滚动渐变(即一个线段以某个端点为圆心做360度旋转) android:useLevel: 布尔类型,设置为true无渐变,false有渐变色。如果要使用LevelListDrawable对象,就要设置为true   无gradien节点表示没有渐变效果   padding(间隔) android:bottom: 像素类型,与下边的间隔 android:left: 像素类型,与左边的间隔 android:right: 像素类型,与右边的间隔 android:top: 像素类型,与上边的间隔   无padding节点表示四周不设间隔   size(尺寸) android:height: 像素类型,图形高度 android:width: 像素类型,图形宽度   无size节点表示长宽自适应   solid(填充) android:color: 颜色类型,内部填充的颜色   无solid节点表示无填充颜色

    03

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券