![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 93
萧萧九宸
西方发达国家的技术优势可以使母语为英语的人员获得技术领域的先天性竞争优势,希望国人可以注重中文技术文档的分享与完善,有朝一日获不再让英文成为技术领域必过的一道坎。
展开
-
AQS与CLH相关论文学习系列(四)- AQS的设计思路
本文是AQS与CLH相关论文学习系列第四篇。 系列其他文章链接如下AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙AQS与CLH相关论文学习系列(二)- MCS 锁AQS与CLH相关论文学习系列(三)- CLH 锁参考文章The java.util.concurrent Synchronizer Framework - 出自 DougLea 之手的 AQS 的设计论文...原创 2020-09-09 15:43:44 · 915 阅读 · 2 评论 -
AQS与CLH相关论文学习系列(三)- CLH 锁
本文是AQS与CLH相关论文学习系列第三篇。 本文在如上两篇文章的基础上, 进一步学习 CLH 锁设计者 Craig, Landin and Hagersten 的论文。原创 2020-09-07 15:35:47 · 966 阅读 · 4 评论 -
AQS与CLH相关论文学习系列(二)- MCS 锁
本文是AQS与CLH相关论文学习系列第二篇, 在第一篇 AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙的基础上进一步学习首个提出的基于链表结构排队式自旋锁: MCS 锁参考文章Algorithms for Scalable Synchronization onSharedMemory Multiprocessor 在 Anderson 论文之后, 首个基于链表的排队式自旋锁Ticket 锁在 Anderson 90 年发布的论文发布之后, Mellor-Crummey 和 Sc原创 2020-09-07 15:30:10 · 672 阅读 · 4 评论 -
AQS与CLH相关论文学习系列(一)- 排队式自旋锁思想启蒙
参考文章Building FIFO and priority-queueing spin locks from atomic swapThe java.util.concurrent Synchronizer Framework前言AbstractQueueSynchronizer 是 jdk1.5 及之后版本中 java.util.concurrent 包里很多同步器的实现基础, 例如locks, barriers 很多类都是基于 AbstractQueueSynchronizer 实现的, 后面原创 2020-09-02 22:24:05 · 1166 阅读 · 3 评论 -
Spring Cloud OpenFeign 工作原理解析
背景OpenFeign 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API 提供了非常简洁高效的 RPC 调用方式。 如果说 Spring Cloud 其他成员解决的是系统级别的可用性,扩展性问题, 那么 OpenFeign 解决的则是与开发人员利益最为紧密的开发效率问题。使用方式在介绍...原创 2020-05-07 18:05:45 · 21093 阅读 · 7 评论 -
为什么 slf4j 被推荐使用
参考文章:Simplifying the distinction between SL4J and commons logging日志那点事儿——slf4j源码剖析原创 2020-04-30 17:15:44 · 365 阅读 · 0 评论 -
那些你应该掌握的 Spring 原理
文章目录参考文章前言Spring 的基本思想:控制反转/依赖注入(IoC/DI)应用 控制翻转 / 依赖注入 (IoC/DI)之前应用 控制翻转 / 依赖注入 (IoC/DI)之后松耦合的好处IoC 就没有副作用吗Spring 的核心: Bean 容器获取 Bean 的描述信息:BeanDefinitionXml 形式的 Bean 描述Annotation 形式的 Bean 描述两类 IoC 容器...原创 2019-12-12 17:15:57 · 1896 阅读 · 3 评论 -
Java 原生基于接口的动态代理
文章目录参考文章前言JAVA 原生动态代理例子一:一个只会打印被调用方法的代理步骤一: 创建 Invocation Handler步骤二: 创建 Proxy Instance例子二:可以代理多个接口的 InvocationHandler步骤一: 创建 TimingInvocationHandler步骤二: 创建代理实例并调用参考文章java dynamic proxies前言代理可以看做...原创 2019-06-18 09:47:01 · 2518 阅读 · 0 评论 -
Java 注解如何工作
本文转载自 注解是什么,为什么要使用注解自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时...转载 2019-06-17 11:10:26 · 362 阅读 · 1 评论 -
Java中的偏向锁,轻量级锁, 重量级锁解析
参考文章聊聊并发(二)Java SE1.6中的SynchronizedLock Lock Lock: Enter!5 Things You Didn’t Know About Synchronization in Java and ScalaSynchronization and Object LockingJava 中的锁在 Java 中主要2种加锁机制:synchr...原创 2018-08-13 18:39:49 · 66088 阅读 · 94 评论 -
wait(),notify() 与 await(), signal(), signalAll() 的区别
参考文章Oracle 官方文档 Condition Interface How is await() different from wait() ?wait() 和 notify() 的使用方式wait() 与 notify() 需要搭配 synchronized 关键字使用, 示例如下// 线程 A 的代码synchronized(obj_A){ while(!...原创 2018-08-07 17:43:21 · 18187 阅读 · 1 评论 -
清晰解题: Java 是编译型语言还是解释型语言
Java 的跨平台运行能力的本质原因是, Java 会首先被编译为字节码(bytecode), 然后可以被不同平台的 JVM 解释成对应的机器码,得以运行。解释和 JIT 编译的区别: 解释: JVM 运行时加载 .class 文件, 逐条读取其中的 bytecode , 将其转换为特定平台的 CPU 指令予以执行。 同一条指令被多次运行, 也会被多次解释, 指令解释的过程会耗费额外的时间...原创 2018-05-05 21:33:13 · 1178 阅读 · 2 评论 -
阿里巴巴面试题: 为什么wait()和notify()需要搭配synchonized关键字使用
假如wait()和notify()不搭配synchonized的关键字, 当一个**读线程(消费者)**调用wait()后, 该线程被放置到等待队列前, 另外一个**写线程(生产者)**执行了notify()的方法, 调度器会去查看等待队列中是否有线程等待被唤醒, 结果由于读线程还未被放入等待队列, 导致了读线程错过了这个notify方法, 有可能陷入无限的等待中原创 2016-08-24 06:32:21 · 15822 阅读 · 37 评论 -
java中synchronized关键字与ReentrantLock对比
参考文章 - Locks in Java - ReentrantLock Example in Java, Difference between synchronized vs ReentrantLocksynchronized 关键字的可重入性 - 在 java 中被 synchronized 关键字所修饰的代码块是支持重入的。 也就是说, 当一个java线程进入了某个对象的 sync...原创 2018-08-06 15:52:13 · 1795 阅读 · 1 评论 -
存储过程入门
本文参考:Oracle Database concepts guide(11g2) By Thomas KyteStored Procedure Wiki闲言:开始实习的时候才发现,虽然大学上过了数据库的课程,也算是系统的学习了数据库知识,但是偏偏就对常常听到的名词存储过程不是那么熟悉。 百度上搜索“存储过程”的教程, 虽然官方文档和书籍是最好的学习材料, 但是如果能有入门博文快速地带领新手快原创 2016-12-02 15:19:31 · 36136 阅读 · 5 评论