​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨. 基本概念和用法 线程本地变量是说,每个线程都有同一个变量的独有拷贝,这个概念听上去比较难以理解,我们先…
本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨. 基本概念和用法 线程本地变量是说,每个线程都有同一个变量的独有拷贝,这个概念听上去比较难以理解,我们先直接来看类TheadLocal的用法. ThreadLocal是一个泛型类,接受一个类型参数T,它只有一个空的构造方法,有两个主要的public方法: public T get() public void set(T value) set就是设置…
​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 上节我们提到了多线程共享内存的两个问题,一个是竞态条件,另一个是内存可见性,我们提到,解决这两个问题的一个方案是使用synchronized关键字,本节就来讨论这个关键字. 用法 synchronized可以用于修饰类的实例方法.静态方法和代码块,我们分…
本节,我们来探讨一个特殊的概念,线程本地变量,在Java中的实现是类ThreadLocal,它是什么?有什么用?实现原理是什么?让我们接下来逐步探讨. 基本概念和用法 线程本地变量是说,每个线程都有同一个变量的独有拷贝,这个概念听上去比较难以理解,我们先直接来看类TheadLocal的用法. ThreadLocal是一个泛型类,接受一个类型参数T,它只有一个空的构造方法,有两个主要的public方法: public T get() public void set(T value) set就是设置…
<计算机程序的思维逻辑>系列文章已整理成书<Java编程的逻辑>,由机械工业出版社出版,2018年1月上市,各大网店有售,敬请关注! 京东自营链接:https://item.jd.com/12299018.html 计算机程序的思维逻辑 (1) - 数据和变量 计算机程序的思维逻辑 (2) - 赋值 计算机程序的思维逻辑 (3) - 基本运算 计算机程序的思维逻辑 (4) - 整数的二进制表示与位运算 计算机程序的思维逻辑 (5) - 小数计算为什么会出错? 计算机程序的思维逻辑…
​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 从65节到82节,我们用了18篇文章讨论并发,本节进行简要总结. 多线程开发有两个核心问题,一个是竞争,另一个是协作.竞争会出现线程安全问题,所以,本节首先总结线程安全的机制,然后是协作的机制.管理竞争和协作是复杂的,所以Java提供了更高层次的服务,比…
​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 上节介绍完了并发,从本节开始,我们来探讨Java中的一些动态特性,包括反射.类加载器.注解和动态代理等.利用这些特性,可以以优雅的方式实现一些灵活和通用的功能,经常用于各种框架.库和系统程序中,比如: 在63节介绍的实用序列化库Jackson,利用反射和…
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 乱码 上节说到乱码出现的主要原因,即在进行编码转换的时候,如果将原来的编码识别错了,并进行了转换,就会发生乱码,而且这时候无论怎么切换查看编码的方式,都是不行的. 我们来看一个这种错误转换后的乱码,还是用上节的例子,二进制是(16进制表示):C3 80 C…
2018年1月下旬,<Java编程的逻辑>终于出版上市了! 这是老马过去两年死磕到底.无数心血的结晶啊! 感谢"博客园"的广大读者们,你们对老马文章的极高评价.溢美之词.自发分享,是我写作的信心和动力! 感谢IT领域的知名出版社--机械工业出版社华章分社--的编辑和领导们,在已有多部Java经典的情况下,依然高度认可本书的独有价值,大力推出我这本大部头(675页).相信本书也一定可以带给你独特的收获! 这本书和别的书有什么不同? 简单来说,其他书大多教你怎么用,而这本书帮助…
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 上节介绍了EnumMap,本节介绍同样针对枚举类型的Set接口的实现类EnumSet.与EnumMap类似,之所以会有一个专门的针对枚举类型的实现类,主要是因为它可以非常高效的实现Set接口. 之前介绍的Set接口的实现类HashSet/TreeSet,它…