JVM结构

这个是自己在学习JVM结构中的笔记,非原创。

运行时数据区中的程序计数器、虚拟机栈和本地方法栈是线程私有的,堆和方法区是线程共享的。

1 运行时数据区

1.1 程序计数器(Program Counter Register)

程序计数器(Program Counter (PC))是在电脑处理器中的一个寄存器,用来......

2017 - 04 - 25

JVM 垃圾回收算法及垃圾回收器

JVM垃圾回收几乎成了Java程序员面试标配了,我自己在被面和面试别人的过程中都曾反复面试这些内容。今天就把之前了解到的垃圾回收知识整理一下。

前几天被面试的时候,就问到JVM垃圾回收,一般面试这个知识的基本就是P6,P7级别了(对标阿里),虽然在实际工作中用到的时候极少,但能当作过滤候选人的初步门槛。

0. 基础概念

对象头(Header)

对象头主要包含两部分信息:

对象的大小

对象的种类。

在Hotspot中对象头也分为两部分内容:

第一部分是存储对象自身的运行时数......

2017 - 04 - 11

美团点评KTV在线预订的架构演进

这是我在部门分享ppt的再整理。

0. 业务介绍

目前KTV主要包含了KTV在线预订和KTV酒水点单两个业务。

KTV在线预订

KTV在线预订是用户在线浏览商家的包房信息,并选择相关包房的套餐,支付预订;订单支付成功之后,系统将通过多种渠道撮合用户与商户,使其达成预订;预订成功之后,用户到店消费之后,系统将费用结算给商家,同时系统也提供了退款的逆向流程。

2017 - 03 - 26

不要成为螺丝钉

现在公司大了,遇到的人员类型多了,渐渐觉得程序员有大局观是一件很难得的事情。在加上现在一直盛传的华为辞退34以上的员工,引起了开发人员极大关注,也开始了新一轮的焦虑。

怎样的成长才能避免因为年龄大而走入死胡同呢?个人成长有太多方面可以总结,需要做的也很多,但不要成为螺丝钉是避免这种困境最低的标准了。

0. 案例

在实际工作过程中时常会遇到下述场景:

做业务对接或问题排查时,找到指定团队的对接开发Team,一般情况下会有一个指定的开发人员做对接,比如A,在解决问题的过程中涉及到同一团队另一......

2017 - 02 - 20

KTV预订流程业务抽象

KTV在线预订在发展过程中主要面临以下问题:

商家给到的包房库存不能代表线下实际包房情况

一些商家会担忧KTV在线预订会变成电影预订一样,控制他们业务的生命线,因此会给很少的包房库存。

商家除了KTV在线预订之外,还要接待其他预订渠道的客人

正常情况下,商家还要接待线下电话预订和团购购买而来的客人,因此针对在线预订包房会具有不确定性。

不同时间商家的接待意愿不同

比如在节假日的时候,其他渠道引流的客人已经很多,就很难提供给线上客人使用,但在淡季的时候,商家更愿意多接待KTV在线预订的客人。

......

2017 - 02 - 20

为何写技术博客

之前在知乎上看到怎样才算有资格写技术博客分享?问题,不禁让我想到自己为什么而写。

在各种技术社区几乎都能看到很多人在搭建博客系统,从以前很流行的wordpress到现在种类繁多的静态博客,都会有技术人员热衷于搭建,也有很多人将这些博客系统扩展新功能;包括我自己以前也很喜欢尝试搭建博客,但每次花很大力气做了搭建了博客,之后做的最多的事情是写篇hello world,便不了了之。

不禁问自己,我为什么要写博客?

自我总结记录

写博客首要目的不是给别人看的,而是给自己看的,将自己的知识总结并体......

2017 - 02 - 16

我的2016年开发总结

年初的时候做了计划 2016新年计划,现在回头来看除了英语还是老样子之外,其他倒是完成的不错,颇有收获的一年。

这一年更多的精力转向技术管理,开发工作也更多的放在系统架构和业务架构上。

1 好的

及时做重构,不等到以后

今年实施了两次大的重构,很多次小的重构,其中最大的重构就是预订系统的重构了,这个在业务系统重构总结中有详细的阐述。刚开始做重构总是心惊胆颤,怕做不好,怕做了上线会出现很多问题;但想清楚重构能解决的问题,也就不再畏惧了。没经历一次重构,系统就简单一次,到目前核心系统已经精简......

2016 - 12 - 31

分布式锁

0 背景

最近在业务中出现用户重复提交退款,因为重复提交时间差极端,在加上中间网络延迟,导致请求到达服务端时,出现两个请求的时间差在毫秒级,从而导致重复数据;后来在商户端也出现类似的情况,因此开始在关键业务中使用分布式锁来解决这类问题。

分布式锁是控制分布式系统之前访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。

实现分布式锁,主要有以下三个方面为重点......

2016 - 12 - 28

线上故障处理

前些天看到caoz一篇文章出了bug怎么办提到bug修复问题,之后airbnb的朱赟发了当工程师收到了 Bug Report,都谈到了bug修复的问题。互联网行业面对的用户量较大,程序中可能有的bug最后都会在线上出现;如果bug的影响范围变大,则会演变成线上故障,造成较大范围的业务影响。

前段时间在团队内整理了一份线上事故处理的流程,修改后在这里分享。

1. 故障信息获取源

1.1 系统&业务报警

这个是获取故障最常用的手段。

一般的系统正常运营过程中都会有一定的指标监控。如:......

2016 - 12 - 09

互联网公司校招的一些感受

第一次参加校招,虽然没有面特别多的学生,但积累了一些经验,与大家分享。

0. 背景

互联网公司

主要负责初面

共两轮初面,一轮二面,一轮hr面试

面试后端开发

1. 最关注的候选人素质

1.1 学习能力

这也是校招和社招最大的不同点了。绝大部分应届生(除了一些特别优秀的)在面试官眼里都是没有经验,但是期望之后能够快速成长。

其实这些项目经历更多是提供一个面试的话题,会就着项目来问技术问题,看看学习的如何;如果没有实习经历,也建议面试同学能够有拿出手的课程作业,比如上操作系统课时写......

2016 - 10 - 20