Java并发之ThreadPoolExecutor源码解析(三)

Worker 先前,笔者讲解到ThreadPoolExecutor.addWorker(Runnable firstTask, boolean core),在这个方法中工作线程可能创建成功,也可能创建失败,具体视线程池的边界条件,以及当前内存情况而定。 那么,如果线程池当前的状态,是允许创建Work ... »

Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装

Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 ... »

责任链模式

(这里写自定义目录标题) 责任链模式简述(Chain of Responsibility) 定义 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将整个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理他为止。 特点 链上的每个对象都有机会处理请求 链上的每一个对象,都 ... »

如何系统的了解Kafka

1.概述 在大数据的浪潮下,时时刻刻都会产生大量的数据。比如社交媒体、博客、电子商务等等,这些数据会以不同的类型存储在不同的平台里面。为了执行ETL(提取、转换、加载)操作,需要一个消息中间件系统,该系统应该是异步和低耦合的,即来自各种存储系统(如HDFS、Cassandra、RDBMS等)的数据可 ... »

Springboot项目架构设计

导航 前言 流水线 架构的艺术 项目架构 理解阿里应用分层架构 superblog项目架构 结语 参考 本节是《Spring Boot 实战纪实》的第7篇,感谢您的阅读,预计阅读时长3min。 智客工坊出品必属精品。 前言 关于架构的理解,一千个人心中有一千个哈姆莱特。这和项目经验和团队文化有很大关 ... »

SpringBoot整合MyBatis-Plus框架(代码生成器)

MyBatis-Plus的简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 代码生成器 通用的CURD 条件构造器 自定义SQL语句 分页插件、性能分析插件 公共字段自动填充 特性 无侵入:只做增强 ... »

正则表达式匹配${key}并在Java中使用

1.正则表达式匹配$ ${([a-z]+)} 能够匹配字符串中以$形式的文本(其中key为小写应为字母) .*${([a-z]+)}.* 可以用来检测文本中是否有$形式的文本 解释如下: . 匹配除换行符 之外的任何单字符 * 匹配前面的子表达式零次或多次 要匹配*字符,请使用* { ... »

Nacos安装和配置

我们这里是在Centos7上进行的操作;首先在nacos的github 上下载安装包,直接选择最新的releases版本即可,如:nacos-server-1.4.1.tar.gz ;windows系统的话直接下载zip包安解压即可。 配置jdk(如果没有的话) 注意需要安装和配置Java环境(使用 ... »

Java并发之ThreadPoolExecutor源码解析(二)

ThreadPoolExecutor ThreadPoolExecutor是ExecutorService的一种实现,可以用若干已经池化的线程执行被提交的任务。使用线程池可以帮助我们限定和整合程序资源,尽可能避免创建新的线程来执行任务从而降低任务调用的开销,在执行大量异步任务的时候反而能获得更好的性 ... »

注解和反射学习笔记

注解和反射学习笔记 狂神注解和反射 基本把注解和反射介绍明白了,就是虚拟机这部分需从其他地方学习 注解 注解定义中,里面的定义指的是参数,不是方法,如下面这个value,表示使用时可以传递一个数组参数值到注解中。 //镇压警告的意思,当加上@SuppressWarnings("all")注解后则警告 ... »

支付宝微信合单支付

什么场景下会用到合单支付呢?下面举个例子:最常见的就是商城系统了,比如用户在一笔订单里面选择了多个不同商户的商品, 为了用户体验,在支付的时候肯定是只需要支付一次即可的; 如果我们使用传统的方式即实际后就是一笔订单,直接支付下单即可,这里确实简单了,但是我们在给商户做结算的时候就麻烦了,需要后台去统 ... »

Java操作Excel工具类(poi)

分享一个自己做的poi工具类,写不是很完全,足够我自己当前使用,有兴趣的可以自行扩展 1 import org.apache.commons.lang3.exception.ExceptionUtils; 2 import org.apache.poi.hssf.usermodel.HSSFData ... »

Java中把一个对象的值复制给另外一个对象引发的思考

Spring生态在Java项目中被广泛应用,从架构到技术应用再到常用的基本功能,Spring给我们的开发带来了很大的便利。今天翻到项目中导出报表功能的时候,发现经常复制对象的方法: BeanUtils.copyProperties; 把源对象的属性值赋值给目标对象,Spring和Apache和其他的 ... »

不可不知的 JVM 预热

一、JVM 架构基础 JVM 进程启动时,ClassLoader 会将需要的所有类加载到内存,主要分为以下三步: Bootstrap Class: 核心类库,由 “Bootstrap Class Loader”负责加载, 例如基础的运行时类库 JRElib t.jar。 Extension Cl ... »

面试必知:String、StringBuilder、StringBuffer的区别

你知道String、StringBuilder、Stringbuffer的区别吗?当你创建字符串的时候,有考虑过该使用哪个吗? 别急,这篇文章带你解决这些问题。 可变性 首先,String是字符串,我们一般这样声明: String s = "abc"; String类使用被final修饰的char数 ... »

java基础知识

##前言 在别人追问我以下几个问题,自己在问题回答上不够全面和准确,对此自己把专门针对这几个问题进行总结! ##java相关问题 ##1.Java中构造方法跟普通方法的区别? 构造方法与普通方法的调用时机不同。 首先在一个类中可以定义构造方法与普通方法两种类型的方法,但是这两种方法在调用时有明显的区 ... »

JAVA 8 新特性实用总JAVA 8 新特性实用总结结

JAVA 8 新特性实用总结 作为一个工作两年多的 老 程序猿,虽然一开始就使用 jdk1.8 作为学习和使用的版本,随着技术的迭代,现有的 JDK 版本从两年前到现在,已经飞速发展到了 JDK 15 。真的感觉有点学不动了,更新速度太快了,不过相比于现有系统以及国内趋势。大多公司还是采用最基础的 ... »

JVM系列(四):java方法的查找过程实现

经过前面几章的简单介绍,我们已经大致了解了jvm的启动框架和执行流程了。不过,这些都是些无关痛痒的问题,几行文字描述一下即可。 所以,今天我们从另一个角度来讲解jvm的一些东西,以便可以更多一点认知。即如题:jvm是如何找到对应的java方法,然后执行的呢?(但是执行太复杂,太重要,我们就不说了。我 ... »

Java集合

Collection(集合) 常用方法: 增 add(E e)//添加单一对象addAll(Collection<? extends E> c)//添加一个集合 删 remove(Object o)//删除一个对象removeAll(Collection<?> c)//删除一个集合 判空 isEmp ... »