- 博客(11)
- 资源 (8)
- 收藏
- 关注
原创 AI机器学习入门
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。主要研究计算机系统对特定任务的性能,逐步进行改善的算法和统计模型。通过输入海量数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类和预测。它是人工智能核心,是使计算机具有智能的根本途径。...
2022-06-21 13:12:03
3156
原创 基于Maven的SpringBoot工程中,如何使用proguard进行Java代码混淆?
前言代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。为什么要做代码混淆?代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到反向工程的威胁。但是代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证
2022-03-02 17:31:55
3777
原创 Mac中JDK1.8和JDK11双版本自由切换
前言平时开发过程中,有些项目需要依赖jdk8,有些需要依赖高版本jdk11。对于mac开发者而言,如何在不同版本jdk之间来回自由的切换?
2022-03-01 15:45:41
1252
原创 SpringBoot中如何配置Kafka多数据源?
Kafka-spring-boot-starter 是基于 spring-kafka 进行封装的。除了支持原生配置外,还增加了多数据源配置。
2022-02-24 13:49:37
2731
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
1169
原创 Spring 是如何解决循环依赖的?你真的能说清楚吗?
前言在面试的时候这两年有一个非常高频的关于spring的问题,那就是spring是如何解决循环依赖的。这个问题听着就是轻描淡写的一句话,其实考察的内容还是非常多的,主要还是考察的应聘者有没有研究过spring的源码。但是说实话,spring的源码其实非常复杂的,研究起来并不是个简单的事情,所以我们此篇文章只是为了解释清楚Spring是如何解决循环依赖的这个问题。
2021-12-23 13:53:45
382
原创 面试官:线程交替打印,你能实现几种?
前言线程交替打印,想要实现并不难,难的是从不同的角度去实现。需要对Synchronized、LockSupport、ReentrantLock、CAS、Semaphore等并发技术有较为深刻的理解,才能随心所欲的写出相应的代码。那么如何灵活的使用以上技术,实现线程交替打印呢?
2021-12-16 14:39:47
446
2
原创 常用的分布式锁有哪些?
前言单体架构的应用可以直接使用synchronized或者ReentrantLock就可以解决多线程资源竞争的问题。如果公司业务发展较快,可以通过部署多个服务节点来提高系统的并行处理能力。由于本地锁的作用范围只限于当前应用的线程。高并发场景下,集群中某个应用的本地锁并不会对其它应用的资源访问产生互斥,就会产生数据不一致的问题,所以分布锁就派上了用场。常见的分布式锁应用场景秒杀活动、优惠券抢购、接口幂等性校验等常用的分布式锁1. 基于数据库实现分布式锁1.1 悲观锁利用select … where … for
2021-12-01 15:28:38
3512
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
733
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
727
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
883
仿soul微信小程序源码
2021-11-09
两款谷歌jsonview插件(一种原生插件,一种开发者模式插件)
2017-09-27
apache-tomcat-9.0.0.M20
2017-09-05
谷歌清理缓存插件
2017-09-05
PLSQL 美化器规则文件
2017-09-05
VSCodeSetup-1.10.2.rar
2017-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人