自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何优雅的自定义 ThreadPoolExecutor 线程池

java 中经常需要用到多线程来处理一些业务,非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险,这个时候引入线程池比较合理,方便线程任务的管理。java中涉及到线程池的相关类均在 jdk 1.5 开始的等。JDK 自动创建线程池的几种方式都封装在Executors使用的构造方式为设置了。

2022-10-28 09:20:01 496 1

原创 Orcale多字段去重,并查询所有字段

多个字段,利用max()去重。

2022-09-26 16:05:58 1284

原创 Java序列化为什么必须实现 Serializable 接口???

序列化和反序列化是什么?实现序列化和反序列化为什么要实现接口?实现接口就算了, 为什么还要显示指定的值?我要为指定个什么值?下面我们来一一解答这几个问题.

2022-09-02 10:29:20 291

原创 Spring Bean 默认是单例的,如何保证并发安全?

如果还要进一步考虑到微服务或分布式服务的影响,方式 4 便不足以处理了,所以可以借助于可以共享某些信息的分布式缓存中间件如 Redis 等,这样即可保证同一种服务的不同服务实例都拥有同一份共享信息(如当前运行中的任务列表等这类变量)。对象,并对此成员变量的值进行修改操作,因此会互相影响,无法达到并发安全(不同于线程隔离的概念,后面会解释到)的效果。有人说,单例 Bean 的成员变量这么麻烦,能不用成员变量就尽量避免这么用,在业务允许的条件下,将成员变量替换为。这种方式自然是最恰当的,本人也是最推荐。

2022-08-22 09:08:39 256

转载 StringUtils用法

lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。去掉字符串两端的控制符(control characters, char ...

2022-08-18 10:30:40 157

转载 40 个 SpringBoot 常用注解

本次课程总结了Spring Boot中常见的各类型注解的使用方式,让大家能够统一的对Spring Boot常用注解有一个全面的了解。由于篇幅的原因,关于Spring Boot不常用的一些注解,将在下一次分享中进行补充和说明。...

2022-08-10 09:21:33 331

原创 Spring Boot 实现接口幂等性的 4 种方案

幂等性是开发当中很常见也很重要的一个需求,尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要。在实际开发中,我们需要针对不同的业务场景我们需要灵活的选择幂等性的实现方式对于下单等存在唯一主键的,可以使用“唯一主键方案”的方式实现。对于更新订单状态等相关的更新场景操作,使用“乐观锁方案”实现更为简单。对于上下游这种,下游请求上游,上游服务可以使用“下游传递唯一序列号方案”更为合理。方案名称适用方法实现复杂度方案缺点数据库唯一主键插入操作删除操作简单-只能用于插入操作;...

2022-07-29 14:01:19 161

原创 谈谈ConcurrentHashMap是如何保证线程安全的?

我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?JDK1.8的实现降低锁的粒度,JDK1.7版本锁的粒度是基于Segment的,包含多个HashEntry,而JDK1.8锁的粒度就是HashEntry(首节点)JDK1.8版本的数据结构变得更加简单,使得操作也更加清晰流畅,因为已经使用synchronized来进行同步,所以不需要分段锁的概念,也就不需要Se

2022-06-10 16:44:38 1329 1

原创 执行一条 SQL 语句,期间发生了什么?

学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句:但是有没有想过,执行一条 select 查询语句,在 MySQL 中期间发生了什么?带着这个问题,我们可以很好的了解 MySQL 内部的架构。MySQL 的架构共分为两层:Server 层和存储引擎层,Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、优化器、执行器等。另外,所有的内置函数(如日期、时间、数学和加密函数等)和所有..

2022-06-10 15:43:01 143

原创 Linux必备命令:find/locate/grep/which/whereis

1、find:查找文件或者目录find 指令将从指定的目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。1)基本语法find[path...][选项]2)选项说明选项 说明 -name 文件名称 按文件名查找文件 -user 用户名 查找属于指定用户名的所有文件 -size [+-]n[bcwkMG] 按照指定多文件大小查找文件 n:数字,表示文件大小,n 后面可以跟单位 单位为(区分大小写): b:块(512 字节..

2022-05-26 09:12:20 298

原创 Spring Boot 内置工具类

断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 //要求参数object必须为非空(NotNull),否则抛出异常,不予放行//参数 message 参数用于定制异常信息。voidnotNull(Objectobject,Stringmessage)//要求参数...

2022-05-23 09:04:52 170

原创 1000w数据,速度提升 60 倍的 SQL 优化方案

有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:1、减少回表操作;2、可参考《阿里巴巴Java开发

2022-05-16 12:38:30 146

原创 多线程快速处理 List 集合

有一个大List集合,遍历进行一些耗时操作,不能达到性能要求,查询日志,单个任务虽然有不少数据库和第三方API请求,比较耗时,但返回效率尚可,所以优先采用多线程方式进行处理并行请求数据库和第三方API,因为处理完还要对list所属的数据进行操作,所以,线程池多线程处理要等待全部处理完。相关的代码如下:@Testpublic void testTB(){ List < String > list = new ArrayList < > (); for(int i

2022-05-12 09:16:00 336

原创 Nginx配置文件(nginx.conf)详细讲解

1、Nginx配置文件(nginx.conf)1.1概述默认在Linux上安装的Nginx,配置文件在安装的nginx目录下的conf目录下,名字叫做nginx.confnginx.conf主要由三部分组成全局块, events块 http块1.2配置文件结构1.3真实配置文件概览# 全局快------------------------------------------------------------------------------#user nobod

2022-05-10 18:04:44 1030

原创 idea所有项目引入的包都报红

设置里面把*.class;去掉就好了

2022-05-07 09:13:57 882 1

原创 关于Nginx的40个问题(下)

限流怎么做的?Nginx限流就是限制用户请求速度,防止服务器受不了限流有3种 正常限制访问频率(正常流量) 突发限制访问频率(突发流量) 限制并发连接数 Nginx的限流都是基于漏桶流算法实现三种限流算法1、正常限制访问频率(正常流量):限制一个用户发送的请求,我Nginx多久接收一个请求。Nginx中使用ngx_http_limit_req_module模块来限制的访问频率,限制的原理实质是基于漏桶算法原理来实现的。在nginx.conf配置文件中

2022-03-14 11:45:00 301

原创 关于Nginx的40个问题(上)

什么是Nginx?Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。Nginx 有哪些优点? 跨平台、配置简单。 非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持 5 万并发。 内存消耗小:开启 10 个 Nginx 才占 150M

2022-03-14 09:30:00 208

原创 idea 快捷键大全(全网最详细)

一、IntelliJ IDEA 快捷键大全 Win 版一、Ctrl 快捷键 快捷键 说明 常用 Ctrl + F 在当前文件进行文本查找 √ Ctrl + R 在当前文件进行文本替换 √ Ctrl + Z 撤销 √ Ctrl + Y

2022-03-07 09:08:13 4842

原创 JAVA基础IO流

JAVA基础IO流https://www.yuque.com/emcee/in4p84/eyu4h3

2022-02-23 09:33:58 170

原创 JAVA集合

JAVA集合https://www.yuque.com/emcee/in4p84/pbgo6z

2022-02-23 09:32:41 241

原创 SpringBoot + MyBatis + MySQL 实现读写分离

读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP然而,应用程序层面去做读写分离最大的弱点(不足之处)在于无法动态增加数据库节点,因为数据源配置都是写在配置中的,新增数据库意味着新

2022-02-08 10:38:45 169

原创 12种 copy 方法 压测数据性能比较

一、前言为哈么,你的代码也就仅仅是能用而已?没有技术深度、短缺知识储备、匮乏经验积累的前提下,怎么写代码?百度呀,遇到问题这搜一点,那查一块,不管它是什么原理还是适合哪种场景,先粘贴到自己的工程里,看,能跑了,能跑就行。那这样的代码也就仅仅是能用程度的交付,根本没有一定的质量保证,也更别提数据结构、算法逻辑和设计模式了,那看的编程资料刷的LeetCode,全歇菜了。当你感觉看了很多资料又不会用的时候,会说什么,真卷,都学到这样了。但其实我并不觉对技术的深度挖掘、梳理全套的知识体系,一点点耕耘一点

2022-01-24 14:37:39 279

原创 JAVA常用类

JAVA常用类https://www.yuque.com/emcee/in4p84/heg71h

2022-01-21 15:01:38 160

原创 JAVA多线程

JAVA多线程https://www.yuque.com/emcee/in4p84/and42f

2022-01-21 10:48:23 167

原创 JAVA基础之面向对象(下)

语雀地址https://www.yuque.com/emcee/in4p84/ptasgd

2022-01-21 10:46:49 165

转载 JAVA基础之面向对象(中)

01、继承性的使用与理解1、Person 类/* * 为描述和处理个人信息,定义类 Person */public class Person { String name; private int age; public Person(){ } public Person(String name,int age){ this.name = name; this.age = age; } public void eat(){ System.out.

2022-01-05 10:25:30 204

原创 JAVA异常

01、异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如

2022-01-04 17:02:58 113

原创 JAVA基础入门

Java第一个程序及底层运行流程https://blog.csdn.net/weixin_44866272/article/details/120974256Java 基本 语法变量与运算符https://blog.csdn.net/weixin_44866272/article/details/121086328JAVA运算符https://blog.csdn.net/weixin_44866272/article/details/122253132JAVA程序流程控制https://blog.csdn.

2021-12-31 14:26:32 272

原创 JAVA基础之数组

01、 数组的概述/* * 一、数组的概述 * 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合, * 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 * * 2.数组的相关概念: * >数组名 * >元素 * >角标、下标、索引 * >数组的长度:元素的个数 * * 3.数组的特点: * 1)数组属于引用类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型。 * 2)创建数组对象会在内存中开辟

2021-12-31 14:17:23 98

原创 JAVA程序流程控制

01、 程序流程控概述流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构 分支结构循环结构1、顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。2、分支结构根据条件,选择性地执行某段代码。 有if…else和switch-case两种分支语句3、循环结构根据循环条件,重复性的执行某段代码。 有while、do…while、for三种循环语句。注

2021-12-31 11:48:31 95

原创 JAVA运算符

01、运算符运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。算术运算符 赋值运算符比较运算符(关系运算符) 逻辑运算符位运算符 三元运算符1.1、算术运算符/*运算符之一:算术运算符+ - * / % (前)++ (后)++ (前)-- (后)-- */class Day3Test{ public static void main(String[] args) { //除号:/ int num1 = 12; int num2 = 5; i

2021-12-31 11:41:10 276

原创 JAVA基础之面向对象(上)

01、面向过程与面向对象何谓“面向对象”的编程思想?首先解释一下“思想”。先问你个问题:你想做个怎样的人?可能你会回答:我想做个好人,孝敬父母,尊重长辈,关爱亲朋…你看,这就是思想。这是你做人的思想,或者说,是你做人的原则。做人有做人的原则,编程也有编程的原则。这些编程的原则呢,就是编程思想面向过程(POP) 与面向对象(OOP)面向对象:Object Oriented Programming 面向过程:Procedure Oriented Programming/*

2021-12-31 11:36:07 329

原创 Flowable之开启流程

bpmn文件<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.o..

2021-12-03 17:23:45 1228

原创 Eclipse常见问题

一. 双击 Eclipse 启动 图标,不能正常启动 Eclipse启动不了的原因有很多种,这里需要大家从如下几个方面排查:1. 环境变量是否正确配置,需要在命令行输入 javac.exe 或 java.exe 进行检查2. 是否正确的安装了 JDK 和 JRE3. 安装的 JDK 的版本(32 位还是 64 位),必须与 Eclipse 版本一致4. 修改 Eclipse 安装目录下的 eclipse.ini 配置文件二. 进入Eclipse 时 ,没有可选择的workspac

2021-11-24 09:08:03 425

原创 Eclipse 的 使用 配置

一、 首次使用的必要设置1. Eclipse 的安装将 Eclipse 解压或安装到没有中文且没有空格的路径下。2. 设置 workspace首次启动,选择指定的工作空间(workspace),用于存放 java 代码。注:中间的蓝框,不建议打钩.如果打钩,每次 Eclipse 会自动进入上面选中的workspace 中.不利于 Eclipse 开启其他 workspace。点击”OK”,进入主界面.首次进入显示如下:可以去掉 welcome 页面右下角的钩,避免..

2021-11-24 09:05:53 183

原创 Jackson工具类

1.引入依赖<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency>2.工具类代码import com.fasterxml.jackson.core.JsonProcessingException;import com.faster.

2021-11-03 16:51:49 528

转载 Java 基本 语法变量与运算符

一、关键字与保留字关键字(keyword)的定义和特点定义:被 被Java 语言赋予了特殊含义,用做专门用途的字符串(单词)特点: 关键字中所有字母都为 小写官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html保留字(reserved word)Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字goto 、c.

2021-11-01 19:16:38 143

原创 Websocket实现wss协议连接支持语音聊天功能

部署单页应用 SPA 时,我们通常使用 Nginx 做中间层进行转发代理。为了保护 Web 安全,要求我们使用 HTTPS(HTTP + SSL) 以及 WSS(Websocket + SSL) 进行通信。HTTPS 及 WSS 协议旨在保护用户数据在网络上不被窃听(机密性) 和不被篡改(完整性)。HTTP 与 HTTPS 区别HTTPS 协议需要到 CA 申请证书,一般免费证书较少,因而需要一定费用; HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输

2021-10-29 14:02:35 5141 2

原创 Java第一个程序及底层运行流程

配置环境变量 path在dos命令行中敲入javac,出现错误提示:错误原因:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到 jdk安装路径\bin目录下,执行javac,会看到javac参数提示信息。每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目录下都可以执行java的工具呢?根据windows系统在查找可执行程序的原理,可以将jav

2021-10-26 16:04:27 306

原创 结构型模式之装饰器模式(附带代码详解)

很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固定的流程编写出流水式的代码外,很难去思考整套功能服务的扩展性和可维护性。尤其是在一些较大型的功能搭建上,比较缺失一些驾驭能力,从而导致最终的代码相对来说不能做到尽善尽美。江洋大盗与江洋大偷两个本想描述一样的意思的词,只因一字之差就让人觉得一个是好牛,一个好搞笑。往往我们去开发编程写代码时也经常将一些不恰当的用法用于业务需求实现中,但却不能意识到。一方面是由于编码不多缺少较大型项目的实践,另一方面是不思进取的总在以完成需求为目标缺少精益求..

2021-10-25 09:29:10 98

Flowable分析流程与表.docx

flowable

2021-05-11

p8670579_112010_LINUX.zip

解决如下问题的补丁包 $dbca Oracle Net Services Configuration: # # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0xa44b13a8, pid=2973, tid=3086891216 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode) # Problematic frame: # C [libnnz11.so+0x3c3a8] # #

2020-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除