- 博客(32)
- 收藏
- 关注
原创 MySQL(高级、面试) —— (MySQL优化 一)Explain 详解
本篇主要是介绍MySQL Explain 的各个字段的意思,以及简单的案例分析。然后再第二篇中我们再来分析,explain的显示结果是如何指导我们进行SQL优化。
2022-08-08 01:14:45 1424
原创 MySQL - 一条 SQL 语句是如何执行的(SQL执行详解)
天天和数据库打交道,一天能写上几十条 SQL 语句,但你知道我们的系统是如何和数据库交互的吗?MySQL 如何帮我们存储数据、又是如何帮我们管理事务?....是不是感觉真的除了写几个 「select * from dual」外基本脑子一片空白?这篇文章就将带你走进 MySQL 的世界,让你彻底了解系统到底是如何和 MySQL 交互的,MySQL 在接受到我们发送的 SQL 语句时又分别做了哪些事情。...
2022-08-06 18:47:47 1576
原创 MySQL - 通俗易懂的MVCC
MVCC采用非阻塞的方式解决Mysql InnoDB 读写并发的冲突,实现Mysql读已提交(RC),可重复读(RR)的事务隔离级别。实现的主要方式是:通过undolog版本链 + Read View 的方式实现。
2022-08-03 14:38:03 2219
原创 史上最全ThreadLocal 详解(二)
目录1、ThreadLocal 使用原理2、ThreadLocal 内存泄露的原因3、 为什么不将key设置为强引用3.1 、key 如果是强引用3.2、key 如果是强引用3.3那么为什么 key 要用弱引用3.4 如何正确的使用ThreadLocal1、ThreadLocal 使用原理 前文我们讲过ThreadLocal的主要用途是实现线程间变量的隔离,表面上他们使用的是同一个ThreadLocal, 但是实际上使用的值v......
2022-05-25 08:54:59 23687 41
原创 jdk8 时间实用工具类
jdk8 时间工具类。注:大部分借鉴别人(忘记链接了),少部分自己添加,觉得还不错public class LocalDateUtil { /** * 显示年月日时分秒,例如 2015-08-11 09:51:53. */ public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * 显示年月日时分秒,例如 2015-08-.
2021-03-16 18:53:09 283
原创 java项目部署启动脚本
export JAVA_HOME=/usr/java/jdk1.8.0_202export PATH=$JAVA_HOME/bin:$PATHexport LANG=en_US.UTF-8export NLS_LANG=AMERICA_CHINA.ZHS16GBKexport TMP_DIR=/data/app/temp/XXXX项目名称 #项目名称GC_TUNE="-XX:NewRatio=3 \-XX:SurvivorRatio=4 \-XX:TargetSurvivorRatio=.
2021-03-12 16:52:41 449
原创 史上最全ThreadLocal 详解(一)
史上最全ThreadLocal 详解目录史上最全ThreadLocal 详解一、ThreadLocal简介二、ThreadLocal的作用三、ThreadLocal与Synchronized的区别四、ThreadLocal的简单使用五、ThreadLocal的原理5.1、ThreadLocal与Thread,ThreadLocalMap之间的关系六、ThreadLocal 常见使用场景一、ThreadLocal简介ThreadLocal叫做线程变量,...
2020-12-18 12:03:10 360312 91
原创 分布式文件服务器minio安装部署及https证书安装
一、下载安装文件miniowget https://dl.minio.io/server/minio/release/linux-amd64/minio下载该文件,可能网络慢,不好下载,这时候,可以通过下载工具下载minio安装包到本地,直接复制wget 后面的链接即可如果太慢可以用我的网盘地址:补上安装minio服务 1、将文件上传到服务器,我的放在/opt/minio下,没有的话自己创建文件夹2、将minio文件放在minio下,在minio文件夹下创面data ,(mkdir d
2020-08-17 16:48:38 7691 13
原创 minio PKIX path building failed SSL证书验证失败的问题解决
背景 1、我们项目要集成到第三方平台上,访问方式使用的是https,开始集成是minio服务器是http,上传和下载过程中会出现不安全的问题。后面把minio服务改为https。如何改自行百度。 2、但是在我们使用minio https服务的过程中,因为我们使用的SSL证书是自己生成的,下载文件可以,但是在上传文件是会发生PKIX path building failed 的问题。javax.net.ssl.SSLHandshakeException: sun.security...
2020-08-17 16:27:26 5082 10
原创 手把手教你读mybatis源码(二)——Mybatis框架结构
一、什么是Mybatis?1、MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。2、MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。3、MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。https://mybatis.org/mybatis-3/z h/index.html上面链接是官网链接,
2020-06-12 21:04:34 1954
原创 手把手教你看Mybatis源码(一),源码阅读环境搭建
我这里采用的是mysql数据库,当然你用其他数据库也一样。一、数据库的建立建表语句:DROP TABLE IF EXISTS `payment`;CREATE TABLE `payment` ( `id` bigint(20) NOT NULL, `serial` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE =
2020-06-12 11:48:55 6370
原创 WeBService AXIS2根据wsdl文件生成接口及接口的调用
1、下载axis2-1.6.2-bin.zip 文件,并解压2、配置环境变量 D:\开发文档\axis2-1.6.2\bin3、将要转换的wsdl文件加放到bin目录下4、shift + 鼠标右键 在此处打开命令窗口5、在cmd窗口输入命令 wsdl2java -uri wsdl文件名 -p 文件地址 例如:wsdl2java -uri B_FScanDF.w...
2018-12-03 15:47:53 1474
原创 web项目文件下载
在web项目中,难免设计文件下载与上传,对于文件上传下载使用频繁的应用需要依靠数据库存储具体位置,而对于上传下载不那么频繁的应用,则只需要将文件放在resource目录下,对于这种情况,我们要了解的就是如何下载,以及如何去获取resource下的文件路径。 放在resource/static 目录下文件的获取SprintBoot 打Jar包环境下使用如下方式,亲测有效 Resou...
2018-11-27 17:19:58 726
原创 Redis 在linux 上的安装
Redis 在linux 上的安装如果可以的话,linux的使用,我想每个程序员都必须要学会,尤其是后台开发。下面简单的介绍下如何在unbuntu上安装redis,并通过Windos上安装Redis Desktop Manager 去访问。Redis简介redis 是一个基于内存的高性能key-value数据库。Redis本质上是一个Key-Value类型的内存数据库,很像memcac...
2018-11-14 12:48:58 245
原创 Maven踩坑,解决Maven99%的问题(从代码库中拉项目下来,别人家的没问题,而你的有问题)
当你从代码库中拉项目下来,别人家的没问题,而你的有问题,jdk配置问题就不说了,自己弄好。如果你出现ClassNotFind 或者NotFindMethod 之类的错误,那肯定是相应的jar没有正确下载。步骤一、在setting.xml 文件中 配置远程仓库地址,这里推荐阿里的中央仓库<mirrors> <mirror> <id&...
2018-11-05 11:24:04 2691 3
原创 7. 反转整数
题目:给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。两种解题方法,代码未优化,如下:def rever...
2018-10-09 23:18:14 155
原创 13. 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5...
2018-10-07 20:31:54 195
原创 2的n次幂,判断一个数是否能写成m个2相乘,LeetCode 231号问题 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
2的n次幂,判断一个数是否能写成m个2相乘,LeetCode 231号问题给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false解决思路:2的n次幂,想想下他的的2进制表示方式,它只能有一个位为1,其余位都为零,...
2018-09-19 10:01:05 2419
原创 455. 分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj &gt;= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。一...
2018-08-17 17:23:26 510
原创 愿望
最近一直在学习机器学习相关的东西,了解了相关算法,但其实严格说还没有入门,希望在接下来的日子里,再接再厉,巩固知识后能够写点心得总结。...
2018-08-17 10:05:29 201
原创 20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: &quot;()&quot;输出: true示例 2:输入: &quot;()[]{}&quot;输出: true示例 3:输入: &quot;(]&qu
2018-08-16 18:16:40 151
原创 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4如果撇开要求不适用额外空间,这题目还是挺简单我的思路使用map,key值为元素值,value为个数...
2018-08-16 16:04:21 129
原创 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...
2018-08-16 14:50:32 783
原创 旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2:输入: [-1,-100,...
2018-08-16 10:23:27 390
原创 存在重复 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
存在重复 给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1] 输出: true 示例 2:输入: [1,2,3,4] 输出: false 示例 3:输入: [1,1,1,3,3,4,3,2,4,2] 输出: true**这个 相对简单,两...
2018-08-15 14:36:50 9657 5
原创 从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2:...
2018-08-15 12:56:22 283
原创 leetcode 720 词典中最长的单词 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返
题目描述: 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入: words = ["w","wo","wor","worl", "world"]输出: "world"解释: 单
2018-08-09 15:33:15 2513
原创 StackTraceElement的简单使用
一、什么是StackTraceElementStackTraceElement e(堆栈轨迹)存放的就是方法调用栈的信息,异常处理中常用的printStackTrace()实质就是打印异常调用的堆栈信息。二、StackTraceElement的简单使用 StackTraceElement表示StackTrace(堆栈轨迹)中的一个方法对象,属性包括方法的类名、方法名、
2017-05-13 15:19:52 1139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人