自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(315)
  • 收藏
  • 关注

原创 jvm 多线程 公共变量 关键字 volatile (底层原理) 同步问题分析

1.jdk1.8 以前 是 总线加锁。性能很低。如果多个线程都用同一个变量,会锁定当前线程,直到变量从主内存修改后,再执行其它线程。2.mesi缓存。

2019-12-11 15:55:09 151

原创 java 冒泡排序

【代码】java 冒泡排序。

2024-04-12 18:40:44 227 1

原创 JVM 垃圾回收

并行回收GC(Parallel、Parallel Scavenge) -XX:+UseParallelGC || -XX:+UseParallelOldGC(可相互激活) 串行收集器在新生代和老年代的并行化。并发标记清除GC (CMS) -XX:+UseConcMarkSweepGC 自动打开 -XX:+UseParNewGC 是一种以获取最短回收停顿时间为目标的收集器。用户线程和垃圾收集线程同时执行(不一定是并行,可能交替执行),不需要停顿用户线程,互联网公司多用它,适用于对响应时间有要求的场景。

2024-04-12 16:02:10 312

原创 JUC 自定义线程池

【代码】JUC 自定义线程池。

2024-04-11 14:42:59 216

原创 JUC CountDownLatch

【代码】JUC CountDownLatch。

2024-04-10 10:24:02 105

原创 springboot获取参数基本注解

【代码】springboot获取参数基本注解。

2024-03-27 10:25:18 84

原创 oracle 误删数据 delete 恢复

恢复数据

2024-03-19 15:45:17 284

原创 git pull 无法拉取相关代码

git pull 无法拉取相关代码。

2024-03-15 16:25:21 86

原创 springboot 配置多数据源 注解方式

多数据源配置

2024-03-08 17:58:25 66

原创 vue发布到npm的组件重新使用的时候样式缺失

【代码】vue发布到npm的组件重新使用的时候样式缺失。

2023-11-24 15:55:40 532

原创 cas mysql8需要注意的问题

【代码】cas mysql8需要注意的问题。

2023-10-24 17:46:50 86

原创 sql中多行insert数据格式

【代码】Gbase中多行insert数据格式。

2023-08-30 16:11:26 136

转载 MySql的安装忘记root密码

【代码】MySql的安装忘记root密码。

2023-08-04 14:27:27 127

原创 idea 关联 svn

【代码】idea 关联 svn。

2023-06-09 15:42:05 376

原创 命令停止端口

【代码】命令停止端口。

2023-06-05 17:32:46 132

原创 编译springboot源码

下载https://github.com/spring-projects/spring-boot/tags?after=v2.3.3.RELEASEjdk1.8+ maven 3.5+java -versionmvn -version解压缩,然后cmd到springboot目录执行命令如下mvn clean install -DskipTests -Pfast

2022-04-24 11:23:31 528

原创 vue + jspdf

vue 页面 <el-button @click="testPdf">导出PDF文件</el-button> <div id="container" > <el-button type="danger">危险按钮</el-button> <span>{{ t1 }}</span> </div>js代码methods: { testPdf() { // this.dialogVis

2022-01-19 18:27:36 2718

转载 tomcat 启用https协议

记录:keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\homes\tomcat.keystore -validity 36500命令解释:使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件想要存放在“D:\homes\tomcat.keystore”,口令为“123123”。参数简要说明:“D:\homes\tomcat.keystore”含义是将证书文件的保存路径,证书文

2021-11-06 15:03:55 916

转载 SpringBoot AOP @Pointcut 切入点表达式排除某些类

只做记录:@Pointcut("execution(* com.demo.service.*.*(..)) && !execution(* com.demo.service.dbservice.*(..)) ") @Pointcut("execution(public * com.demo.service.*.*(..))")public void serviceMethods() {}@Pointcut("execution(public * com.demo.service

2021-10-28 14:37:48 936

原创 Ant 表单中label-col和wrapper-col

:label-col='{span:5, offset:1}' :wrapper-col='{span:18}'意思如下:总共: 5+1+18 = 24 份。文字label部分占比 总共 6/24,宽度5,向右移动1.input部分占比 18/24.

2021-10-09 10:59:12 7290

原创 application.yaml 动态获取 pom.xml中的值

<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin>

2021-08-05 17:31:30 848

原创 SpringBoot mybatis_plus启动报错

最近在学习 springboot mybatisplus 遇到启动报错的问题。最主要的是:<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency>引入 plus的包以后,其他的

2021-07-25 15:19:45 1773

原创 最近在复习springboot源码,发现问题只做记录

diea下载源码提示Sources not found for在控制台执行:mvn dependency:resolve -Dclassifier=sources

2021-07-07 10:53:44 77

原创 volatile 可见性

class Mydata { // volatile 关键字 可见性 volatile int number = 0; public void addTo60() { this.number = 60; }}/** * 1. 验证 volatile 可见性 * int number =0; number 变量之前根本没有添加 volatile关键字 */public class VolatileTest { public static

2021-04-27 13:44:02 86

原创 node 插件 nodemailer 发送邮件

node 使用插件 nodemailerconst nodemailer = require("nodemailer");// create reusable transporter object using the default SMTP transport// 创建发送邮件对象let transporter = nodemailer.createTransport({ host: "smtp.qq.com", // 发送方邮箱 node_modules\nodemailer\li

2021-04-23 10:11:20 250

原创 vue v-for form在element中如何校验

直接上例子:第一种:<template> <div> <div v-for="(item,index) in datas.realForm" :key="index"> <el-form ref="form" :model="datas" label-width="160px" :rules="rules"> <el-form-item label="名字" :rules="rules.name" :prop

2021-04-20 23:15:30 616

原创 git 本地代码全丢失(git中都没有)

吓死我了。。只做记录。ideaidea回退功能(强推)右键项目,右键:

2021-04-12 01:26:46 1295 1

原创 APPLICATION FAILED TO START 错误

错误:APPLICATION FAILED TO STARTDescription:The Tomcat connector configured to listen on port 8085 failed to start. The port may already be in use or the connector may be misconfigured.直接解决方案:C:\Users\Administrator>netstat -anoTCP 0.0.0.0:8085

2021-04-08 14:13:02 2526

原创 redis 启动

1. redis-server.exe redis.windows.conf2. redis-cli.exe -h 127.0.0.1 -p 6379输入密码:3. auth 123456

2021-04-07 10:00:46 75

原创 webpack给css添加前缀自动适应浏览器

安装 postcss-loader autoprefixer 插件npm i -D postcss-loader autoprefixer配置 webpack.config.js{ test: /.styl(us)?$/, use: [ 'style-loader', 'css-loader', 'postcss-loader', // 加载一个 autofixer 的插件 'stylus-loader', // st

2021-02-19 15:04:41 420 1

原创 删除 node_modules 文件夹使用命令

安装:npm install rimraf -g使用:rimraf node_modules

2021-02-10 23:13:33 440 1

原创 js ‘true‘==true ; 为什么返回false?

在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较;首先 ‘true’ == true 符合规则 1,这样就转化成了对 ‘true’ == 1 进行求值此时表达式符合规则 2如果一个

2021-02-09 14:57:24 1109

原创 js generator函数 yield

不带返回值的function *show() { alert('a'); // a let a = yield; alert('b'); // b alert(a); // 5}let fun1 = show();fun1.next(12); // 第一个next没法给yield传参fun1.next(5); // 5带返回值的function *show1() { alert('a'); yield; alert('b');

2021-02-07 15:42:55 95

原创 defineProperty,defineProperties,getOwnPropertyDescriptor,getOwnPropertyDescriptors

一个例子根据结果查看每个方法的作用。window.onload = function () { var obj = new Object(); Object.defineProperty(obj, 'name', { configurable: false, writable: true, enumerable: true, value: '张三' }) c

2021-02-06 22:57:43 169

原创 vue render函数

App.vue<!-- render 函数 --><Heading tag="ul"></Heading> // 向下传递ul 标签 与this.tag 对应<script>import Heading from './views/Heading.vue';export default { name: 'App', components: { Heading } ......}</scrip

2021-02-06 22:20:43 94

原创 vue.extend() 动态创建组件

toast.jsimport Toast from "./toast.vue";import Vue from 'vue';const ToastConstructor = Vue.extend(Toast);function showToast(text, duration=2000) { const toastDOM = new ToastConstructor({ el: document.createElement('div'), data() {

2021-02-02 20:06:45 669

原创 小白 githup上传文件步骤

直接上步骤:安装git。略过1.git bash 进入工程目录:git init2. 配置远程仓库:(注意:变成 /) git remote add origin https://github.com/mhbsoft/star_pro.git 出现问题直接删除: git remote rm origin 重新配置: git remote add origin ...

2021-01-27 11:47:40 83

原创 java,mysql 悲观锁,乐观锁

悲观锁: pessimistic lock,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。这样别人想拿这个数据就会block直到它拿到锁。sysnchronized类似。 数据库悲观锁使用 for updateselect * from sys_role where sysId=#{sysId} for update**乐观锁:**optimistic lock, 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断以下在此期间别人有没有去更新这个数据。

2021-01-27 10:37:37 165

原创 vue 中 数组劫持

vue中对象劫持:Object.defineProperty(obj, prop, descriptor)1 obj:必需。目标对象2 prop:必需。需定义或修改的属性的名字3 descriptor:必需。目标属性所拥有的特性这个介绍的比较多,就不展开了。vue中数组劫持:let state = [1, 2, 3]; // 变成响应式数据let originalArray = Array.prototype; // 数组原来的方法let arrayMethods = Object.

2021-01-26 19:29:53 791

原创 js 中 event loop

简单理解:正常代码执行顺序。带有异步调用,定时任务的代码执行顺序。(setTimeout)// 加入到 消息队列(Message Queue)中,最后执行。带有promise任务的代码执行顺序。 // promise 的 then 回调函数入队到 微任务队列(Microtask Queue)中。调用栈(call stack)消息队列(Message Queue) // 可存储 setTimeout 执行函数的内容微任务队列(Microtask Queue) // promise 的

2021-01-26 11:45:48 58 1

空空如也

空空如也

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

TA关注的人

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