
JAVA
文章平均质量分 56
Holy_Zz
这个作者很懒,什么都没留下…
展开
-
Netty 实战:如何编写一个麻小俱全的 web 容器
学习 Netty 也有一段时间了,为了更好的掌握 Netty,我手动造了轮子,一个基于 Netty 的 web 容器:redant,中文叫红火蚁。创建这个项目的目的主要是学习使用 Netty,俗话说不要轻易的造轮子,但是通过造轮子我们可以学到很多优秀开源框架的设计思路,编写优美的代码,更好的提升自己。PS:项目地址:https://github.com/all4you/redant快速启动Redant 是一个基于 Netty 的 Web 容器,类似 Tomcat 和 WebLogic...原创 2019-10-24 11:06:01 · 498 阅读 · 0 评论 -
Java8-Stream-No.01
package com.winterbe.java8.samples.stream;import java.util.ArrayList;import java.util.List;import java.util.Optional;public class Streams1 { public static void main(String[] args) { List<St原创 2017-12-12 09:54:11 · 184 阅读 · 0 评论 -
Java8-Lambda-No.01
import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Optional;public class Lambda1 { public static void main(String[] args) {原创 2017-12-14 09:25:25 · 342 阅读 · 0 评论 -
Java8-Lambda-No.02
public class Lambda2 { @FunctionalInterface public static interface Converter<F, T> { T convert(F from); } static class Something { String startsWith(String s) {原创 2017-12-14 09:26:00 · 300 阅读 · 0 评论 -
Java8-Lambda-No.03
import java.util.Comparator;import java.util.Objects;import java.util.UUID;import java.util.concurrent.Callable;import java.util.function.Consumer;import java.util.function.Function;import java.u原创 2017-12-14 09:26:27 · 303 阅读 · 0 评论 -
Java8-Stream-No.13
package com.winterbe.java8.samples.stream;import java.security.SecureRandom;import java.util.Arrays;import java.util.stream.IntStream;public class Streams13 { public static void main(String[] args原创 2017-12-13 08:58:00 · 219 阅读 · 0 评论 -
Java8-Lambda-No.04
public class Lambda4 { static int outerStaticNum; int outerNum; void testScopes() { int num = 1; Lambda2.Converter<Integer, String> stringConverter = (from) -> S原创 2017-12-14 09:26:52 · 310 阅读 · 0 评论 -
Java8-Lambda-No.05
import java.util.HashMap;import java.util.function.BiConsumer;public class Lambda5 { //Pre-Defined Functional Interfaces public static void main(String... args) { //BiConsumer Example原创 2017-12-14 09:27:23 · 288 阅读 · 0 评论 -
Java8-Annotations
import java.lang.annotation.ElementType;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;p原创 2017-12-14 09:28:18 · 353 阅读 · 0 评论 -
Java8-Concurrency
import java.util.UUID;import java.util.concurrent.ConcurrentHashMap;public class Concurrency1 { public static void main(String[] args) { ConcurrentHashMap<Integer, UUID> concurrentHashMap =原创 2017-12-14 09:28:59 · 377 阅读 · 0 评论 -
Java8-Stream-No.03
package com.winterbe.java8.samples.stream;import java.util.ArrayList;import java.util.List;import java.util.UUID;import java.util.concurrent.TimeUnit;public class Streams3 { public static final i原创 2017-12-12 09:56:35 · 156 阅读 · 0 评论 -
Java8-Stream-No.02
package com.winterbe.java8.samples.stream;import java.util.ArrayList;import java.util.List;public class Streams2 { public static void main(String[] args) { List<String> stringCollection = ne原创 2017-12-12 09:56:04 · 164 阅读 · 0 评论 -
Java8-Stream-No.12
package com.winterbe.java8.samples.stream;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.UUID;import java.util.concurrent.ForkJoinPool;import java.util.c原创 2017-12-13 08:57:43 · 223 阅读 · 0 评论 -
Java8-Stream-No.11
package com.winterbe.java8.samples.stream;import java.util.Arrays;import java.util.List;public class Streams11 { static class Person { String name; int age; Person(String nam原创 2017-12-13 08:57:24 · 201 阅读 · 0 评论 -
Java8-Stream-No.10
package com.winterbe.java8.samples.stream;import java.util.Arrays;import java.util.IntSummaryStatistics;import java.util.List;import java.util.Map;import java.util.StringJoiner;import java.util.st原创 2017-12-12 09:59:59 · 230 阅读 · 0 评论 -
Java8-Stream-No.09
package com.winterbe.java8.samples.stream;import java.util.Arrays;public class Streams9 { public static void main(String[] args) { Arrays.asList("a1", "a2", "b1", "c2", "c1") .st原创 2017-12-12 09:59:23 · 201 阅读 · 0 评论 -
Java8-Stream-No.08
package com.winterbe.java8.samples.stream;import java.util.Arrays;import java.util.stream.IntStream;import java.util.stream.Stream;public class Streams8 { public static void main(String[] args) {原创 2017-12-12 09:58:55 · 190 阅读 · 0 评论 -
Java8-Stream-No.07
package com.winterbe.java8.samples.stream;import java.util.ArrayList;import java.util.List;import java.util.stream.IntStream;public class Streams7 { static class Foo { String name;原创 2017-12-12 09:58:31 · 156 阅读 · 0 评论 -
Java8-Stream-No.06
package com.winterbe.java8.samples.stream;import java.io.IOException;import java.math.BigDecimal;import java.util.Arrays;import java.util.stream.IntStream;import java.util.stream.Stream;public clas原创 2017-12-12 09:57:59 · 192 阅读 · 0 评论 -
Java8-Stream-No.05
package com.winterbe.java8.samples.stream;import java.util.Arrays;import java.util.List;import java.util.function.Supplier;import java.util.stream.Stream;public class Streams5 { public static voi原创 2017-12-12 09:57:32 · 178 阅读 · 0 评论 -
Java8-Stream-No.04
package com.winterbe.java8.samples.stream;import java.util.OptionalInt;import java.util.stream.IntStream;public class Streams4 { public static void main(String[] args) { for (int i = 0; i <原创 2017-12-12 09:57:05 · 146 阅读 · 0 评论 -
Java8-Optional-No.01
import java.util.Optional;public class Optional1 { public static void main(String[] args) { Optional<String> optional = Optional.of("bam"); optional.isPresent(); // true原创 2017-12-14 09:31:09 · 272 阅读 · 0 评论 -
Java8-Synchronized-No.02
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.stream.IntStream;public class Synchronized2 { private static final int NUM_INCREMENTS = 10000;原创 2017-12-16 10:58:24 · 300 阅读 · 0 评论 -
【JUC系列第五篇】-ReentrantLock锁原理解读
作者 : 毕来生微信: 878799579锁状态转换Lock分类 Jdk1.5以后帮助我们提供了线程同步机制,通过显示定义同步锁来实现对象之间的同步。还是Doug Lea这个家伙写的。相信读过源码的人在很多地方都可以看到这个家伙。 Lock可以显示的进行加锁,解锁。但是每次只能有一个线程对Lock对象加锁 Lock实现结构如下图所示: 按照使用的常用度,分别标注了(1...原创 2019-01-03 22:29:15 · 359 阅读 · 0 评论 -
【JUC系列第一篇】-Volatile关键字及内存可见性
作者:毕来生微信:878799579什么是JUC?JUC全称 java.util.concurrent 是在并发编程中很常用的实用工具类2.Volatile关键字1、如果一个变量被volatile关键字修饰,那么这个变量对所有线程都是可见的。2、如果某条线程修改了被Volatile修饰的这个变量值,修改后的值对于其他线程来时是立即可见的。3、并不是经过Volatile...原创 2019-01-02 19:56:10 · 286 阅读 · 0 评论 -
【JUC系列第二篇】-原子变量
作者:毕来生微信:8787995791、什么是原子变量? 原子变量保证了该变量的所有操作都是原子的,不会因为多线程的同时访问而导致脏数据的读取问题。2、通过synchronized保证原子操作获取锁对象获取失败/获取不到 -&gt;阻塞队列等待释放锁对象3、Atomic之AtomicInteger源码分析java.util.concurrent.atomi...原创 2019-01-02 19:58:54 · 302 阅读 · 0 评论 -
【JUC系列第三篇】-CAS算法详解
作者 : 毕来生微信: 8787995791、CAS是什么?CAS是英文单词(Compare-And-Swap)的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。Cas乐观锁算法演示...原创 2019-01-02 20:00:56 · 506 阅读 · 0 评论 -
【Nacos系列第一篇】-Nacos之Spring Discovery 以及Config
【Nacos系列第一篇】-Nacos之Spring Discovery前言 个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。目前来看官方文档还有待完善。网络上除了官网外缺少Nacos系列文章。都是零零散散的知识点。如此系列文章哪里写的有不周全,错误之处。欢迎大家...原创 2019-01-13 20:43:52 · 1236 阅读 · 0 评论 -
【Nacos系列第二篇】-Nacos之Spring Boot Discovery
作者:毕来生微信:878799579前言 个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。目前来看官方文档还有待完善。网络上除了官网外缺少Nacos系列文章。都是零零散散的知识点。如此系列文章哪里写的有不周全,错误之处。欢迎大家指正。谢谢。 因公众号排...原创 2019-01-14 15:49:09 · 989 阅读 · 0 评论 -
【Nacos系列第三篇】- Nacos之Spring Boot Config
作者:毕来生微信:878799579前言 个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。目前来看官方文档还有待完善。网络上除了官网外缺少Nacos系列文章。都是零零散散的知识点。如此系列文章哪里写的有不周全,错误之处。欢迎大家指正。谢谢。 因公众号排...原创 2019-01-15 18:52:22 · 764 阅读 · 0 评论 -
【JUC系列第四篇】-CountDownLatch使用场景分析
作者 : 毕来生微信: 878799579前言 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。今天我们来聊一聊CountDownLatch 的使用场景。看看它到底是怎么玩耍的。CountDownLatch 是干什么的? CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作 之前,它允许一个或多个线程一直...原创 2019-01-03 22:26:19 · 383 阅读 · 0 评论 -
JVM系列-001-JVM监控工具
JVM系列-001-JVM监控工具在我们安装的jdk里面的bin目录下有一个jconsole.exe程序。这就是一个JVM的监控工具。我们可以直接打开它,如果配置了环境变量,也可以在命令中直接输入jconsole命令来打开它在控制台输入jconsole,当我们打开jconsole之后,界面如下:本地进程中列出了本地所有运行的java进程(使用jps命令可以查看到当前所有的java...原创 2018-10-23 07:06:02 · 301 阅读 · 0 评论 -
Java8-CompletableFuture
import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;public class CompletableFuture1 { public static void main(String[] args) throws ExecutionException, Inte原创 2017-12-16 11:04:39 · 363 阅读 · 0 评论 -
Java8-Executors-No.01
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class Executors1 { public static void main(String[] args) { te原创 2017-12-16 07:57:35 · 327 阅读 · 0 评论 -
Java8-Executors-No.02
import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.TimeU原创 2017-12-16 07:58:23 · 259 阅读 · 0 评论 -
Java8-Executors-No.03
import java.util.Arrays;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concu原创 2017-12-16 08:01:56 · 309 阅读 · 0 评论 -
Java8-Synchronized-No.01
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.stream.IntStream;public class Synchronized1 { private static final int NUM_INCREMENTS = 10000;原创 2017-12-16 10:57:42 · 375 阅读 · 0 评论 -
Java8-ConcurrentHashMap
import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ForkJoinPool;public class ConcurrentHashMap1 { public static void main(String[] args) { System.out.println("Paralle原创 2017-12-16 10:59:18 · 360 阅读 · 0 评论 -
Java8-Atomic
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.IntStream;public class Atomic1 { private原创 2017-12-16 10:59:41 · 362 阅读 · 0 评论 -
Java8-LongAccumulator
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.LongAccumulator;import java.util.function.LongBinaryOperator;import java.util.st原创 2017-12-16 11:03:19 · 578 阅读 · 0 评论