09 2021 档案

摘要:在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。 1、IF()函数的使用 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。 SELECT IF 阅读全文
posted @ 2021-09-29 14:47 Chen洋 阅读(456) 评论(1) 推荐(0)
摘要:1. 前言 Java 中总的算起来有 8 种阻塞队列。 ArrayBlockingQueue 数组队列,我们在 使用 ReentrantLock 和 Condition 实现一个阻塞队列 看过了 JDK 写的一个例子,就是该类的基本原理和实现。 LinkedBlockingDeque是一个双向链表的 阅读全文
posted @ 2021-09-22 17:13 Chen洋 阅读(177) 评论(0) 推荐(0)
摘要:Spring Security 中文文档 参考手册 中文版 (springcloud.cc) 阅读全文
posted @ 2021-09-20 08:55 Chen洋 阅读(4065) 评论(1) 推荐(0)
摘要:深入理解synchronized底层源码 前言 这篇文章从JVM源码分析synchronized的实现逻辑,这样才能更加对synchronized深度的认识。 进程:操作系统资源分配的基本单位。线程:cpu调度的基本单位(真实执行) 一、synchronized的使用场景 synchronized一 阅读全文
posted @ 2021-09-18 16:55 Chen洋 阅读(423) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-09-17 14:38 Chen洋 阅读(49) 评论(0) 推荐(0)
摘要:参加下面链接: 软件设计模式 阅读全文
posted @ 2021-09-17 11:06 Chen洋 阅读(35) 评论(0) 推荐(0)
摘要:(26条消息) Spring Cloud 学习笔记(1 / 3)_KISS-CSDN博客 project - Spring Cloud Config - 《Spring Cloud中文文档》 - 书栈网 · BookStack 阅读全文
posted @ 2021-09-16 10:19 Chen洋 阅读(42) 评论(0) 推荐(0)
摘要:Java 集合底层原理剖析(List、Set、Map、Queue)温馨提示:下面是以 Java 8 版本进行讲解,除非有特定说明。 一、Java 集合介绍Java 集合是一个存储相同类型数据的容器,类似数组,集合可以不指定长度,但是数组必须指定长度。集合类主要从 Collection 和 Map 两 阅读全文
posted @ 2021-09-15 15:26 Chen洋 阅读(2606) 评论(0) 推荐(0)
摘要:先放张图: 一、先来回忆下我的面试过程 问:“你用过HashMap,你能跟我说说它吗?” 答:“用过,HashMap是一种<key,value>的存储结构,能够快速将key的数据put方式存储起来,然后很快的通过get取出来”,然后说“HashMap不是线程安全的,HashTable是线程安全的,通 阅读全文
posted @ 2021-09-14 15:25 Chen洋 阅读(146) 评论(0) 推荐(0)
摘要:介绍 Gradle,这是一个基于 JVM 的富有突破性构建工具。 它为您提供了: 一个像 ant 一样,通用的灵活的构建工具 一种可切换的,像 maven 一样的基于约定约定优于配置的构建框架 强大的多工程构建支持 强大的依赖管理(基于 ApacheIvy) 对已有的 maven 和 ivy 仓库的 阅读全文
posted @ 2021-09-14 13:23 Chen洋 阅读(957) 评论(0) 推荐(0)
摘要:最近学习了尚硅谷周阳老师的JUC课程,笔记如下(别人总结的,挺好) (25条消息) 【尚硅谷/周阳】JUC学习笔记_耿鬼不会笑的博客-CSDN博客 或者 (25条消息) JUC学习笔记_lizongxiao的博客-CSDN博客_juc学习笔记 以及其他一个版本的: java并发编程/java并发1. 阅读全文
posted @ 2021-09-14 11:12 Chen洋 阅读(273) 评论(0) 推荐(0)
摘要:一、LinkedList介绍及其源码剖析 继承结构: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 阅读全文
posted @ 2021-09-13 17:51 Chen洋 阅读(116) 评论(0) 推荐(0)
摘要:Arrays.deepToString()与Arrays.toString()的区别Arrays.deepToString()主要用于数组中还有数组的情况,此方法旨在将多维数组转换为字符串。deepToString()适用于一维和多维,但不适用于基元的一维数组 而Arrays.toString()则 阅读全文
posted @ 2021-09-13 17:30 Chen洋 阅读(333) 评论(0) 推荐(0)
摘要:Alibaba Easy Excel - 简单、省内存的Java解析Excel工具 | 首页 (alibaba-easyexcel.github.io) 导出示例 示例链接:https://alibaba-easyexcel.github.io/quickstart/write.html 导入示例 阅读全文
posted @ 2021-09-11 09:49 Chen洋 阅读(145) 评论(0) 推荐(0)
摘要:MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上 阅读全文
posted @ 2021-09-10 11:46 Chen洋 阅读(519) 评论(0) 推荐(0)
摘要:1.存储过程的简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的 阅读全文
posted @ 2021-09-10 11:17 Chen洋 阅读(1199) 评论(0) 推荐(0)
摘要:概要 Caffeine是一个高性能,高命中率,低内存占用,near optimal 的本地缓存,简单来说它是 Guava Cache 的优化加强版,有些文章把 Caffeine 称为“新一代的缓存”、“现代缓存之王”。 本文将重点讲解 Caffeine 的高性能设计,以及对应部分的源码分析。 与 G 阅读全文
posted @ 2021-09-09 14:00 Chen洋 阅读(1029) 评论(0) 推荐(0)
摘要:AQS原理AQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包 AQS的核 阅读全文
posted @ 2021-09-08 16:32 Chen洋 阅读(150) 评论(0) 推荐(0)
摘要:1. 简介# Java中常见的四种并发工具类: CountDownLatch(闭锁,我觉得叫门闩更好理解) CyclicBarrier Semaphore Exchanger 2. 主线程等待子线程之CountDownLatch# 原理 CountDownLatch允许一个或多个线程等待其他一组线程 阅读全文
posted @ 2021-09-08 15:44 Chen洋 阅读(669) 评论(0) 推荐(0)
摘要:线程的状态转换图 线程的几种状态(1)新建状态(New): 用new语句创建的线程处于新建状态,此时它和其他Java对象一样,仅仅在堆区中被分配了内存。(2)就绪状态(Runnable): 当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态,Java虚拟机会为它创建方法调 阅读全文
posted @ 2021-09-08 15:27 Chen洋 阅读(1978) 评论(0) 推荐(0)
摘要:springMVC/SpringBoot中提供了@RequestHeader注解用来获取请求头。 一、使用@RequestHeader获取请求头 (一)获取某一个请求头 例如,获取accept-language请求头: @GetMapping("/getLanguage") public Resul 阅读全文
posted @ 2021-09-08 15:16 Chen洋 阅读(3764) 评论(0) 推荐(0)
摘要:一、使用方式。 join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二、为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线 阅读全文
posted @ 2021-09-07 17:16 Chen洋 阅读(14014) 评论(0) 推荐(1)
摘要:分段锁与ConcurrentHashMap的实现原理,今天来用自己的理解类比一下ConcurrentHashMap中分段锁的实现。 ConcurrentHashMap使用了分段锁来保证线程安全,效率比起使用synchronized的HashTable要高的很多。每个集合都可以看作是一个存储东西的房子 阅读全文
posted @ 2021-09-07 11:48 Chen洋 阅读(727) 评论(0) 推荐(0)
摘要:一、什么是Executor框架? 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接 阅读全文
posted @ 2021-09-07 11:11 Chen洋 阅读(402) 评论(0) 推荐(0)
摘要:官方笔记:Seata 是什么 阅读全文
posted @ 2021-09-03 16:04 Chen洋 阅读(61) 评论(0) 推荐(0)
摘要:我们知道 Nexus 可以远程下载和缓存中央仓库索引,但是对于国内用户来说,Nexus 远程更新索引使用的站点位于国外且部分索引文件较大,经常会出现下载速度缓慢或索引文件不完整等情况。下面我们将介绍一种更加快捷可靠的索引更新方式:离线更新中央仓库索引。离线更新中央仓库索引,顾名思义,就是直接将索引文 阅读全文
posted @ 2021-09-02 17:16 Chen洋 阅读(1648) 评论(0) 推荐(0)
摘要:目前 Nexus 分为 Nexus 2 和 Nexus 3 两个大版本,它们是并行的关系。与 Nexus 2 相比,Nexus 3 具有很多优势,例如支持更多的仓库格式、优化了用户的使用界面以及更加强大的搜索功能等等。目前使用最多的,运行最稳定是 Nexus 2,但随着 Nexus 3 对 Mave 阅读全文
posted @ 2021-09-02 17:11 Chen洋 阅读(6922) 评论(0) 推荐(2)
摘要:Nexus索引与构件搜索 我们知道,Maven 中央仓库为用户提供了多达数十万构件,而 Nexus 可以代理所有的远程仓库(包括 Maven 中央仓库),可见 Nexus 仓库中构件的数量相当庞大。用户想要在这么多构件中,快速的查找自己所需的构件,一个最直接有效的方式就是:搜索。Nexus 作为一款 阅读全文
posted @ 2021-09-02 16:54 Chen洋 阅读(1820) 评论(0) 推荐(0)
摘要:Nexus是什么 Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。 Maven 私服其实并不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要, 阅读全文
posted @ 2021-09-02 16:37 Chen洋 阅读(15087) 评论(0) 推荐(3)
摘要:Try-with-resources (TWR) 在处理IO的代码中,我们会使用大量的try...catch()...finally...语法,其中会在finally进行IO的close操作,写过python的都知道,这种操作可以使用try-with-resources操作,幸运的是Java7也有了 阅读全文
posted @ 2021-09-02 13:30 Chen洋 阅读(591) 评论(0) 推荐(0)
摘要:分代垃圾回收 垃圾回收基础 如下图所示: 垃圾回收器主要回收堆内存,堆内存分为:新生代和老年代。 对于回收新生代GC:Minor GC或者叫Young GC。回收老年代的GC叫:Major GC 或者 Old GC. 需要注意Full GC:它不止回收堆内存,还会回收方法区(在JDK1.8 方法区在 阅读全文
posted @ 2021-09-01 14:28 Chen洋 阅读(838) 评论(0) 推荐(0)
摘要:在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件。第二段编译是把.class转换成机器指令的过程。 第一段编译就是javac命令。 在第二编译阶段,JVM 通过解释字节码将其翻译成对应的机器指令,逐条 阅读全文
posted @ 2021-09-01 11:50 Chen洋 阅读(665) 评论(0) 推荐(0)
摘要:1. 使用场景 在日常的开发工作中,我们经常需要将程序部署到不同的环境,比如Dev开发环境,QA测试环境,Prod生产环境,这些环境下的一些配置肯定是不一样的,比如数据库配置,Redis配置,RabbitMQ配置。 如果每次切换发布环境,都需要修改配置重新构建的话,那对程序员来说将是噩梦,针对这种场 阅读全文
posted @ 2021-09-01 10:33 Chen洋 阅读(639) 评论(0) 推荐(0)
摘要:前言 Glassfish是一款由Sun公司开发的(现由甲骨文公司赞助)开源的免费的应用服务器,它既是EJB容器也是WEB容器。Glassfish支持最新版的Java EE标准。 Glassfish与Tomcat的区别 Tomcat只是WEB容器,并不支持EJB,而Glassfish既是WEB容器也是 阅读全文
posted @ 2021-09-01 10:03 Chen洋 阅读(1406) 评论(0) 推荐(0)