- 博客(70)
- 收藏
- 关注
原创 nginx http 跳转到https
在您安装了 SSL 证书之后,您需要修改 Nginx 的配置文件以启用 HTTPS 和 HTTP 自动跳转 HTTPS。注意不要在同一server 中同时监听443端口和80端口,会造成过多的重定向问题。),找到您的网站配置块。打开 Nginx 配置文件(通常位于。
2023-10-31 11:07:38 1102
原创 mysql 索引失效,查看执行器优化过程
查看trace的值,是否存在两表联查字段的排序规则和字符集是否相同。注意:第三步和第四步一起执行,避免trace结果被他人覆盖。
2023-10-12 14:43:46 140
原创 详解Java字符串生成过程及存储方式
编译时在常量池创建a和b对象,执行时在堆中创建a和b对象后再生成ab对象。编译时在常量池创建一个a对象,执行时在堆中创建一个a对象,两个对象不等。查看常量池是否存在,存在则返回地址,不存在则在常量池存储堆对象的地址;查询常量池中有没有相同的值,有直接返回,没有在常量池中创建一个。
2023-06-02 17:20:02 220
原创 Linux 安装python3.7.0
Linux 安装python3.7.0链接详情亲测有效:https://www.cnblogs.com/yhongji/p/9383857.html我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自带的python版本有一些系统命令时需要用到python2,不能卸载1、安装依赖包1)首先安装gcc编译器,gcc有些系统版本已经默认安装,通过
2022-04-12 17:35:52 670 2
原创 maven 依赖无法下载解决
问题:maven 依赖无法下载,解决:三方下载到本地,使用本地jar包第一种解决方案:将jar安装到本地仓库mvn install:install-file -Dfile=/Users/Downloads/aliyun-java-sdk-dyvmsapi-1.0.0-SNAPSHOT.jar -DgroupId=com.aliyun -DartifactId=aliyun-java-sdk-dyvmsapi -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar参
2022-04-12 17:31:53 1004
原创 SpringBoot数据库连接池常用配置
在配置文件中添加配置如下(我使用的是多数据源):spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=utf-8spring.datasource.primary.username=testspring.datasource.primary.password=123456spring.datasource.primary.driver-
2022-04-12 17:18:26 5943
原创 File和MultipartFile互转
/** * MultipartFile 转 File * * @param multipartFile * @throws Exception */ public static File MultipartFileToFile(MultipartFile multipartFile) { File file = null; //判断是否为null if (multipartFile.equal...
2022-04-12 17:15:45 17214 2
原创 git stash save -a 引发的 Could not restore untracked files from stash 问题
转载地址:https://www.jianshu.com/p/efb9f2f1bd051.查找stash commit idgit log --graph --all --decorate --oneline--graph意思是以图形的模式显示分支,--all意思是显示所有的commit记录,--decorate参数用来显示一些相关的信息,如HEAD、分支名、tag名等,--oneline就是一个commit只显示一行2.切换到该分支git checkout 第一步查找出
2022-04-12 17:09:41 657
原创 git 中 出现your current branch appears to be broken错误
git 中 出现your current branch appears to be broken错误1.找到最后一次的commit-id查找 .git/logs/refs/heads/分支名, 打开这个文件找到最后一次 commit 的 commit-id2.修复记录文件将找的的commit-id复制到./git/refs/heads/分支名 文件中...
2022-04-12 17:07:52 438
原创 git 创建新分支并且关联到远程分支
针对版本号创建一个分支git checkout -b 新建分支名称 commitId进行代码开发后,提交代码 使用:git pull --rebase提示:关联到远程分支git branch --set-upstream-to=origin/<branch> your_branch直接拉去远程分支git fetch origin dev(dev即分支名)...
2022-04-12 17:05:56 489
原创 git 常用命令
git 常用命令1.初始化.git文件夹 :git init2.关联到远程 :gerrit 使用步骤a.在远程gerrit上创建新的项目b.点击projects选中Generalc.选中clone with commit-msg hookgit clone ssh://账户@服务器地址/创建项目路径 && scp -p -P 29418 账号@服务器地址:hooks/commit-msg 项目名称/.git/hooks/d.在本地打开git粘贴复制内容tip
2022-04-12 17:02:02 1659
原创 Git missing Change-Id in commit message footer解决方法
Git missing Change-Id in commit message footer解决方法原因:项目仓库.git/hooks目录下,commit-msg文件缺失。解决方法:如上所示,依次在项目路径下输入如下命令,即可解决:gitdir=$(git rev-parse --git-dir)# 将xxxxx@xxxx 替换成相应用户名、服务器即可(该命令从服务器拷贝commit-msg文件)scp -p -P 29418 xxxxx@xxxx:hooks/commit-msg
2022-04-12 16:57:18 1013
原创 java pdf 转图片
需求:ppt上传需要转换为图片解决方案1:Java poi 直接转换缺点:特殊文字和高级样式转换后会有差异解决方案2: ppt转pdf,pdf转图片缺点:需要中转为pdf,ppt转pdf要保证样式不会错乱。如果你可以直接支持pdf上传,通过wps将ppt转pdf效果最好优点:样式还原度高pom部分依赖如下: <dependency> <groupId>org.apache.poi</groupId>
2022-03-24 11:39:02 1145
原创 Java 图片压缩
图片压缩优点:1.客户敏捷访问2. 客户的流量不会消耗太大3.减少占用图片存储服务器的空间pom 文件引用<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version></dependency>压缩工具类/
2022-03-17 17:49:34 2470
原创 mysql 字符串截取
MySQL 字符串截取函数:left(), right(), substring(), substring_index()1. 字符串截取:left(str, length) 1 2 3 4 5 6 mysql> select left('sqlstudy.com', 3); +-------------------------+ | left('sqlstudy.com', 3) | +----
2022-03-16 12:02:26 222
原创 Java ppt转图片部署到Linux 乱码
原因:linux不支持宋体解决:1.下载 simsun.ttf文件链接: https://pan.baidu.com/s/1fLE-m1ZL5YivIa1_YbUuIw提取码: 625y2.将文件上传至Linux指定目录下 /usr/share/fonts新建自定义字体目录:mkdir myfonts3.在这个目录下执行命令mkfontscalemkfontdirfc-cache -fv4.重启项目查看效果...
2022-03-14 15:50:50 2194
原创 java poi ppt转图片
pom文件添加 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.12</version> </dependency> <dependency> <groupId>org.apache.poi</g
2022-03-14 15:33:25 1075 1
原创 oss 视频地址打开只有音频
问题原因:OSS作为存储服务,不对音视频文件进行任何处理,但Web浏览器支持解码常见的音视频文件。通过Web浏览器访问OSS中的音视频资源时,Web浏览器对该音视频资源进行解码并播放。如果该视频文件为MPEG4或HEVC等格式(H.265编码),常见的Web浏览器暂不兼容该编码的视频文件,导致浏览器只解码了音频,没有解码视频。解决:查看该视频文件的编码格式,如果该视频为MPEG4或HEVC等H.265编码,请根据实际情况选择如下任一解决方案。注:您可以通过第三方工具,如MediaInfo,来确认视频
2021-09-22 19:04:49 492
原创 Integer 装箱拆箱
面试时遇到这样一个问题输出结果如下:原理:Integer a = 1000;程序执行如下:Integer a = Integer.valueOf(1000);上源码:low = -128,high = 127;public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return..
2021-09-22 19:02:54 81
原创 线程池工具类
工具类public class TaskExecutorUtil { private static final Logger logger = LoggerUtils.getLogger(TaskExecutorUtil.class); private static final ThreadPoolExecutor executor; static { ThreadFactoryBuilder threadFactoryBuilder = new Threa.
2021-08-15 17:40:07 214
原创 深入理解Java虚拟机-垃圾收集器和内存分配策略
为什么要了解垃圾收集和内存分配?答:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到高并发量的瓶颈时,我们必须对这些技术实施必要的监控和调节。程序计数器、虚拟机栈、本地方法栈3个区域随着线程而生,随着线程而灭,栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈的操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域就不需要过多的考虑如何回收的问题,当方法结束或者线程结束时,内存自然就跟着回收了。Java堆和方
2021-08-11 18:01:51 71
原创 深入理解Java虚拟机-OutOfMemoryError异常
除了程序计数器外,虚拟机其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能。Java堆溢出Java堆用于存储对象实例,我们只要不断的创建对象,并且保证GCRoots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会产生内存溢出异常。Java虚拟机堆大小设置参数:最小值:-Xms,最大值:-Xmx内存异常分析:对Dump出来的堆转储快照进行分析。首先确认导致OOM的是出现了内存泄漏还是内存溢出。内存泄漏.
2021-08-11 17:56:23 195
原创 深入理解Java虚拟机-走近Java
Java概述:Java不仅仅是一门编程语言,它还是一个有一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等多种场合。优点:一次编写,到处运行。它提供了一种相对安全的内存管理和访问机制,避免了绝大部分内存泄漏和指针越界问题;它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增长而获得更高的性能。JDK:包含Java程序设计语言、Java虚拟机、Java类库三部分,jdk是用于支
2021-08-11 17:48:09 77
转载 mysql 锁机制和加锁原理
按照锁的粒度划分:行锁、表锁、页锁 按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现) 还有两种思想上的锁:悲观锁、乐观锁1.行锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。有可能会出现死锁的情况。 行级锁按照使用方式分为共享锁和排他锁。共享锁用法(S锁 读锁): 若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上..
2021-08-08 18:43:49 158
原创 mysql事物的隔离级别
SQL标准中的事务四种隔离级别隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Repeatable read) 不可能 不可能 可能 可串行化(Serializable ) 不可能 不可能
2021-08-07 11:15:24 94
原创 Java 值传递和引用传递
在网上看了一些博客发现,大家对这块的解释都很模糊,下面我来谈谈自己的看法。首先对于Java而言值传递还是引用传递不是由参数类型决定的而是由该类型在运行时内存区域决定的。很多博主纠结于String类型为引用类型为什么是值传递?大家都对基本类型是值传递,引用类型属于引用传递没有异议。基本类型在Java虚拟机栈中存储,生命周期同线程相同,方法创建则创建,方法结束则销毁,属于线程私有。引用类型在Java堆中创建,堆中对象所有线程共享,所以在方法中修改引用类型的值,在其它地方会同步更新。Str
2021-08-06 10:09:14 554
原创 HashMap 实现原理详解
hashMap 是实现Map接口的常用数据结构,底层实现为hash表(散列表)所以要了解hashmap需要先了解hash一、Hash 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。 这个映射函数称做散列函数,存放记录的数组称做散列表。实现Hash算法的关键:实现hash算法 、解决hash冲突1.Hash函数 首先来说ha.
2021-08-06 09:47:34 182
原创 mysql Date 函数 (日期函数)
下面的表格列出了 MySQL 中最重要的内建日期函数:函数 描述NOW() 返回当前的日期和时间CURDATE() 返回当前的日期CURTIME() 返回当前的时间DATE() 提取日期或日期/时间表达式的日期部分EXTRACT() 返回日期/时间的单独部分DATE_ADD() 向日期添加指定的时间间隔DATE_SUB() 从日期减去指定的时间间隔DATEDIFF() 返回两个日期之间的天数DATE_FORMAT() 用不同的格式显示日期/时间常用日期格式:%
2021-07-30 15:01:16 493
原创 mysql清空表
mysql清空表可以用delete和truncate两个命令来完成:delete ① 语法:delete from table_name; ② 示例:DELETE FROMorder; truncate ① 语法:truncate table table_name; ② 示例:TRUNCATE TABLEorder; 区别 ① 使用delete清空表中的记录,内容的ID仍然从删除点的ID继续建立,而不是从1开始。而truncate相当于保留了表的结构而重新建立了一张同样的新表。delete的效果..
2021-07-30 14:56:06 4145
原创 mysql配置文件my.cnf添加max_connections不生效
业务场景:mysql连接报错 too many connections解决问题步骤:1.查看mysql最大连接数量:show variables like "max_connections";2.查看正在执行的sql语句:show processlist;3.设置mysql的max_connections参数a.使用shell登录Linux服务器b.修改mysql配置文件vim /etc/my.cnf // 添加max_connections = 期望值c.修改完成重启my
2021-07-30 14:55:03 912
原创 mysql count 指定字段 数量
1.业务场景mysql 查询某一字段的特定值的数量样例1:qvalue:查询的字段名称select count(qvalue = '特定值1' or null),count(qvalue = '特定值2' or null),count(qvalue = '特定值3' or null)from table注意:大家肯定会疑问为什么count 要使用 or null原因:count 计算时,当值为null时不会计数,count(qvalue="特定值") 返回值为true或者fa
2021-07-30 14:53:51 5128
原创 Java移位运算符
前言我们都知道对于有符号数据类型,二进制最左端的数字为符号位,0代表正,1代表负,这里先介绍几个概念逻辑左移=算术左移:高位溢出,低位补0逻辑右移:低位溢出,高位补0算术右移:低位溢出,高位用符号位的值补比如一个有符号位的8位二进制数10101010,[]是添加的数字逻辑左移一位:0101010[0]逻辑左移两位:101010[00]算术左移一位:0101010[0]算术左移两位:101010[00]逻辑右移一位:[0]1010101逻辑右移两位:[00]101010算术
2021-07-29 11:26:15 146
原创 Java LinkList 底层实现及原理
LinkList属于双向链表结构如图查询:逻辑:先校验下标index是否越界,在判断下标在数组前还是后决定从前面轮询还是后面轮询判断方式:size>>1>>:java 位移符(详见:)底层代码public E get(int index) { checkElementIndex(index); return node(index).item; }//校验下标是否越界private void checkEl..
2021-07-29 11:18:31 603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人