标签:final

Java

这篇 ReentrantLock 看不懂,加我我给你发红包

21

小丁 发布于 2020-01-20

点击蓝色“ zhisheng ”关注我哟 加个“ 星标 ”,一起快乐成长 回答一个问题 在开始本篇文章的内容讲述前,先来回答我一个问题,为什么 JDK 提供一个 synchronized 关键字之后还要提供一个 Lock 锁,这不是多此一举吗?难道 JDK 设计人员都是沙雕吗? ...

阅读(6)评论(0)赞 (0)

Java

什么是Java中的魔法值?

1

Harries 发布于 2020-01-20

魔法数值、魔法数字、魔法值,这是一个东西,不同的叫法。 所谓魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。 看一段代码 /** * 获取当前周所有的日期 * * @return */ public static List<Strin...

阅读(2)评论(0)赞 (0)

Java

Spring(二)核心容器 – 简介 、BeanFactory、ApplicationContext

1

Harries 发布于 2020-01-20

前言 在上篇文章中,和大家一起讨论了 Spring 的整体架构,其大致分为五个模块:核心容器、AOP、Web、Data 数据访问、Test模块。其中核心容器是 Spring 的核心部分,其它模块也都依赖于该容器。这里和就大家一起深入讨论 Spring 的容器,它的作用是什么、怎么...

阅读(5)评论(0)赞 (0)

Java

ASM 匿名内部类 & Lambda 表达式的处理

尖兵 发布于 2020-01-20

简单总结使用 ASM 时遇到匿名内部类时,如何对匿名内部类(一般来说接口)的方法实现插桩。 痛点 通过之前的 当 Java 字节码遇到 ASM 一文,对如何使用 ASM 已经有了初步的了解。这里再来看一种比较特殊的情况,当遇到匿名内部类时,如何确定 hack 结点。 接口作为匿名...

阅读(5)评论(0)赞 (0)

Java

Gradle Transform + ASM 探索

4

hellas 发布于 2020-01-20

使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 通过注解对任意类当中所有的方法 实现计算方法耗时 的插桩 通过配置实现对任意类(主要是针对第三方库)当中指定方法的...

阅读(4)评论(0)赞 (0)

Java

了解NonHeap吗?

3

Harries 发布于 2020-01-19

在我们日常的开发过程中,遇到问题除了普通的异常(空指针啊,数组越界啊 and so on),我们遇到的比较大的问题无非就是 OOM ,频繁 FullGC 或者是多线程方面的问题(这块我说不上话:new_moon_with_face:),我们大都数产生的问题也都是与 JVM 相关的...

阅读(8)评论(0)赞 (0)

Java

java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executo…

9

尖兵 发布于 2020-01-19

上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁、非公平锁的。内部的双向链表到底是什么意思,prev和next到底是什么,为什么要引入heap和tail来值向null的Node节点。高并发时候是如何保证st...

阅读(10)评论(0)赞 (0)

Java

Gradle Transform + ASM 探索

4

尖兵 发布于 2020-01-19

使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 通过注解对任意类当中所有的方法 实现计算方法耗时 的插桩 通过配置实现对任意类(主要是针对第三方库)当中指定方法的...

阅读(10)评论(0)赞 (0)

Spring

搞定SpringBoot多数据源(2):动态数据源

2

刘莉莉 发布于 2020-01-19

对于多个数据库的处理,上一篇文章《 搞定SpringBoot多数据源(1):多套源策略 》已有提及,有多套数据源、动态数据源、参数化变更数据源等方式,本文是第二篇:“动态数据源”。动态数据源可以解决多套数据源的处理不够灵活、占用资源多等问题。用户可以根据实际的业务需要,统一操作逻...

阅读(9)评论(0)赞 (0)

Spring

享读SpringMVC源码2-@RequestMapping注解源码

1

hellas 发布于 2020-01-19

一个人可以走的很快,但一群人可以走的更远 ,新的一年我想遇到优秀的你 1. 回顾 上节,说了Handler的4种定义方式,以及Handler与HandlerMapping的关系。 @RequestMapping方式是我们最常用的定义handler的方式。 RequestMappi...

阅读(10)评论(0)赞 (0)

Java

深入理解 Java 中的 final 关键字

yanxinchi 发布于 2020-01-19

final 是Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么? final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地...

阅读(12)评论(0)赞 (0)

Spring

SpringSecurity 初始化流程源码

8

zhuangli 发布于 2020-01-19

SpringSecurity 初始化流程源码 本篇主要讲解 SpringSecurity初始化流程的源码部分,包括核心的 springSecurityFilterChain 是如何创建的,以及在介绍哪里可以扩展个性化的配置,SpringSecurity源码其实是蛮难得 各种Bui...

阅读(17)评论(0)赞 (0)

Java

RxJava(十二):RxBinding

1

dulong 发布于 2020-01-19

博客主页 1. RxBinding 简介 1.1 RxBinding 介绍 RxBinding 是 Jake Wharton 大神写的框架,它的 API 能够把 Android 平台和兼容包内的 UI 控件变为 Observable 对象,这样就可以把 UI 控件的事件当作 Rx...

阅读(15)评论(0)赞 (0)

Java

解析Serializable原理

zhuangli 发布于 2020-01-19

通常我们使用Java的序列化与反序列化时,只需要将类实现 Serializable 接口即可,剩下的事情就交给了jdk。今天我们就来探究一下,Java序列化是怎么实现的,然后探讨一下几个常见的集合类,他们是如何处理序列化带来的问题的。 分析过程 几个待思考的问题 为什么序列化一个...

阅读(10)评论(0)赞 (0)

Java

从源码理解Java虚引用

7

尖兵 发布于 2020-01-19

在jdk1.2之后,java对引用的概念进行了扩充。将引用分为了强引用,软引用,弱引用,和虚引用四种。 强引用:即我们平常说的引用,指在程序代码中普遍存在的引用赋值。在垃圾回收中,只要强引用还存在,那么当前对象就永远不会被回收。 软引用:比强引用弱一级的引用关系。在系统将要发生内...

阅读(10)评论(0)赞 (0)

Java

基于Netty的通信服务端编写

likai 发布于 2020-01-19

我这次是按照NIO模型编写的一个服务端 public class HelloServer { public static void main(String[] args) throws Exception { //定义一对线程组 //主线程组,用于接收客户端的连接,但是不做任何处...

阅读(10)评论(0)赞 (0)

Java

CAS机制及AtomicInteger源码分析

hellas 发布于 2020-01-19

CAS即 Compare And Swap 对比交换,区别于悲观锁,借助CAS可以实现区别于synchronized独占锁的一种乐观锁,被广泛应用在各大编程语言之中。Java JUC底层大量使用了CAS,可以说 java.util.concurrent 完全是建立在CAS之上的。...

阅读(11)评论(0)赞 (0)