自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (5)
  • 收藏
  • 关注

原创 gradle

gradle-wrapper.jar 会判断是否下载 wrapper 配置的 gradle,并且将传递参数给下载的 gradle,并运行下载的 gralde 进行构建项目。如果你的电脑安装了 gradle,可以使用 gradle init 去初始化一个新的 gradle 工程,然后使用电脑安装的 gradle 去执行构建命令。Gradle 是基于 task 依赖关系来构建项目的,我们只需要定义 task 和 task 之间的依赖关系,Gradle 会保证 task 的执行顺序。

2023-03-11 22:10:22 499

原创 深入了解Mysql索引

前言欢迎关注我的微信公众号【Mflyyou】获取持续更新。github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。数据库中的索引是为了提高查询效率的,将像字典的目录一样。当我们了解索引的原理之后,就没有必要去死记硬背所谓的 Mysql 军规之类的东西了。本文内容索引的类型:UNIQUE,FULLTEXT,SPATIAL,NORMAL(普通索引)索引为什么会采用 B+ 树结构,为什么不是二叉树、B- 树Mysql 中 B+ 树索引 和

2021-02-17 18:10:48 158

原创 面试必问的Mysql事务和锁,你真的了解吗?

前言欢迎关注我的微信公众号【Mflyyou】获取持续更新。github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。本文内容事务的定义和作用,隔离级别MVCC 是什么,快照读和加锁读锁分类,行锁,意向锁,怎么查看 Mysql 锁的信息悲观锁和乐观锁的使用场景Mysql 的版本为 8.0.17。事务事务会把数据库从一种一致状态转换为另一种一致状态。事务可以由一条 SQL 组成,也可以由一组复杂的 SQL 组成。事务的特性:原

2021-02-17 18:09:15 241

原创 心之所向,身之所往

欢迎关注我的微信公众号【Mflyyou】获取持续更新。github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。对于一个多月都没有双休的奋斗狗来说,明天能睡个懒觉真是太幸福了。最近在赶项目进度,没时间更新博客,计划更新的内容(Mysql 系列,有时间再加更 JUC 相关)等到放假回家慢慢补吧。### 2020,再见2020 年技术上算是有个不小的突破吧,我很满意,哈哈~看完《深入理解计算机系统》、《Linux 内核设计与实现》、《TCP/I.

2021-01-10 23:19:03 508 1

原创 深入理解Mysql数据存储

欢迎关注我的微信公众号【Mflyyou】获取持续更新。github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。前言本文内容Mysql 数据文件说明Mysql 数据逻辑存储架构Mysql 表空间,主要是系统表空间和独立表空间Mysql 数据类型时区对 datetime 和 timestamp 影响,java 中 LocalDatetime 保存时,时间和预期不符的原因分析和解决办法varchar(n) 和 char(n) 保存时,n 能.

2020-12-06 19:29:16 344

原创 Mysql数据备份与恢复

前言看完本文,删库跑路!? 再也不可能发生了!一定要养成风险操作备份数据的习惯,避免恢复数据浪费时间。本文内容:binlog 的作用mysqldump 和 mysqlbinlog 做数据备份和数据恢复。XtraBackup 全量备份和增量备份binlogbinlog 作用及配置Mysql 的 binlog (二进制日志) 是 Server 层的,不管你的存储引擎是什么都可以使用 binlog 。binlog 记录的是数据库 DML 和 DDL 修改的数据内容,也可以用于数据的备份与恢

2020-11-29 02:47:03 274

原创 Mysql 权限管理

前言为了避免删库跑路的事情,权限管理和数据备份是必要。机器环境mysql 8.0.21 x86_64 MySQL Community Servecentos 7Mysql 权限管理Mysql 8.0 可以创建角色,然后将操作数据库、表、索引等的权限赋予给角色,将将角色赋予给用户,也是我们熟悉的 RBAC 模型。当然也可以将权限直接授予用户。用户创建用户-- 用户名称是由 用户名和登录用户的 ip 一同组成的,% 代表任意 ip CREATE USER 'db_dev&#

2020-11-22 14:56:22 217

原创 JUC之ThreadPoolExecutor

前言jdk 1.8 的源码看的差不多了,计划记录一下有点难度的源码理解。我的 jdk 1.8 源码注释 github 地址https://github.com/zhangpanqin/fly-jdk8看源码仁者见仁智者见智,看源码确实可以学到很多东西,不管是理论还是实践。不看源码也不一定什么都不懂。技能水平不够,你看源码收获也不会多,有些思想你理解不了。线程和线程池在 Linux 下通过系统调用 fork 可以产生一个子进程,通过给 fork 传递不同的参数可以让子进程共享父进程的内存。在

2020-11-15 00:20:26 170

原创 你不知道的SpringBoot与Vue部署解决方案

前言前段时间公司外网部署的演示环境全部转到内网环境中去,所有对外演示的环境都需要申请外网映射才能访问某个服务。我用一个外网地址 www.a.com 映射到一个内网地址 http://ip:port,然后在这个地址 http://ip:port 用 nginx 做代理转发到各个组的项目 http://ipn:portn 上去,其中也遇到一些静态资源 404,主要是是解决这个 404 问题。最近又做了一个项目,考虑到用户的体验,减少部署的复杂性,我想了一个办法用 SpringBoot 做 web 服务器映射

2020-11-08 17:20:40 713

原创 java 异步编程

前言在 java 中你不了解异步编程,crud 完全没有问题,但是有的需求你无法优雅的实现。js 也存在异步编程,当你理解了用同步的思维编写异步的代码时,相信你在编程上的造诣又更进一步。大多人都在追捧微服务,可能他们只会用 Ribbon 和 Feign。微服务是一个架构上的选择,当你没有达到架构层次时,我认为你应该更加注重业务上的代码编写,即微服务中单体服务代码的编写。单体服务性能极差,你的微服务整体性能也好不到哪里去,只能通过限流、熔断外加多部署机器来解决并发低的问题。在你想玩微服务之前,并发玩好

2020-11-08 17:15:37 307

原创 你需要知道的TCP/IP

前言TCP/IP 协议 是网络通信的基石,TCP/IP 协议 不是只有 TCP 和 IP 协议,它是整个网络通信中所有协议的简称。维基百科:TCP/IP协议簇维基百科:OSI模型# TCP/IP 参考模型维基百科https://zh.wikipedia.org/wiki/TCP/IP%E5%8D%8F%E8%AE%AE%E6%97%8F# OIS 参考模型维基百科https://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B图片来自 《图解 TC

2020-08-09 13:45:29 621

原创 你不知道的SpringBoot与Vue部署解决方案

前言前段时间公司外网部署的演示环境全部转到内网环境中去,所有对外演示的环境都需要申请外网映射才能访问某个服务。我用一个外网地址 www.a.com 映射到一个内网地址 http://ip:port,然后在这个地址 http://ip:port 用 nginx 做代理转发到各个组的项目 http://ipn:portn 上去,其中也遇到一些静态资源 404,主要是是解决这个 404 问题。最近又做了一个项目,考虑到用户的体验,减少部署的复杂性,我想了一个办法用 SpringBoot 做 web 服务器映射

2020-07-28 02:49:06 319

原创 从linux内核理解Java怎样实现Socket通信

前言前段时间买本书研究了 TCP/IP 通信,弄清楚了计算机之间是怎么通信的。网络通信的的基础就是 TCP/IP 协议簇,也被称为 TCP/IP 协议栈 ,也被简称为 TCP/IP 协议。 TCP/IP 协议 并不是只有 TCP 和 IP 协议,只是这俩用的比较多,就用这两个起的名字。我们目前使用的 HTTP , FTP , SMTP , DNS , HTTPS , SSH , MQTT , RPC 等都是以 TCP/IP协议 为基础。下图针对的是 传输层为 TCP 。Linux 内核 为我们屏蔽

2020-07-26 19:54:04 825

原创 从Linux内核理解JAVA的NIO

title: 从Linux内核理解JAVA的NIOtop: truecover: truetoc: truemathjax: truedate: 2020-07-11 12:29:29password:summary: java niotags: java,java niocategories: java,java nioimg: http://oss.mflyyou.cn/blog/20200712170908.png?author=zhangpanqin前言IO 可以简单分为.

2020-07-12 17:33:08 902

原创 从锁升级的角度理解synchronized

前言在 Java 中为保证线程安全,可以使用关键字 synchronized 保护代码,在多个线程之间同时只能有一个线程执行被保护的代码。synchronized 锁的到底是什么?是对象,还是代码块呢?保证线程安全已经有了 synchronized 为什么又会出现 Lock 呢,二者之间有什么区别呢?synchronized 一定比 Lock 性能差吗?synchronized 的锁升级过程是什么,偏向锁,轻量级锁,自旋锁,重量级锁怎么一步一步实现的?synchronized 使用1、用在静态

2020-07-05 17:06:23 591

原创 java中强软弱虚引用的妙用

前言ThreadLocal 在什么情况下可能发生内存泄漏?如果你想清楚这个问题的来龙去脉,看源码是必不可少的,看了源码之后你发现,实际 ThreadLocal 中实际用到 static class Entry extends WeakReference<ThreadLocal<?>> {} ,谜底实际就是使用了弱引用 WeakReference。本文内容概要强引用:Object o = new Object()软引用:new SoftReference(o);弱引用:ne

2020-07-05 17:05:43 608

原创 从Linux内核理解Java中的IO

前言刚接触 Java IO 的时候, 一直有一个 困惑:为什么 BufferedInputStream 比 FileInputStream 快? 随着对 Linux 了解,这个问题也得到解决。最近也在看 Linux 内核 方面的书,想了解程序在 Linux 上运行的过程,感觉收获还是很多的。基于安全考虑,只有 Linux内核 才能权限去访问计算机的硬件,Linux内核会提供一些接口(系统调用)让我们可以和硬件交互。不过数据一般都是从硬件 到内核态 ,再从 Linux内核 复制到 用户态 进程的内存

2020-07-05 16:48:51 666

原创 java中强软弱虚引用的妙用

前言ThreadLocal 在什么情况下可能发生内存泄漏?如果你想清楚这个问题的来龙去脉,看源码是必不可少的,看了源码之后你发现,实际 ThreadLocal 中实际用到 static class Entry extends WeakReference<ThreadLocal<?>> {} ,谜底实际就是使用了弱引用 WeakReference。本文内容概要强引用:Object o = new Object()软引用:new SoftReference(o);弱引用:ne

2020-06-28 03:04:51 173

原创 你需要了解锁的前提-volatile

前言java 中鼎鼎有名的 AQS 维护 private volatile int state 状态实现了用户态的锁。你如果不了解 volatile ,你看 AQS 的源码应该很难理解为什么Lock 能保证线程安全。volatile 绝对是你打通 java 的任督二脉的首要条件。votaile 的特性很简单,可见性 和 禁止指令重拍,如果你自己写代码验证过这两个特点,接下来的内容应该对你帮助不大。单例模式 中 懒汉式 的写法(DCL)是可以检验你对 volatile 的了解,这也是面试中被问频率较高的

2020-06-20 23:43:45 603

原创 从锁升级的角度理解synchronized

前言在 Java 中为保证线程安全,可以使用关键字 synchronized 保护代码,在多个线程之间同时只能有一个线程执行被保护的代码。synchronized 锁的到底是什么?是对象,还是代码块呢?保证线程安全已经有了 synchronized 为什么又会出现 Lock 呢,二者之间有什么区别呢?synchronized 一定比 Lock 性能差吗?synchronized 的锁升级过程是什么,偏向锁,轻量级锁,自旋锁,重量级锁怎么一步一步实现的?synchronized 使用1、用在静态

2020-06-14 00:50:28 183

原创 你确定 Maven 相关的东西全部了解吗

前言如果你对 Maven 的了解只停留在怎么添加依赖包,你真的需要看接下来的内容。<dependencies> <!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core --> <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core&

2020-06-07 18:36:21 672

原创 再也不用为跨域而苦恼

前言最近没时间写博客,只好把以前写的博客整理到自己的博客网站上去跨域跨域解决的方案有好几种,熟练掌握 CORS 就行了,并晓得一些原理。jsonp 基本告别了,了解即可。将前端的域与后端保持一致就行了,通过 nginx 代理转发。什么情况下会跨域呢?跨域是指从一个源去请求另一个源的资源,浏览器基于完全考虑并遵循同源策略,禁止跨域访问。但是我们可以通过一些手段 JSONP 或者 CORS来实现跨域。跨域只会发生在浏览器中,后端服务之间的接口调用是没有跨域一说的。简单理解:当 url 中的

2020-06-07 12:17:21 830

原创 深入理解 Java 乱码问题

前言这段时间在看 TCP/IP 网络通信这块,好奇我的电脑和局域网中电脑怎样通信,又怎样外网通信,Mysql 相关的博客延期执行了。好久没写博客了,就把以前的博客整理一下,发布到自己的网站上去。乱码问题说难不难,一句话解决,编码和解码采用相同的 charset (字符集)。如果深究,需要了解的东西挺多的:Java 中字符串和 Unicode 的关系Unicode 和 UTF-8、GBK 的关系原码,反码,补码(因为 java 采用补码存储)Java 中字符串在 java 中定义字符串

2020-06-06 19:18:38 731

原创 Mysql 8.0 安装与基准测试

前言2019 年的时候就打算写 Mysql 系列的博客,想对自己学的东西的做一个总结,一拖再拖啊,2020-5 至 202-6 两个月专心写 Mysql 相关的东西。Mysql 我不想只限于增删改查,于是买了两本书《Mysql DBA 修炼之道》《高性能 Mysql》和掘金上一个关于 Mysql 小册子。《高性能 Mysql》还没有看完,一遍写博客,一遍看吧。了解 Mysql 原理相关的东西...

2020-05-03 14:44:09 962

原创 Java 中读取文件内容的 n 中方式

前言刚接触 java 的时候很困惑一个事情 File相对路径,以哪个目录为参照物。随着 io 模型的发展,java 1.7 的 nio,使用 Path、Paths 和 Files 等来方便 io 的操作。ClassLoader 用于获取class 文件 的 io,我们也可以用于获取文件的 io,以便于我们读取文件内容。本文设计内容File ,ZipFile,JarFile 读取相对路...

2020-04-19 17:46:45 756

原创 Nginx-性能优化

前言这篇关于 Nginx 的性能优化,是我查阅资料研究所成,并没有用于实际生产环境,如若你想用于实践,请谨慎测试之后使用。Nginx 性能优化,主要是减少磁盘 io。请求头、请求体、响应体都在缓冲区操作。文件信息的读取减少网络 io。gzip 压缩。前端资源也可以提前进行 gzip 压缩,这样请求的时候就不用再压缩了,减少对 cpu 的损耗。强缓存。减少对后端的静态资源的请求。...

2020-04-12 19:06:27 796

原创 Nginx-包教包会-进阶

前言Nginx-包教包会-入门 一文中介绍了怎么使用 Nginx 搭建 web 服务器。但有的时候呢,我们需要对资源进行访问控制。比如说需要登录才能访问,访问链接具有时间段限制。又比如说防止恶意攻击,使用限流,限制带宽等等我们也会使用 Nginx 作为代理服务器,将我们的动态内容的请求转发到应用服务器去处理。下一期,总结一下 Nginx 相关的配置,给出一个配置模板本文内容基于 n...

2020-04-06 19:00:20 1003

原创 Nginx-包教包会-入门

前言Nginx 作为 web 服务器 以低内存,高扩展,并且轻松单机支持 1-3w (据说可以单机 10w,但没有看到具体的机器配置)的并发链接的特性广受开发人员的青睐。推荐在 linux 系统上使用 Nginx ,这会充分利用 linux 的特性,性能比在 windows 上会更好。本文主要内容:Nginx 简单配置root 和 alias 的区别location 的优先级及验证...

2020-03-29 13:07:56 784

原创 Linux-包教包会系列之-shell

前言还记得当年被 bat 支配的恐惧。比起 shell 脚本写 bat 脚本真的很费劲。既然你能搞明白 java js 等这些高级语言,弄明白 shell 也是很简单的。学会简单的语法,再看看 tomcat 和 nacos 等你熟悉的应用中的脚本,学学别人的技巧,差不多就入门了,对于开发来说,足够用了。主要内容:常用语法运算符特殊变量for,while,case,select 等...

2020-03-22 12:34:19 868

原创 Linux-包教包会系列

前言以前我的不喜欢用 Linux 系统,什么目录啊,文件啊,权限啊,都得命令操作,入门难度较大。但是一旦熟练起来,真不想再去用 windows 了。再加上 shell 脚本,那才叫如虎添翼啊,真的是见识到了什么才是性能,什么才是自动化。Linux 相较于 windows 而言,占用内存更小,因为 windows 的图形化界面比较占内存。Linux 的生态也比较丰富,各种各样的服务端软件都会有 ...

2020-03-21 19:56:39 872

原创 hexo,史上最全搭建个人博客

前言2020 - 2 月底鬼使神差的给我的域名 mflyyou.cn 续费三年,2024 - 4 才到期,就琢磨搭建个人网站,Google 了 hexo 中一个自己比较喜欢的主题 hexo-matery-modified ,然后自己改了改其中的内容。博客的具体效果请观摩 张攀钦的博客本文概要hexo 使用,及怎么去改主题的模板阿里云服务器,搭建 nginx ,配置 nginx 缓存百...

2020-03-07 16:23:12 13908 5

原创 npm 相关,看这篇就够了!

前言最近在研究 npm 组件发布,碰到一些相关问题,算是整理一下。涉及内容package.json 文件介绍.npmrc 的作用及配置公网 npm 组件发布package.json概述package.json 定义了当前项目中 npm包 之间的依赖关系和项目的一些配置信息(项目名称,版本,描述,开发人,许可证 等等)。当说到包管理器,就会遇到 yarn 和 npm ...

2020-03-06 12:01:30 1510

按键精灵圆形渐开线按键精灵圆形渐开线

按键精灵圆形渐开线按键精灵圆形渐开线

2022-03-03

大漠偏色计算 大漠偏色计算V2.2

大漠偏色计算 大漠偏色计算V2.2

2022-03-02

sougou.txt

爬取搜狗 2020-3-23 的所有字条,700 多 w 条。只有 txt,可用于 Elasticsearch 词库扩展。都在一个文件中,我已去重

2020-03-23

爬取搜狗 2020-3-23 的所有字条,700 多 w 条。只有 txt文件

爬取搜狗 2020-3-23 的所有字条,700 多 w 条。只有 txt文件,12 个大类别,文件夹下对应是各个大类别下的小类别,压缩文件 108 m。可用于 es 扩展中文词库

2020-03-23

java 测试驱动开发

java 测试驱动开发,

2019-01-16

空空如也

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

TA关注的人

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