Morning Cat

白茶清欢无别事 我在等风也等你

多线程控制工具类 CountDownLatch 的故事

根据 Jdk 提供的Java多线程控制类 CountDownLatch 的用法 编写的一个小场景,小故事

多线程控制工具类 CountDownLatch 的故事 package jdk.java.util.concurrent; import org.junit.Test; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Random; import ja...

Java并发编程实战 读书笔记(1)

《Java并发编程实战》童云兰 译

一、基础知识 2 线程安全性 要编写线程安全的代码,其核心是在于对状态访问操作进行管理,特别是对共享(Shared)的和可变(Mutable)的状态的访问。 如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误。有三种方式可以修复这个问题: 不在线程之间共享该状态变量; 将状态变量修改为不可变的变量; 在访问状态变量时使用同步。 当多个线...

ConcurrentHashMap为何不支持null键和null值

java集合类 ConcurrentHashMap 的一些认识

背景 最近在梳理总结《集合 - 常用Map之间区别》, 其中有一点就是 HashMap 是支持null键和null值,而 ConcurrentHashMap 是不支持的; 后来查看了一下jdk源码,证明了确实是这样的。 HashMap.java 部分源码 static final int hash(Object key) { int h; ret...

java探索之native方法源码实现

原来一直好奇jdk源码中的native方法为什么只有声明,而没有实现内容,希望这篇文章给你一点启示。

背景 不晓得小伙伴们在学习java时有没有遇到过使用native关键字修饰的方法,我记得有一次好奇java类的基类Object.java里到底有些什么,于是就打开了jdk的源码看了一下; 不要问我jdk的源码怎么看,去哪里看,丑拒; 以下是Object.java的源码,可以看出基本都是native修饰的方法且并没有方法体; package java.lang; public class ...

信号量Semaphore的故事

根据 Jdk 提供的Java多线程控制类 Semaphore 的用法 编写的一个小场景,小故事

信号量Semaphore 的故事 import org.junit.Test; import java.util.concurrent.Semaphore; /** * @describe: 信号量 Semaphore 的使用 * @author: morningcat.zhang * @date: 2019/2/14 10:05 PM */ public class Semaph...

关于Dubbo的记忆

记录dubbo与我的一些故事

2016年3月 那是我正式参加工作的前几个月,

LearningDocs

文档与规范

LearningDocs 学习资料与文档 JCP(Java Community Process ,Java社区进程 ) https://www.jcp.org/en/home/index JSR(Java Specification Requests,Java规范请求) J2EE patterns http://www.corej2eepatterns.com/ JSR Java 规...

Simple SpringMVC Demo

使用Spring mvc 简单的一个较为简单的http服务器demo

曾几何时,认为手动搭建一个SpringMVC工程很困难,其实去除那些繁枝末节,仅保留最核心的东西,看看还剩下什么? maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www...

LearningDocs

文档与规范

LearningDocs 学习资料与文档 JCP(Java Community Process ,Java社区进程 ) https://www.jcp.org/en/home/index JSR(Java Specification Requests,Java规范请求) J2EE patterns http://www.corej2eepatterns.com/ JSR Java 规...

Java8 之 Stream API

关于 Java8 新特性 Stream API 的学习笔记

总览 1.介绍 Stream创建 -> 中间操作 -> 终止操作 流一旦使用终止操作,就不能再进行中间操作 Java8 特性 与 函数式接口 配合使用 参考Java8 - Lambda表达式 与 Optional 配合使用 惰性求值 多个中间操作可以连接...