自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(287)
  • 资源 (1)
  • 收藏
  • 关注

原创 java反射测试

【代码】java反射测试。

2023-02-21 18:06:38 187 1

原创 python3写个字符串md5、base64编、解码功能小工具

python3实现字符串md5、base64编解码小工具

2022-08-07 10:39:10 457

原创 推荐一款比较好用idea的代码生成插件-Easy Code

1、在idea的插件市场搜索Easy Code2、首先要配置数据库链接,我这里使用MySQL配置用户名、密码和数据库3、选择你要生成CURD代码的表4、配置代码生成的包,路径等信息,点击ok5、查看生成的代码...

2022-04-17 22:51:43 2061

原创 Idea的debug过程中,强制返回,避免操作资源

场景:我们平时使用debug排查问题,但是我们debug代码有进行一些数据库资源操作或缓存操作等,很显然。这时候,我们就可以使用idea中”Force Return“代码public class BreakPointDemo { /** * 强制返回 | 避免操作资源 */ public static void forceReturn() { System.out.println("bug"); //这里打断点

2022-04-17 10:37:33 2226

原创 Idea中可视化调试java8的stream

idea

2022-04-17 10:09:00 740

原创 java是使用阻塞队列处理日志

一、使用BlockingQueuepackage com.tree.springcloud.log;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;/** * @author zhong * @version 1 * @date 2021/03/12 * @contact [email protected] **/public class SysL.

2021-03-13 10:15:31 373

原创 InnoDB 中的聚集索引和非聚集索引

InnoDB 中的聚集索引和非聚集索引:一、聚集索引(聚簇索引):以 InnoDB 作为存储引擎的表,表中的数据都会有一个主键,即使你不创建主键,系统也会帮你创建一个隐式的主键。这是因为 InnoDB 是把数据存放在 B+ 树中的,而 B+树的键值就是主键,在 B+树的叶子节点中,存储了表中所有的数据。这种以主键作为 B+ 树索引的键值而构建的 B+树索引,我们称之为聚集索引。二、非聚集索引(非聚簇索引):以主键以外的列值作为键值构建的 B+ 树索引,我们称之为非聚集索引。非聚集索引与...

2021-03-09 00:21:18 2378

原创 Idea使用Docker部署SpringBoot项目

0、前言:Idea使用Docker部署SpringBoot项目1、基础环境:Mac、Idea、Java8、Docker、Maven2、新建一个springboot项目docker-demo-20212.1 pom文件,注意maven的docker-maven-plugin插件信息配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln

2021-03-04 14:55:22 2792 1

原创 常见的4种线程池

1、newCachedThreadPool:/** * 一个可缓存线程池,如果线程池长度超过需要处理需要,可灵活回收空闲线程,若无可回收,则新建线程 * 适合短时间的任务 * 缺点:要问题是线程数最大数是Integer.MAX_VALUE,可能会创建数量非常多的线程,甚至OOM。 */2、newFixedThreadPool:/** * 定长线程池,可以控制线程最大并发数,超出的任务会在队列中等待 * 缺点:要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。 */

2021-03-04 10:33:19 6682 2

原创 springmvc中为什么需要用到父子容器?

问题1:springmvc中只使用一个容器是否可以?只使用一个容器是可以正常运行的。问题2:那么springmvc中为什么需要用到父子容器?通常我们使用springmvc的时候,采用3层结构,controller层,service层,dao层;父容器中会包含dao层和service层,而子容器中包含的只有controller层;这2个容器组成了父子容器的关系,controller层通常会注入service层的bean。采用父子容器可以避免有些人在service层去注入controller层的be

2021-03-03 16:03:20 623 2

原创 什么场景应该用 MongoDB ?

案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。 用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大的减少开发的工作。案例2mongodb之前有用过,主要用来存储一些监控数据,No schema 对开发人员来说,真的很方便,增加字段不用改表结构,而且学习成本极低。案例3使用MongoDB做了O2O快递应用,·将送快递骑手、快递商

2021-03-02 18:16:31 183

原创 Mybatis是如何进行分页的?分页插件的原理是什么?

Mybatis是如何进行分页的?分页插件的原理是什么? Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。 可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。 分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执 行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。 ...

2021-03-02 17:26:17 1599

原创 springboot小demo补脑ing

2021-03-02 17:12:17 85

原创 @Aspect记录webLog 

@Aspect记录webLogpackage org.tree.learndemo.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.annotation.Order;import org.springframewo.

2021-03-02 16:32:44 166

原创 服务器配置需要注意的问题

服务器配置1. 【推荐】高并发服务器建议调小 TCP 协议的 time_wait 超时时间。 说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为 处于 time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。 正例:在 linux 服务器上请通过变更/etc/sysctl.conf 文件去修改该缺省值(秒): net.ipv4.tcp_fin_timeout = 30 2. 【推荐】调大服务器所.

2021-02-27 15:20:10 617

原创 手动创建线程池

4. 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这 样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下: 1) FixedThreadPool 和 SingleThreadPool: 允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM。 /** * Creates a thread pool tha

2021-02-26 20:12:42 443

原创 java的双重检查锁问题

通过双重检查锁(double-checked locking)(在并发场景下)实现延迟初始化的优化 问题隐患(可参考 The "Double-Checked Locking is Broken" Declaration),推荐解决方案中较为 简单一种(适用于 JDK5 及以上版本),将目标属性声明为 volatile 型(比如修改 helper 的属 性声明为`private volatile Helper helper = null;`)。 反例: public class LazyInitDem

2021-02-26 20:00:17 433

原创 java中Map类集合K/V是否能为null的值的情况

2021-02-26 14:50:14 498 1

原创 mybatis的update语句返回值问题

一、mybatis的update语句返回值问题默认情况下,mybatis 的 update 操作返回值是记录的 matched 的条数,并不是影响的记录条数。严格意义上来将,这并不是 mybatis 的返回值,mybatis 仅仅只是返回的数据库连接驱动(通常是 JDBC )的返回值,也就是说,如果驱动告知更新 2 条记录受影响,那么我们将得到 mybatis 的返回值就会是 2 和 mybatis 本身是没有关系的。道理我都懂,如果我们非得要 mybatis 的 update 操作明确的返回受影响的.

2021-02-25 14:52:41 2544

原创 不想用Gitlab?那尝试使用一下Gogs吧

地址:https://gogs.io/docs本地安装后首页:

2020-10-18 15:22:44 167

原创 RocketMQ踩坑-No route info of this topic, Jodie_topic_1023

官网启动broker命令:nohup sh mqbroker -n localhost:9876 &改为下面方式启动Broker:nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

2020-10-15 23:25:08 377 1

原创 Dubbo初步认识

一、Dubbo是什么?Apache Dubbo 是一款高性能Java RPC框架。二、RPC又是什么?RPC 是远程过程调用(Remote Procedure Call)的缩写形式。下面是rpc流程图:参考百科三、Dubbo三大核心功能3.1面向接口的远程方法调用3.2 智能容错和负载均衡3.3 服务自动注册和发现四、Dubbo架构图4.1 官方原图4.2 中文图五、特性...

2020-10-14 21:43:21 192

原创 SpringCloud入门好资料

github:https://github.com/macrozheng/springcloud-learning

2020-10-14 19:54:45 90

原创 gc日志分析

一、编写测试代码package com.tree; import java.util.concurrent.TimeUnit;/** * JVMDemo * * @author zhong * @create 2020-10-13 17:33 * @contact [email protected] **/public class JVMDemo { public static void main(String[] args) throws Interru

2020-10-13 21:58:36 329

原创 springcloud主要组件的常用配置

eureka: client: #eureka客户端配置 register-with-eureka: true #是否将自己注册到eureka服务端上去 fetch-registry: true #是否获取eureka服务端上注册的服务列表 service-url: defaultZone: http://localhost:8001/eureka/ # 指定注册中心地址 enabled: true # 启用eureka客户端 registry-f.

2020-10-12 15:44:06 265

原创 springboot 配置keytool生成的自定义证书

一、使用keytool生成自己的tomcathttps.p12证书,名字可以随便取keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048-keystore tomcathttps.p12 -validity 365-genkey 表示要创建一个新的密钥-alias 表示keystore的别名-keyalg 表示使用的加密算法-keysize 密钥的长度-keystore 密钥存放的位置-validity 密钥..

2020-10-11 14:52:20 1035 2

原创 @SpringBootApplication注解

一、@SpringBootApplication是一个组合注解,加在项目启动类上。二、@SpringBootApplication定义:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.C

2020-10-11 13:11:34 2572

原创 SpringApplication的run方法主要代码步骤

一、图片流程图二、主要代码/** * Run the Spring application, creating and refreshing a new * {@link ApplicationContext}. * @param args the application arguments (usually passed from a Java main method) * @return a running {@link ApplicationContext} */.

2020-10-11 12:49:36 561 2

原创 @Configuration注解的proxyBeanMethods属性的作用

一、proxybeanMethods源码注释 /** * Specify whether {@code @Bean} methods should get proxied in order to enforce * bean lifecycle behavior, e.g. to return shared singleton bean instances even * in case of direct {@code @Bean} method calls in user code

2020-10-11 12:31:01 6522 6

原创 springMVC处理请求过程

1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller4、HandlerAdapter处理器适配器去执行Control..

2020-10-10 16:29:51 586

原创 Spring知识点

2020-10-08 14:45:05 107

原创 快速排序算法

快速排序快速排序(Quicksort)是对冒泡排序的一种改进。[1]快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列package com.tree.swagger;import java.util.Arrays;/** * QuickDemo *...

2020-10-06 20:18:42 133

原创 docker一些常用命令

1、查看Docker信息$sudo docker info2、运行一个容器$sudo docker run --name 容器名 -i -t centos /bin/bash新建容器基于centos基准镜像,将会从本地查找,找不到从互联网下载该镜像.docker run 新建镜像命令-i -t 为支持标准输入STDIN,-t分配伪tty终端/bin/bash将会能够看到容器内的shellps、sudo docker run --name hello-world -i -t c.

2020-10-02 09:36:02 110

原创 算法可视化-algorithm-visualizer

在线网站:https://algorithm-visualizer.org/backtracking/hamiltonean-cyclesgithub库:https://github.com/algorithm-visualizer/algorithm-visualizer

2020-10-01 13:18:31 6103

原创 docker搭建mysql主从配置

1.拉取mysql,这里使用5.7docker pull mysql:5.72、在本地主机新建两个配置文件:my-mater.cnf、my-slave.cnfmy-master.cnf:[mysqld]log-bin = mysql-binserver-id = 1my-slave.cnf:[mysqld]server-id = 2注意:自己创建文件所在的路径。后面会用到。3.创建my-master容器,使用本地主机的3307端口映射容器3306,使用my-mas

2020-09-30 11:31:22 234

原创 索引失效的7种情况

0、创建user表,同时创建一个联合索引index_name_email_phoneSET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT

2020-09-25 16:03:41 535

原创 MyBatis的update语句的返回值改为从匹配数改为受影响的记录数,向mysql连接添加useAffectedRows=true一个参数即可。

1、现象mysql更新update语句执行时,没有内容变更的话,会返回“0”;存在内容更新的话,会返回会返回有内容更新的记录数“1”。2、mybatis默认情况,没有内容更新也是返回“1”。这么怎么会是”1“,不应该是”0“???其实默认mybatis返回的是 Rows matched “1”,而不是 “ 0 row affected ”中的 “0”。3、那需要怎么才能让mybatis的udpate语句返回实际更新的记录数? 这里需要修改mysql的连接,添加一个 useAff...

2020-09-25 15:08:45 1683

原创 spring中BeanFactory规定bean完整的生命周期

Bean factory implementations should support the standard bean lifecycle interfaces as far as possible. The full set of initialization methods and their standard order is:BeanFactory实现类尽可能应该支持标准Bean生命周期接口。整套初始化方法及其标准顺序为:一、一系列***Aware接口,为bean注入spring的一些.

2020-09-24 15:40:32 291

原创 Redis利用zset数据结构如何实现多字段排序,score的调整(finalScore = score*MAX_NAME_VALUE + getIntRepresentation(name) )

1、原文:2、使用sql很容易实现多字段的排序功能,比如:select * from user order by score desc,name desc;3、问题:用两个字段(score,name)排序。在redis中应该怎么做?4、使用按分数排序的redis集合。你必须根据你的需要准备分数。finalScore = score*MAX_NAME_VALUE + getIntRepresentation(name) //MAX_NAME_VALUE是getIntRe...

2020-09-24 09:57:39 1613 1

原创 使用ThreadPoolExecutor创建线程池有哪些关键参数

1、ThreadPoolExecutor类的全参数构造方法:/** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoolSize the number of threads to keep in the pool, even * if they are idle, unless {@code .

2020-09-23 22:01:40 664

基于javaEE的的儿童汉字认知统计系统

基于javaEE的的儿童汉字认知统计系统,使用struts2+hibernate+mySql

2016-01-10

空空如也

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

TA关注的人

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