自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (8)
  • 收藏
  • 关注

原创 AI机器学习入门

机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。主要研究计算机系统对特定任务的性能,逐步进行改善的算法和统计模型。通过输入海量数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类和预测。它是人工智能核心,是使计算机具有智能的根本途径。...

2022-06-21 13:12:03 2964 1

原创 基于Maven的SpringBoot工程中,如何使用proguard进行Java代码混淆?

前言代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。为什么要做代码混淆?代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到反向工程的威胁。但是代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证

2022-03-02 17:31:55 3583

原创 Mac中JDK1.8和JDK11双版本自由切换

前言平时开发过程中,有些项目需要依赖jdk8,有些需要依赖高版本jdk11。对于mac开发者而言,如何在不同版本jdk之间来回自由的切换?

2022-03-01 15:45:41 1088 1

原创 SpringBoot中如何配置Kafka多数据源?

Kafka-spring-boot-starter 是基于 spring-kafka 进行封装的。除了支持原生配置外,还增加了多数据源配置。

2022-02-24 13:49:37 2522 1

原创 一怒之下,开发了一款IDEA插件[ Mybaits Log Plus ]

起因近期项目开发中,涉及到一个高级查询的功能,SQL长达近百行,排查SQL问题时,需要拼接成可执行SQL。市面存在的Mybatis Log插件,有些收费,有些只适用低版本IDEA,并且经常出现SQL丢失的情况。其中过程,让人痛心疾首。于是,一怒之下,开发了一款Mybatis Log Plus插件。功能介绍还原SQL可以将控制台输出的Mybatis日志,还原成可执行的SQL语句。过滤器开关可以选择过滤器开启和暂停。SQL格式化可以根据需要选择是否格式化sql。自定义规则可以自定义过滤规则。自定义颜色可以根据需

2022-01-19 11:12:47 988

原创 Spring 是如何解决循环依赖的?你真的能说清楚吗?

前言在面试的时候这两年有一个非常高频的关于spring的问题,那就是spring是如何解决循环依赖的。这个问题听着就是轻描淡写的一句话,其实考察的内容还是非常多的,主要还是考察的应聘者有没有研究过spring的源码。但是说实话,spring的源码其实非常复杂的,研究起来并不是个简单的事情,所以我们此篇文章只是为了解释清楚Spring是如何解决循环依赖的这个问题。

2021-12-23 13:53:45 346

原创 面试官:线程交替打印,你能实现几种?

前言线程交替打印,想要实现并不难,难的是从不同的角度去实现。需要对Synchronized、LockSupport、ReentrantLock、CAS、Semaphore等并发技术有较为深刻的理解,才能随心所欲的写出相应的代码。那么如何灵活的使用以上技术,实现线程交替打印呢?

2021-12-16 14:39:47 353 2

原创 常用的分布式锁有哪些?

前言单体架构的应用可以直接使用synchronized或者ReentrantLock就可以解决多线程资源竞争的问题。如果公司业务发展较快,可以通过部署多个服务节点来提高系统的并行处理能力。由于本地锁的作用范围只限于当前应用的线程。高并发场景下,集群中某个应用的本地锁并不会对其它应用的资源访问产生互斥,就会产生数据不一致的问题,所以分布锁就派上了用场。常见的分布式锁应用场景秒杀活动、优惠券抢购、接口幂等性校验等常用的分布式锁1. 基于数据库实现分布式锁1.1 悲观锁利用select … where … for

2021-12-01 15:28:38 3149 1

原创 long和double类型操作的非原子性探究

前言“深入java虚拟机”中提到,int等不大于32位的基本类型的操作都是原子操作,但是某些jvm对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。其实这里的某些jvm是指32位jvm,64位jvm还是原子操作。问题的根源32jvm对于long和double变量,把它们作为2个原子性的32位值来对待,而不是一个原子性的64位值,这样将一个long型的值保存到内存的时候,可能是2次32位的写操作,2个竞争线程想写不同的值到内存的时候,可能导致内存中的值是不正确的结果。 如果多个

2021-11-26 13:23:58 567 1

原创 windows下bat命令启动springboot项目jar包

一、前言 由于项目需要在本地调试,写成bat文件执行xxxx.jar文件,正常我们执行后台命令start %JAVA_HOME%\bin\javaw.exe -jar XXX.jar,是能启动程序,但是后台找到的进程是javaw.exe,如果出现多个jar启动,我们不知道停止那个应用,所以需要对进程起名。方式一:使用拷贝javaw.exe重命名的方式:copy "%JAVA_HOME%\bin\javaw.exe" "%JAVA_HOME%\bin\XXX.exe",这样我们就可以找到具体的进程名称了。方式

2021-11-17 09:21:03 606 1

原创 如何提高GitHub 访问、下载加速

前言 哈喽,大家好。众所周知,GitHub 是程序员的宝藏,里面的好东西实在太多了,可是唯一的缺憾就是访问和下载速度都太慢了,甚至有时候还直接拒绝访问了!接下来就教大家如何快速的访问和下载。一、DNS解析 获取GitHup官网CDN地址首先打开https://www.ipaddress.com/网址,如下图:分别查询三个链接的DNS解析地址github.comassets-cdn.github.comgithub.global.ssl.fastly.net二、修改系统hosts文件 打开终端,编辑host

2021-11-16 22:54:34 809 1

仿soul微信小程序源码

源码有点大,大概80多MB,这款版本据说价值2000,但是因为搭建太麻烦了,没有去研究如何搭建,所以源码是没有任何视频搭建教程的,只有一个简单的文本教程,有需要的可以自行研究如何搭建这款源码,源码不提供任何技术支持。

2021-11-09

两款谷歌jsonview插件(一种原生插件,一种开发者模式插件)

(建议安装第一个) chromein.com_ext_11247安装: 1、安装,打开chrome - 扩展程序 (地址栏输入chrome://extensions/); 2.直接将该插件拖入即可; JSONView-for-Chrome-master安装: 1、安装,打开chrome - 扩展程序 (地址栏输入chrome://extensions/); 2、右上角,选中开发模式; 3、点击”加载正在开发的扩展程序…” 选择插件目录(D:\Download\JSONView-for-Chrome-master\WebContent); 4、安装完成,重新加载 (Ctrl+R)。

2017-09-27

apache-tomcat-9.0.0.M20

apache-tomcat-9.0.0.M20-windows-x64.zip,支持Servlet4.0草案,小伙们,你值得拥有!!!!!!!!!!!

2017-09-05

谷歌清理缓存插件

清理缓存是一款可以帮助用户一键清理chrome缓存垃圾,提高chrome运行速度的谷歌浏览器插件,在chrome中安装了清理缓存插件以后,用户就可以直接点击清理缓存插件按钮,即可快速地清理当前浏览器中的垃圾,而不用再点击chrome扳手 - 设置 - 显示高级设置这么繁琐的操作

2017-09-05

PLSQL 美化器规则文件

Version=1 RightMargin=100//右边距,间接决定了一行的长度 Indent=2//缩进2个字符 UseTabCharacter=FALSE//使用跳格字符? TabCharacterSize=2//跳格字符大小 AlignDeclarationGroups=TRUE//是否对齐变量声明 AlignAssignmentGroups=TRUE//是否对齐变量赋值部分 KeywordCase=1//关键字的风格 0:不变 1 小写 2 大写 3 首字母大写 IdentifierCase=3//标识符的风格 0:不变 1 小写 2 大写 3 首字母大写 UseSpecialCase=TRUE//使用特殊大小写? ItemList.Format=1//元素的格式 0:在同一行上 1:尽量放在同一行 2:一个元素一行 3 :自适应 ItemList.Align=TRUE//是否对齐 ItemList.CommaAfter=TRUE//是否在元素后加上逗号 ItemList.AtLeftMargin=FALSE EmptyLines=0//空行的处理 0:移除 1:并为一行 2:保持原样 ThenOnNewLine=TRUE//then 重起一行 LoopOnNewLine=TRUE//loop 重起一行 //数据操作语句时 DML.LeftAlignKeywords=TRUE//关键字左对齐 DML.LeftAlignItems=FALSE//元素左对齐(包括数据库表字段、表名什么的) DML.OnOneLineIfPossible=TRUE//如果可能在同一行上 DML.WhereSplitAndOr=TRUE// and/or另起一行 DML.WhereAndOrAfterExpression=FALSE//and/or在表达式后面 DML.WhereAndOrUnderWhere=TRUE //and/or在where 后 DML.JoinSplitBeforeOn=TRUE //连接时在on之前分成两行 //插入语句 DML.InsertItemList.Format=1//元素的格式 0:在同一行上 1:尽量放在同一行 2:一个元素一行 3 :自适应 DML.InsertItemList.Align=FALSE//是否对齐 DML.InsertItemList.CommaAfter=TRUE//在元素后加上逗号 DML.InsertItemList.AtLeftMargin=FALSE//元素在左边 DML.SelectItemList.Format=1//元素的格式 0:在同一行上 1:尽量放在同一行 DML.SelectItemList.Align=TRUE DML.SelectItemList.CommaAfter=TRUE DML.SelectItemList.AtLeftMargin=FALSE DML.UpdateItemList.Format=1 DML.UpdateItemList.Align=TRUE DML.UpdateItemList.CommaAfter=TRUE DML.UpdateItemList.AtLeftMargin=FALSE ParameterDeclarationList.Format=1 ParameterDeclarationList.Align=TRUE ParameterDeclarationList.CommaAfter=TRUE ParameterDeclarationList.AtLeftMargin=FALSE RecordFieldList.Format=1 RecordFieldList.Align=TRUE RecordFieldList.CommaAfter=TRUE RecordFieldList.AtLeftMargin=FALSE SplitAndOr=FALSE AndOrAfterExpression=FALSE [SpecialCase]

2017-09-05

VSCodeSetup-1.10.2.rar

Visual Studio Code一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器

2017-03-27

apache-tomcat-8.5.12免安装

apache-tomcat-8.5.12 免安装绿色版 稳定版

2017-03-27

空空如也

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

TA关注的人

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