自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 记一次使用outputstream写文件没有flush()导致文件内容缺失

【代码】记一次使用outputstream写文件没有flush()导致文件内容缺失。

2023-09-08 14:36:03 289

原创 使类和成员的可访问性最小化

我们都知道类有三大特性:继承,,多态。本篇文章就是要介绍如何实现类封装的特性。

2023-06-01 22:19:23 86

原创 mybatis执行过程

所以最终mapperProxy没有没有直接调用接口中的方法,而是在invoke方法中执行sql并且返回结果集。mapper.queryUser()。下面分析mapperProxy的invoke()下面是真正的执行方法。

2023-02-19 23:38:49 103

原创 aws学习笔记

aws

2023-01-28 13:42:09 127

原创 org.apache.maven.ProjectCycleException

这个异常是有雨maven中的的循环,一定是maven中产生了循环依赖

2022-04-09 15:52:28 542

原创 stream流的个人分析记录

Java中stream流的分析一、stream流的执行过程1、stream早结束方法执行前,每次都会构造出一个新的stream作为downStrean2、再当前方法是非状态方法时,不会去保存流中的数据,在执行完当前方法,就会继续downSteam的方法3、当当前方法时有状态的方法时,就会使用一个容器保存数据,然后再统一执行4、结束方法执行时会遍历索所有的sourceStream,直到找到最原始的stream,然后依次向下执行,执行规则则是 2和3.二、stream流使用到的设计模式:1、模版模

2022-03-26 17:54:13 530

原创 string是引用类型为什么具有基本类型的值传递特性

1、Java中只有值传递,即使是引用类型,作为形参传入方法时都是将对象的地址复制一份传入方法内部的。2、方法外部的对象在调用方法之前和之后指向的地址空间始终不变。3、string作为形参传入方法内部实际传递的是地址,在方法内部,当指向原string对象的形参改变赋值时,指针也指向了另外一个地址,对原来的地址空间无影响。下面是测试代码:package july.wild.threadpool;/** * @Author: guosai * @Date: 2022/2/28 20:02 * @

2022-02-28 21:06:30 527

原创 threadLocal保证dateformat的线程安全

dateformat是非线程安全的,我们使用threadLocal来保证dateformat的线程安全。代码如下1、设置局部变量private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { return new SimpleDateFormat("yyyy-M

2022-01-10 14:54:30 2958

原创 kmp算法的个人理解

public int[] test01(String ps) {//寻找内部的pattern char[] p = ps.toCharArray(); int[] next = new int[p.length]; next[0] = -1; int j = 0;//j在后移,k在前面,相同才后移 int k = -1; while (j < p.length - 1) { ...

2022-01-05 18:08:58 117

原创 解决redis无法进行远程连接

bind:本机ip ###不要使用127.0.0.1bind:你想通过的ip

2021-08-09 18:10:38 65

原创 为什么总会去调用invoke方法

动态代理为什么每一次都会去调用invoke方法,因为jdk动态代理在字节码层面上生成了接口的类//// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)//package com.sun.proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;i

2021-07-21 16:27:20 426

原创 shorten command line导致的bug

Error running ‘SrmPurchaseCooperationOPApplication’: Command line is too long. Shorten command line for一定要使用classpathfile,

2021-05-14 22:13:41 234

原创 springboot中getConfigurationClassFilter().filter(configurations)方法的解析

List<String> filter(List<String> configurations) { long startTime = System.nanoTime(); String[] candidates = StringUtils.toStringArray(configurations); boolean skipped = false; for (AutoConfigurationImportFilter filter : this.filter

2021-04-09 00:49:25 524

原创 n个数(0-9999)个数中有两个相同的数,找出这两个数

解题思路:首先需要了解如何从2n个数中找出两个不同的数,其他都是两两成对。这个思路是将这2n个数两两异或 (logn),然后可以找出这两个不同的数异或的结果,我假定为res,将res进行如下操作:res &~(res-1) //这个求出来的就是res为1的最低位接下来需要将这2n个数进行分组,然后将每一组都进行异或操作(log(n/2)),这样就求出了这两个数。有了上面的思路我们将20000个数进行异或操作:使用a[10000]数组来表示这10000个数{0,1,2,……a,a,……999

2021-04-02 16:29:01 524

原创 loginProcessingUrl()方法的含义

loginProcessingUrl()这个方法可以看作一个中转站,前台界面提交表单之后跳转到这个路径进行User DetailsService的验证,如果成功, defaultSuccessUrl()如果失败,那么转向failureUrl("/error.html"),我们需要注意的就是<form action="/user/login" method="post"> //这里的action现需要和loginProcessingUrl()中的参数保持一致 同户名 <input

2021-03-28 22:16:33 17172 3

原创 使用idea工具查找bug的一个有效方法

将bug提示的公共信息复制,然后在idea中全局查找:ctrl + shift + f

2021-03-28 20:05:35 385

原创 idea中的不常用快捷键

idea中的不常用快捷键:ctrl+Q:查看某个类的详细信息,类似于jdk文档ctrl+o:查看这个实现类的父类ctrl+F12 :查看当前类的全部方法

2021-03-15 21:49:21 60

原创 rocketmq的生产者和消费者发送消息到接收消息的执行过程

***producer发送message到consumer,然后执行start方法,开启本次事务,通过sendMessageInTransaction发送消息给消费者 消息会被封装到TransactionSendResult中(调用它的set方法),然后executeLocalTransaction方法执行事务并且设置 LocalTransactionState的值,方法结束后使用checkLocalTransac

2021-03-10 11:42:52 803

转载 oauth2第三方登录的过程

2021-03-02 15:46:15 232

转载 记录一次rocketmq-server rocketmq-broker rocketmq-broker的成功安装

安装rocketmq serverdocker run --name namesrv -p 9876:9876 -e “MAX_POSSIBLE_HEAP=100000000” -d rocketmqinc/rocketmq sh mqnamesrv安装rocketmq-broker 这里比较容易犯错docker run --name broker -p 10911:10911 -p 10909:10909 -v /usr/local/rocketmq/broker.conf:/opt/rocketm

2021-02-28 18:22:58 466

原创 centOS阿里云镜像仓库设置

我的centOS中的镜像仓库配置:vim /etc/yum.repos.d/CentOS-Base.repo 链接:https://pan.baidu.com/s/1RPJyVrVycgFvolwO6dUVBw提取码:1234

2021-02-27 09:29:28 513

原创 nginx配置

windows中的映射:京淘电商环境#127.0.0.1 image.jt.com#127.0.0.1 manage.jt.com127.0.0.1 www.jt.com127.0.0.1 sso.jt.com127.0.0.1 localhost#配置Linux环境下的服务192.168.126.129 image.jt.com192.168.126.129 manage.jt.com这是一个正向代理过程:当在浏览器中输入manage.jt.com时,会将一个reques

2021-01-29 18:39:27 78

转载 访问远程数据库

所以我们访问远程数据库需要解决两件事:防火墙:解决方案1、防火墙设置数据库端口号放行:firewall-cmd --zone=public --add-port=3306/tcp --permanent //给mysql端口放行解决方案二:关闭防火墙:systemctl stop firewalld.service //关闭防火墙数据库权限设置:找到mysql中的user表:show databases;use mysql; //查询主机,用户名,用户密码select host,u.

2021-01-28 16:44:46 138

原创 linux中环境变量的写法

说明:修改Linux系统中环境变量需要修改/etc/profile文件命令:vim /etc/profile配置文件变量#set java envJAVA_HOME=/usr/local/src/java/jdk1.7.0_51JAVA_BIN=/usr/local/src/java/jdk1.7.0_51/binPATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAH​OME/bin:PATHCLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME

2021-01-28 14:50:26 319

原创 spring中的线程池

spring:task:execution:pool:core-size:10max-size: 300queue-capacity: 256keep-alive: 600000thread-name-prefix: db-service-task-core-size 表示当线程池中的线程数量没有达到core-size时,没来一个事物,那么创建一个新的线程放入线程池中当再来一个线程,而且线程池中没有空闲的线程时,将新的线程放入queue-capacity中,知道queue-capacit

2021-01-15 14:24:16 137

转载 脏读-幻读-不可重复读

参考:https://juejin.cn/post/6844903665367547918

2021-01-15 10:51:22 35

原创 erlang下载

链接:https://pan.baidu.com/s/1f9kpvlQZpRGJHpraSUjZiw提取码:ayf0

2020-08-08 14:46:14 522

原创 遇到docker不能启动mysql的情况

killall mysqld //杀死所有mysqld进程,来启动docker,如果一直遇到docker端口号被占用 气死了。netstat -lnp|grep 3306lsof -i:3306

2020-08-06 02:46:08 775

原创 ArrayList遇到的坑

ArrayList调用remove()方法之后会自动减小ArrayList的sizefor (int i = 0; i < 9; i++) { Thread remove = list.remove(0);//这里不能使用i,不然会报错for (int i = 0; i < 9; i++) {list.add(thread);}

2020-08-03 09:38:39 154

原创 volatile 实现单例多线程安全

饿汉式:jvm加载类的同时生成实例对象。懒汉式:只有在需要时才会加载类的实例对象。当懒汉式实现单例多线程时会导致线程不安全:需要使用volatile实现单例对象的线程安全下面代码如果不声明instance为volatile类型的,那么就是线程不安全的class Test{boolean flag = false;public static Test instance;Test test(){if(flat == false){synchronized{ if...

2020-08-03 07:33:09 202

原创 序列化反序列化笔记

当使用ois.readObject() 读取输入流中的数据时,必须保证输入流的文件也是serializable(序列化)的,不然会报错:java.io.StreamCorruptedException: invalid stream header: 3C787364

2020-08-03 06:28:22 140

原创 赋值操作==

其中test是静态变量。0号位置指令,调用new方法,3号位置:赋值操作,将new的地址july/wild/demo11/Test01传递给变量test4号位置:执行类初始化7号位置:将栈中的实例对象的地址传递给堆中的静态变量test,并且写回/*在使用jvm编译器优化时,test = new Test01()指令执行顺序可能会发生改变,因为赋值操作不是原子性的;*/...

2020-08-02 23:36:50 655

原创 父类有无参构造方法

如果父类方法有无参构造,那么子类方法在实例化时总会首先将父类初始化

2020-07-29 03:34:38 187

原创 nio实现tcp遇到异常

import org.junit.Test;import javax.naming.ldap.SortKey;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;public class test {@Testpublic void client(){Socke

2020-06-05 02:03:59 173

空空如也

空空如也

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

TA关注的人

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