- 博客(155)
- 资源 (15)
- 收藏
- 关注
原创 MySQL--关于my.cnf配置文件中的常见参数、参数值及参数说明
【学习背景】本文主要分享一下MySQL日常开发运维当中,关于配置文件my.cnf中[client]、[mysqld]、[mysql]、[mysqld_safe]四个组下比较常见的参数、参数值以及参数值说明。学习目录一、[client]组下参数二、[mysqld]组下参数三、[mysql]组下参数四、[mysqld_safe]组下参数一、[client]组下参数[client]#客户端端口号port=3306 #套接字文件,本地连接使用 socket=/data/mysqldat
2021-10-24 22:30:46
4671
6
原创 Linux--防火墙iptables基本命令、常用端口的开放/阻止/删除
【学习背景】Linux CentOS 6.5版本以前,默认防的火墙是iptables,CentOS6.5版本及以后版本,防火墙都由iptables升级为了firewall,不过底层还是基于iptables的指令,因此还是有必要了解了解。本文主要介绍iptables的基本命令以及如何开放和阻止iptables防火墙常用端口,如22、80、8080、3306等常用端口号。目录一、iptables安装二、iptables基本操作2.1 防火墙服务2.2 systemctl基本命令2.3 service
2021-10-24 18:11:59
45669
6
原创 LeetCode--多数元素(数组排序、Map特性、位运算、摩尔投票)
题目分析原题:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。示例 1:输入:[3,2,3]输出:3示例 2:示例 2:输入:[2,2,1,1,1,2,2]输出:2解题思路数据结构与算法: 数组、Map特性、位运算、摩尔投票实现思路1: 利用数组排序,取中间元素;实.
2021-10-18 18:15:34
1109
原创 LeetCode--只出现一次的数字(位运算、Set集合)
题目分析原题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [3,3,2]输出: 2示例 2:输入: [5,3,1,3,1]输出: 5解题思路数据结构与算法:数组、位运算、Set特性实现思路1:利用^异或位运算特性 a ^ 0 = a; a ^ a = 0; a ^ b ^ a = a ^ a ^ b;实现思路2:利用Se.
2021-10-18 17:04:24
1132
原创 MySQL--新手必备SQL基础知识、事务ACID及隔离级别
❤️您好,我是贾斯汀,本文主要分享数据库的一些基础知识!❤️SQL什么是SQL?【百度百科】结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL有哪几个部分?SQL主要包括DQL、DML、DDL、TCL、DCL、CCL六大部分。DQL(Data Query Language)数据查询语言语法:SELECT说明: 用于查询例子:–普通查询
2021-10-18 16:06:34
2833
22
原创 LeetCode--Java实现704.二分查找、278.第一个错误的版本、35.搜索插入位置
目录学习背景704.二分查找题目分析解题思路代码实现278.第一个错误的版本题目分析解题思路代码实现35.搜索插入位置题目分析解题思路代码实现学习背景本文主要介绍如何通过Java实现LeetCode官方提供的以下数据结构与算法题目:704.二分查找278.第一个错误的版本35.搜索插入位置704.二分查找题目分析原题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回
2021-10-13 17:05:30
1231
原创 Java--线程Thread生命周期的几种状态相互转换及常用API方法说明
❤️大家好,我是贾斯汀,今天主要聊一聊关于线程的瓜!❤️先来看一下线程这张图线程的几种运行状态之间运行流程:看不懂没关系,慢慢来学习,往下学习来继续了解一下~什么是线程?线程是进程的一部分,是程序执行中的一条执行路线;进程就是指程序在其自身地址空间的一次执行活动,是程序独立运行的基本单位;一个进程可以包含多条线程,一个条线程对应一个进程中的一条执行路线。线程的几种创建方式?主要由四种方式创建线程具体每一种创建方式说明及代码实现如下:/** * 创建Thread线
2021-10-07 17:09:05
21493
47
原创 Java--深入理解字符串的String#intern()方法奥妙之处
学习背景进入正文学习字符串的intern()方法之前,先给下这4个问题,看下自己是否都知道答案?1、String s1 = “a” + “b”; //创建了几个对象?2、String s2 = new String(“ab”); //创建了几个对象?3、String s3 = new String(“a”) + new String(“b”); //创建了几个对象?4、String s4= new String(“a”) + new String(“a”); s4.intern(); //创建了
2021-10-05 18:30:41
4530
44
原创 Java--敲重点!JDK1.8 HashMap特性及底层数组+单链表+红黑树知识(建议收藏)
HashMap的特性继承AbstractMap抽象类,实现Map接口以及Cloneable, java.io.Serializable克隆和序列化HashMap底层数据结构是由数组+链表组成的哈希表存储的元素是键值对,key键是唯一的,并且允许为null通过key的hash值计算出需要存放在哈希表中的数组位置index默认初始化容量大小为0,第一次调用put真正给默认大小16,每次扩容oldCap << 1即原来容量的2倍常用的API方法put(key,value)/get(k
2021-09-30 07:00:00
18272
41
原创 Java--几种位运算及常见进制说明(解读HashMap源码必备知识)
您好,我是贾斯汀,今天又来学习啦!【学习背景】学习Java的小伙伴,都知道想要提升个人技术水平,阅读JDK源码少不了,但是说实话还是有些难度的,底层源码实现的原理离不开各种常用的数据结构和算法,很多时候还会用到各种位运算,比如面试必问和工作写烂透了的HashMap,就一个put(key,value)添加元素的底层实现,就用到了各种位运算知识,不对位运算略知一二,你还真读不懂它的源码,所以本文主要对Java中的几种位运算以及常见进制的说明,还会以HashMap底层实现添加元素四部曲展开说明,希望能提高提
2021-09-27 17:05:04
1541
17
原创 Java--深入JDK和hotspot底层源码剖析Thread的run()、start()方法执行过程
【学习背景】今天主要是来了解Java线程Thread中的run()、start()两个方法的执行有哪些区别,会给出一个简单的测试代码样例,快速理解两者的区别,再从源码层面去追溯start()底层是如何最终调用Thread#run()方法的,个人觉得这样的学习不论对面试,还是实际编程来说都是比较有帮助的。进入正文~学习目录一、代码测试二、源码分析2.1 run()方法2.2 start()方法三、使用总结一、代码测试执行Thread的run()、start()方法的测试代码如下:public
2021-09-26 08:00:00
2274
28
原创 Java--JDK自带JVM性能调优工具jconsole远程监控tomcat进程
【学习背景】学习Java的小伙伴,应该都知道JVM,那你听过JVM的性能调优工具之一jconsole吗?啥,不知道??那没关系,带你花几分钟快速了解下,后续有时间可以自己动手去熟悉一下进入正文~java version “1.8.0_221”温馨提示:Oracle JDK从2019年4月16号开始商用商用商用收费,最后一个免费JDK版本是1.8.202官方公告:The Oracle JDK License has changed for releases starting April 16, 20
2021-09-23 13:50:56
19561
33
原创 Gradle--快速上手依赖构建Gradle及多模块定制化统一配置实现
【学习背景】相信学习Java的小伙伴,目前项目中用得最多的两种构建依赖构建方式分别是Maven,两一种是Gradle,至于哪种日出冲天,哪种日薄西山,这个说不准,实际两种都使用得挺多的,只不过Maven会出得早一些,而Gradle是后起之秀,今天就来将一下这个后起之秀Gralde一、单模块(官方demo)1.1 生成demo直接通过SpringBoot官方快速创建一个demo工程 https://start.spring.io/将demo工程导入IDEA或Eclipse等集成开发工具,得到的结构
2021-09-17 06:54:48
20875
59
原创 Java--重新认识八种基本数据类型,以后入职不给公司大佬挖坑
欢迎进来学习的小伙伴~【学习背景】相信很多初学Java的小伙伴或者已经入行的xdm,必然了解Java的八种基本数据类型,Java的数据类型主要分为引用数据类型和基本数据类型,引用数据类型就是平时大家说的万物皆对象Object,而基本数据类型,对应的有八种,大家应该都记得(也可能不知道或者记不全了,哈哈哈)如果你是Java初学者,那么当你去面试Java初级工程师的时候,面试官可能会比较喜欢问这个问题,主要是想考察小伙伴们对基本数据类型了解多少,写代码时会不会乱用基本数据类型,给公司的大佬们挖坑,哈哈哈~
2021-09-14 07:45:47
18650
57
原创 Kettle--MySQL生产数据库千万、亿级数据量迁移方案及性能优化
https://www.kettle.net.cn/一、Kettle环境搭建一、Windows主要用于可视化创建数据迁移用到的ktr转换脚本、kjb作业脚本,以及脚本需要配置的DB2信息、读写性能优化信息等,也可直接在客户端完成不同数据库之间的数据迁移。1.1 安装1.2 使用2.1 ktr转换脚本DB连接2.2 kjb作业脚本二、Linux主要用于测试环境执行脚本读取相关数据迁移ktr转换脚本、kjb作业脚本,完成不同数据库之间的数据迁移。2.1 安装2.1.1 检查JDKket
2021-09-11 08:04:54
46754
107
原创 Shell--脚本中如何通过while或for两种方式实现读写文件操作【工作笔记】
哈喽,大家好,我是贾斯汀,欢迎又来学习啦~ 【学习背景】本文主要介绍Shell脚本中如何通过while和for两种循环方式,实现按行读写文件,分享出来,希望能对您有所帮助~进入正文~目录一、while方式二、for方式一、while方式(1)创建读文件while_read.log示例内容:123哈哈哈秀儿是你吗?666(2)创建while.sh脚本示例内容:#!/bin/sh#定义要读取的文件readfile=/home/mysql/sh/while_rea..
2021-09-10 14:04:48
3196
11
原创 MySQL--loaddata infile、outfile into及mysqldump高效导入导出数据
【学习背景】在日常工作和学习MySQL时,经常涉及到MySQL数据的导入和导出,最常用的方式主要有三种:(1)MySQL命令行source命令(2)MySQL目录bin下的mysqldump工具(3)语法outfile into和load data infile本文将会介绍这三者的使用方法以及一些区别对比,分享出来,希望能帮助到有需要的小伙伴~进入正文~一、构建测试库表创建一个MySQL数据库test和数据表demo_info,方便进行测试~create database if not
2021-09-07 16:20:23
17319
86
原创 MySQL--mysqld、mysql_safe、mysql.server、mysqladmin几种启动和停止服务使用说明
您好,我是贾斯汀,欢迎进来学习的小伙伴~【学习背景】本文对Linux下启动和停止mysql服务最常用的几种方式进行讲解,主要涉及到以下几种文件和命令:(1)mysqld(2)mysqld_safe(3)mysql.server(4)mysqladmin关于这几种文件和命令对mysql服务的启动和停止的使用,本文会分别进行介绍,还有一些关键的事项,比如生产环境对于MySQL服务的启动和停止是非常谨慎的一件事,不是每一种方式都适合生产使用的,需要搞清楚再使用,这里分享出来,希望对有需要的小伙伴有
2021-09-06 07:27:05
19563
183
原创 Java--String、StringBuilder及StringBuffer区别及性能对比
【学习背景】主要是想通过OpenJDK提供的JMH工具测试下String、StringBuilder及StringBuffer字符串拼接的效率如何~关于JMH的介绍及具体使用,我的这篇博文中有介绍:Java–☀️面试官:LinkedList真的比ArrayList添加元素快?❤️本文通过Open JDK JMH带你揭开真相《⭐建议收藏⭐》当然,除了主要验证三者的字符串拼接效率之外,还会对三者做一些区别分析及常见面试问题总结,希望加深自己对这三者的认知,分享出来,也希望能帮助到有需要的小伙伴~
2021-09-03 12:13:52
10369
246
原创 Java--LinkedList真的比ArrayList添加元素快?Open JDK JMH带你揭开真相
【学习背景】欢迎进来学习的小伙伴~不管你是学生,还是职场小白,还是入行1~3年的小伙伴,相信很多小伙伴在面试Java工作岗位时,发现LinkedList和ArrayList这个问题基本是必面的一道题,【面试场景】当面试官问到LinkedList和ArrayList的区别时,可能很多准备得不够充分的小伙伴第一反应的回答仅仅是这样的:LinkedList底层数据结构是链表,添加和删除元素效率比ArrayList高~ArrayList底层数据结构是数组,查询效率比LinkedList高~面试官:哦
2021-08-31 13:25:28
21200
332
原创 MySQL--基于Xtrabackup+Shell+Crond实现的数据库(全量+增量)热备份方案
学习背景不管你是正在上学,还是已经工作了,想必多多少少都听说过删库跑路、rm -rf的情况,主要指的就是被有意或无意的删除掉了数据库的数据,而数据是整个业务最重要的价值体现,如果你的公司或者项目组没有一个成熟的数据库数据备份方案,一旦发生意外,我只能说年轻人,大意了吧,没有备份数据库!!!一、Xtrabackup介绍官方介绍文档简单总结下来就是XtraBackup是Percona旗下的一款产品,支持MySQL数据库的热备份(在线不停机),并且是免费、开源,适用所有MySQL版本,非阻塞、紧密
2021-08-27 11:14:15
36916
194
原创 Shell--计算两个日期的相差天数及输出这两个日期内的所有日期【工作笔记】
定义脚本vim calculateDate.sh如下:#!/bin/shstartDate="20210801"endDate="20210826"echo "起始日期:$startDate"echo "结束日期:$endDate"#将日期转成秒startDateTime=`date -d "$startDate" +%s`endDateTime=`date -d "$endDate" +%s`#两个日期秒数差diff=`expr $endDateTime - $startDate
2021-08-26 12:16:53
6137
7
原创 Shell--如何定义及遍历数组、字符串数组【工作笔记】
脚本定义array.sh:vim array.sh添加内容如下:#!/bin/sh#!/bin/shecho "一、Shell定义数组及遍历数组=========";array=(666 777 888)for value in ${array[@]};do echo $value;done;echo "二、Shell定义字符串数组及遍历字符串数组=========";strArray=("a.del" "b.del" "c.del");for value in ${strArr
2021-08-26 11:22:49
6923
3
原创 Java--反射机制原理、几种Class获取方式及应用场景
目录学习背景一、Java反射机制是什么?1.1 反射原理1.2 举例说明二、Java反射机制中获取Class的三种方式及区别?2.1 三种方式及区别2.2 代码演示区别三、Java反射机制的应用场景有哪些?3.1 应用场景3.2 应用场景实现3.2.1 简单工厂模式3.2.2 简单工厂模式优化(应用场景)3.2.1 代理模式中动态代理(应用场景)学习背景学习Java的小伙伴,可能听过Java反射机制,但是熟悉又有点陌生,本文主要是通过思考面试中经常被问到的几个Java反射机制的问题,再通过理论知识结合代
2021-08-24 07:00:23
39187
212
原创 Linux--用户及用户组管理基本命令
目录学习背景一、用户组管理1.1 用户组查看1.2 用户组添加1.2.1 直接添加用户组1.2.2 指定GID值添加用户组1.2.3 用户组修改1.2.4 用户组删除1.2.5 用户组密码1.2.6 用户组切换1.2.7 管理用户组用户1.2.8 查看用户组下所有用户二、用户管理2.1 用户查看2.1.1 查看所有用户2.1.2 查看活跃用户2.1.3 当前用户所在组2.1.4 指定用户及所在组2.1.4 查看当前登录的用户名2.2 用户添加2.2.1 直接添加用户2.2.2 指定选项添加用户2.3 用
2021-08-12 14:01:40
15582
70
原创 markdown--写博客高清大图水印很烦恼?Github+PicGo实现在线免费图床
目录❤️学习背景☀️一、配置GitHub????1.1 注册GitHub????1.2 创建GitHub仓库????1.3 生成GitHub令牌token????二、配置PicGo????2.1 安装PicGo????2.2 配置GitHub图床????2.3 PicGo上传图片????️????2.4 拷贝图片URL☸(附)常用图标❤️学习背景很多像我一样喜欢写博客分享技术给有需要的小伙伴学习,有时候想要在博文中分享一张高清无水印的图片给小伙伴们(Zhuang Yi Bo B),因此需要将图片插入
2021-08-12 14:01:00
1589
47
原创 nginx--正向代理、反向代理及负载均衡(图解+配置)
学习背景什么是nginx?【百度百科】Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器…那么除了反向代理,nginx支持正向代理、负载均衡以及基于SSL安全证书的HTTPS访问等功能特性~本文主要是介绍是nginx如何配置正向代理、反向代理及负载均衡,如果你自己从来没有安装过nginx,想要先初步了解下nginx的基本安装及最简单的访问,可以看下我的这篇博文nginx–如何基于rpm包进行离线安装及配置(Linux)进入正文~一、正向代理1.1 什么是正向
2021-08-11 12:26:13
65727
69
原创 git--快速上手配置用户名、下载代码、代码提交、修改分支、配置密钥等常用操作
一、配置用户名密码1.1 添加用户名/邮箱名git config --global user.name "your_username"git config --global user.email "your_email@example.com"这里定义的用户名作为你提交代码是的一个标识邮箱一般对应代码服务器上配置获取邮箱示例:GitHub ->个人中心 ->Settings ->Profile ->email获取email对应的邮箱1.2 保存用户名密码使用git
2021-08-06 22:44:24
1954
35
原创 nginx--基于crond定时服务 + logrotate实现nginx日志自动清理及备份
一、logrotate服务介绍logrotate是Linux默认自带日志文件分割工具,结合Linux默认自带的crond定时服务,可实现nginx、tomcat等应用日志的定时自动分割及清理。大大节省服务器磁盘空间,也方便运维人员按日期排查应用相关日志。查看logrotate号logrotate --versionlogrotate重要文件说明/etc/logrotate.conf logrotate主配置文件,默认文件分割配置方案,会加载/etc/logrotate.d/下所有子
2021-08-04 22:50:06
3421
18
原创 Linux-- 定时服务crond VS anacron和 crontab VS anacrontab区别对比
学习背景一般实际的项目中多多少少都可能会涉及到定时任务的场景,比如定时nginx日志清理及备份、tomcat日志滚动、MySQL数据库自动备份、批量解析数据文件导入导出等等,定时任务执行的对象可能是shell脚本等指令文件。而定时任务的实现,在Java工程当中,可以通过Spring Quartz配置定时任务,在Linux服务器可以通过自带的crond服务配置定时任务,方式有很多种,本文主要介绍Linux服务自带的定时服务,有crond、anacron、crontab、anacrontab,这四种服务相互
2021-08-04 11:14:47
4132
10
原创 nginx--基于crond定时服务+shell脚本实现nginx日志自动清理及备份
一、学习背景大家都用过nginx,关于nginx的日志清理、分割及备份,方案有很多不论哪一种,核心原理都是使用kill -USR1 + nginx的PID进程文件来实现本文的nginx日志清理备份方案,采用按日进行。二、脚本实现shell脚本实现思路定义日志保存天数SAVE_DAYS=7重命名当天日志为 mv ***.log ***_日期.log重新打开nginx日志文件kill -USR1 nginx的PID进程文件压缩备份的日志节省空间gzip ***_日期.log清理指定
2021-08-03 19:38:58
15637
8
原创 nginx--基于openssl自颁发SSL证书实现HTTPS协议安全访问网站
学习背景大家在nginx安装(nginx安装教程)后,启动nginx,访问静态页面时,一般都是直接通过HTTP协议进行访问页面,如下图所示:但实际很多场景基于安全方面的考虑,需要基于HTTPS协议进行访问,这篇文章主要是介绍基于openssl生成自颁发证书实现HTTPS协议访问,进入正文之前,先来复习一下,HTTP和HTTPS的区别吧1、HTTP全称Hypertext Transfer Proctocol超文本传输协议,是计算机世界里专门在两点之间传输数据的约定和规范,主要分为Hypertext、
2021-08-02 20:08:35
16202
12
原创 nginx--如何基于rpm包进行离线安装及配置(Linux)
一、安装nginx1.1 资源准备查看系统版本 lsb_release -a这里以Linux Centos 7为例。官方下载安装包 http://nginx.org/en/download.html这里以最新稳定版本nginx-1.20.1为例,具体版本按实际需要进行下载,只要确保生产使用的是稳定版本就行上传安装包示例路径:/usr/nginx/按需要创建对应路径,不过建议最好在nginx用户有权限的目录下,如果没有nginx用户,可以申请下root用户创建一个对应的ngin
2021-08-02 15:52:02
32229
10
原创 Java--基于Java编写的数据库加解密工具包(附)GitHub源码
GitHub开源地址:https://github.com/JustinJava/pwd-encrypt-decrypt(图1)项目应用场景(图2)SHELL脚本应用场景一、背景介绍如上图1和图2标记部分所示,项目中数据库连接配置的密码密文和SHELL脚本中的动态密文,就是基于本工具包实现的~不知道你的项目数据库连接配置,是不是还在用明文密码或者SHELL脚本直接写死数据库连接密码?如果是的话,那不妨试试来了解了解下这个工具包,简单、使用、安全~关于工具包介绍和说明,可以看下我GitH
2021-07-27 09:25:14
18380
32
原创 数组--如何通过【二维数组+稀疏数组】实现五子棋盘,并且保存记忆功能?
一、应用场景通过Java + 二维数组 + 稀疏数组实现一个五子棋盘功能,并且具有保存记忆功能。二、实现原理2.1 二维数组数组大家都知道,如不过数组是一维的属于线性结构,而二维数组则属于非线性结构。创建一维数组int oneArr[] = new int[11];创建二维数组int twoArr[][] = new int[11][11];2.2 稀疏数组稀疏数组是一种特殊的二维数组,采用压缩技术,可以减少占用的空间,降低空间复杂度稀疏数组有多行,但只有三列,分别表示row(
2021-07-25 15:34:21
1315
6
原创 Git--github ssh pull/push报错Connection reset by peer
问题描述:今天push推送代码到github时,推送失败了,从github git clone到本地也报错报错主要内容如下:kex_exchange_identification: read: Connection reset by peerfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.导致
2021-07-11 15:31:50
16728
8
原创 Java--获取xml头encoding编码方式
一、说明标准的xml头部分规范定义如下:<?xml version="1.0" encoding="UTF-8" standalone="no"?>Java代码主要实现的功能就是通过截取xml头中encoding对应的值,即编码方式。二、实现代码package com.justin.test;import java.io.IOException;impor...
2019-11-20 15:48:25
3068
3
Redis-x64-3.2.100.zip
2019-08-10
jeesite-module-core-4.0和devtools-4.0架包
2018-03-02
JSONObject相关依赖架包
2017-12-14
Oracle JDBC连接驱动架包ojdbc14-10.2.0.4.0.jar
2017-09-04
Mysql JDBC驱动架包mysql-connector-java-5.1.30.jar
2017-09-04
Oracle、Mysql jdbc驱动jar架包
2017-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人