摘要:
面试中经常会问到,创建一个线程池需要哪些参数啊,线程池的工作原理啊,却很少会问到线程池如何安全关闭的。 也正是因为大家不是很关注这块,即便是工作三四年的人,也会有因为线程池关闭不合理,导致应用无法正常stop的情况,还有出现一些报错的问题。 本篇就以ThreadPoolExecutor为例,来介绍下 阅读全文
摘要:
实现一个jstack 在聊Jstack得工作原理前呢,不如让我们先写一个简单的jstack玩玩。不用怕,很简单的,就几行代码的事,看: public class MyJstack { public static void main(String[] args)throws Exception { V 阅读全文
摘要:
大家都知道,类被加载到JVM是放在所谓的方法区: JDK7之前是持久代(PermGen),JDK7开始是元空间(metaspace)。所以不免也会简单地认为,类的成员变量(变量本身,而不是变量指向的对象)也是分配在方法区里。 本篇呢,就通过HSDB这个工具,来分析下类的静态变量到底在哪里分配,同时熟 阅读全文
摘要:
作为一个开发人员,我们的程序无时不刻不在跟内存打交道,那你真的理解程序所使用的内存吗? 背景 前几天,我的知识星球(有兴趣的欢迎加入:https://t.zsxq.com/EUn6IIE)的一个圈友咨询我一个问题:他已经将java启动参数设置为-Xms1g -Xmx1g,启动后,他动过top命令观察 阅读全文
摘要:
magic[4字节] 魔数,用来判断是否可以被虚拟机使用。固定值为0xCAFEBABE(咖啡宝贝)minor_version[2字节] 次版本号major_version[2字节] 主版本号,低版本的jdk无法执行高版本的class文件。constant_pool_count[2字节] 常量池里的项 阅读全文
摘要:
我跟大多数初入职场的技术小白起点差不多,在开发的这条路上,没有天生的聪明天资,也没有一个耀眼的学历。在北京这样一个,随便一个同事,不是清华的本硕,就是北邮北航的硕士下,自己也常常因此感到惭愧。 自己从事开发多年,经历过不少的公司。先是在普通的小互联网公司,后又在阿里这样的大公司工作,最近又到了美团这 阅读全文
摘要:
虽然来到18年已经快一个月了,还不时反思自己17年收入结构。希望的是,18年能少走弯路,优化资产结构,不轻易错过机会。 虽没有改变世界那么远大的理想,但还是有意淫财务自由的梦想。借用马巴巴的话: 梦想总是有的,万一实现了呢 17年,工作之外,确实还有不少赚钱的机会,我知道的就有三个: ①比特币 ②阿 阅读全文
摘要:
我,一个普普通通的人。普通本科毕业,来到北京成为了一个普通的程序员。 2013年,我本科毕业,然后就踏上了北漂的征程。 来之前想的很清楚。北京技术发达先进。我可以在这里工作三四年,学习成长自己的技术,然后回二三线城市,找家公司做个小主管啥的,应该是可以的。 但是呢,现在马上都要五年了,考虑到老家的就 阅读全文
摘要:
锁是整个Java并发包的实现基础,通过学习本系列文章,将对你理解Java并发包的本质有很大的帮助。 前边几篇中,我已经把实现锁用到的技术,进行了一一讲述。这其中有原子性、内存模型、LockSupport还有CAS,掌握了这些技术,即使没有本篇,你也完全有能力自己写一把锁出来。但为了本系列的完整性,我 阅读全文