Java - 由面向对象看多线程

2019-08-28
阅读 1 分钟
1.1k
synchronized的语义: 多条线程同时执行到此对象实例的方法时, 仅有抢锁成功的线程能够进入区块执行; 其余抢锁失败的线程, 则进入到等锁队列

Java随想 - 计算机的工作方式

2019-04-23
阅读 1 分钟
852
背景 如图所示, 冯诺依曼计算机体系结构; 由于最近做业务需求做到发瘟, 借此发散一下思维; 最近业务需求的痛点如下: 基础代码骨架已固定, 业务流程固定, 然而, 业务中产品的配置需要非常灵活, 并且有可能需要跨过某段业务流程, 直接执行下一段; 直接方案: if/else当然是能够决定条件分支的, 但架不住产品数量巨大, 维护i...

Java并发 - volatile/Holder与双重空校验

2019-03-18
阅读 1 分钟
1.4k
以下代码摘选自Dubbo框架的ExtensionLoader, 非常有趣: {代码...} 可以看到, 精华就是Holder-volatile和双重null校验的运用; 短短几句代码, 蕴含了: volatile关键字的happens-before关系 volatile关键字的可见性问题 Java多线程的执行路径问题, 及指令重排序的问题; (有兴趣的可自行查阅相关资料, 毕竟上述任意一个都是...

Java泛型 - 如何破解"Enum<E extends Enum<E>>"?

2019-03-05
阅读 3 分钟
11.1k
Enum&lt;E&gt;仅允许它的子类Color extends Enum&lt;Color&gt;去具现化它,并且Color继承了Enum&lt;Color&gt;中一些有用的方法,而这些方法是接收或返回Color类型的参数的。

Java泛型 - 能否取出Map<String, Integer>的泛型参数?

2019-03-04
阅读 1 分钟
5.4k
这两天有一个小需求: 在运行时取出Map对象实例的泛型参数。 Google过后,第一条就是StackOverflow的相关问题:如何取出Map的泛型参数 在这做一下记录,原文问题及回答都非常有趣清晰。 问题: {代码...} 是否有可能通过反射来获取到Map的泛型参数? 回答1: 被采纳的答案 对于任意的Map&lt;Key, Value&gt;,要在运行时...

Spring - DispatcherServlet是如何工作的?

2019-03-02
阅读 8 分钟
3.2k
本文中我们将会看到,SpringMVC里包含的DispatcherServlet是怎样对Web程序开发产生巨大的影响的。 SpringMVC的心脏 - DispatcherSerlvet 我们作为Web应用程序的开发者,最想从以下这些枯燥乏味的工作中抽身出来,只关注真正的业务逻辑实现。 把一个HTTP request交给它真正的处理方法 解析HTTP request的header和body中的...

Java泛型进阶 - 如何取出泛型类型参数

2019-02-27
阅读 9 分钟
11.9k
在JDK5引入了泛型特性之后,她迅速地成为Java编程中不可或缺的元素。然而,就跟泛型乍一看似乎非常容易一样,许多开发者也非常容易就迷失在这项特性里。多数Java开发者都会注意到Java编译器的类型擦除实现方式,Type Erasure会导致关于某个Class的所有泛型信息都会在源代码编译时消失掉。在一个Java应用中,可以认为所有...

Spring - Java-based configuration: Using @Configuration

2019-02-23
阅读 4 分钟
1.5k
这是一个类级注解。如下所示,被它注解的类可能包含多个被@Bean注解的方法。Spring容器会调用这些方法,获得你初始化后的对象实例,并把他们注册为容器内的beans。

Spring - Configuration Metadata

2019-02-23
阅读 1 分钟
2k
metadata:元数据 Spring configuration metadata则是告知Spring容器: 如何初始化,配置,包裹,和组合应用内特定的对象。 Spring从2002年发布第一版到至今最新版,提供了三种方式去进行应用配置: XML-based Configuration: 所有的配置信息存放于多个XML文件中,这也是最冗长繁琐的配置方式。超大型项目们,需要配置超...