随笔分类 - Java
摘要:ThreadPoolExecutor具有多个参数,为了能够用好ThreadPoolExecutor,我们需要了解参数的含义以及了解参数背后线程池执行的流程。如果只靠死记硬背,这么多参数很容易遗忘,因此本文设计了一个例子帮你了解任务提交到线程之后是怎样的执行流程,观察例子的运行结果再结合参数可以更直观
阅读全文
摘要:工作中使用Java8,但是我的私人电脑上安装了2版本的JDK: openjdk8和openjdk11。刚刚在使用jconsole的时候发生了点问题,切换到jdk8就没问题了。每次都手动调整Java_home太麻烦了。我们可以在~/.bash_profile进行了如下配置: export JAVA_8
阅读全文
摘要:原稿于3.2日发布,然而事情并没完,我发现必须得补充一个常见的坑,为了防止大家采坑,我在更新了本文的后两段。 上一篇中我们通过一个实例看到了Java8 Stream API 相较于传统的的Java 集合操作的简洁与优势,本篇我们依然借助于一个实际的例子来看看Java8 Stream API 如何抽取
阅读全文
摘要:在web应用开发中,安全无疑是十分重要的,选择Spring Security来保护web应用是一个非常好的选择。Spring Security 是spring项目之中的一个安全模块,可以非常方便与spring项目无缝集成。特别是在spring boot项目中加入spring security更是十分
阅读全文
摘要:关键字:Netty开发redis客户端,Netty发送redis命令,netty解析redis消息, netty redis ,redis RESP协议。redis客户端,netty redis协议 我们可以使用redis cli这个客户端来操作redis,也可以使用window的命令行telnet
阅读全文
摘要:关键字:使用Netty实现HTTP服务器,使用Netty实现httpserver,Netty Http server Netty是一个异步事件驱动的网络应用程序框架用于快速开发可维护的高性能协议服务器和客户端。Netty经过精心设计,具有丰富的协议,如FTP,SMTP,HTTP以及各种二进制和基于文
阅读全文
摘要:netty心跳机制示例,使用Netty实现心跳机制,使用netty4,IdleStateHandler 实现。Netty心跳机制,netty心跳检测,netty,心跳 本文假设你已经了解了Netty的使用,或者至少写过netty的helloworld,知道了netty的基本使用。我们知道使用nett
阅读全文
摘要:前言 很久以前,我们学习了Java,从一个控制台的 .开始,我们进入了面向对象的世界。 然后由学习了 语言,可以写出 语句来将尘封在硬盘之下的数据库数据,展现出来。 后来我们使用 来操作数据库,进行各种增删改查。然而,我们对于原生的JDBC并不满意,写起来很不爽…… 于是,我们使用了 ,写了一个又一
阅读全文
摘要:BF算法,即Brute Force 算法的简称。用于检测某个字符串是否是另一个字符串的子串。 子串的概念 假设字符串 , ,那么Y 就是 X的子串。同样的, 是`friend`的子串。 BF算法的思路 BF算法的思路非常简单粗暴,就是从前到后一点点的匹配。例如: 子串 x= abcd | 主串为 y
阅读全文
摘要:KeyWords: Mybatis 原理,源码,Mybatis Mapper 接口实现类,代理模式,动态代理,Java动态代理,Proxy.newProxyInstance,Mapper 映射,Mapper 实现 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。M
阅读全文
摘要:Java9 新特性 ,Java 模块化,Java 反应流 Reactive,Jigsaw [TOC] 模块系统 Java平台模块系统(JPMS)是Java9中的特性,它是Jigsaw项目的产物。简而言之,它以更简单和易于维护的方式来组织包和类型。 直到Java8,系统仍面临与类型系统相关的两个问题:
阅读全文
摘要:Keyworkd Java 类加载, 类加载机制 , ClassLoader, 双亲委派模型,parent delegation model 我们每天都能见到太阳,时间长了便习以为常了,不会去思考,太阳光是怎么传来的。但是如果仔细的思考这个问题的话,发现不一定能解释的很清楚。 同理,我们每天用spr
阅读全文
摘要:Keywords CORS, 跨域,JS跨域调用,Ajax CORS 跨域,跨域详解,CORS跨域原理 [TOC] Cross Origin Resource Sharing详解 Cross Origin Resource Sharing 通常简称为:CORS。它是一种机制,这个机制使用了一个额外的
阅读全文
摘要:```java public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idcard.length()!=18) { return false; } char []
阅读全文
摘要:精通ArrayList,关于ArrayList你想知道的一切 `数据结构 扩容 序列化 线程安全` [TOC] 前言 在做Java开发中,ArrayList是最常用的数据结构之一,我们用它来存储一个数据列表。初始化一个ArrayList对象之后,我们可以使用它提供的诸多的方法:插入,指定位置插入,批
阅读全文
摘要:Spring 源码分析 1 启动 在web项目中使用spring的时候,我们会在web.xml中加入如下配置: 这个配置增加了一个listener,这个 ContextLoaderListener 实现了 ServletContextListener 。我们在日常工作中也会定义一些listener。
阅读全文
摘要:CountDownLatch 和 CyclicBarrier 同为Java1.5开始引入的,应用于多线程编程中的一种工具,二者用途十分相近,十分容易混淆。 CountDownLatch CountDownLatch用来使一个线程等待其他N个线程执行完毕之后,在执行。在其他N个线程没有执行结束(调用c
阅读全文
摘要:在上一篇中我用一张图来梳理了一下 "Java中的各种Queue" 之间的关系。这里介绍下 PriorityQueue 。PriorityQueue位于Java util包中,观其名字前半部分的单词 Priority 是优先的意思,实际上这个队列就是具有“优先级”。既然具有优先级的特性,那么就得有个前
阅读全文
摘要:说到数据结构,我们大概可以列出这么几个:数组,链表,栈,队列,集合,哈希表。 其中 队列 作为一个常用的数据结构,在Java中也有各种形式的实现。 顶级接口为java.util.queue. java.util包中,java.util.concurrent包中有多种实现。其简易类图如下: 类图接口之
阅读全文
摘要:通常在计算一个数的阶乘的时候,我们会使用递归这种算法。递归表现出来的书程序调用自身,且具有边界条件、前进段、返回段。 递归的思想可以用于很多的场景,比如之前我用递归进行过xml的解析。假如现在要计算一个整数的阶乘,那么一般的递归方式如下: 如果使用尾递归的话就是如下的形式: 如果一个函数中所有递归形
阅读全文