- 博客(43)
- 收藏
- 关注
原创 线程切换步骤及wait() notify() notifyAll()
*wait()**方法是让当前线程等待的,即让线程释放了对共享对象的锁。wait(longtimeout)方法可以指定一个超时时间,过了这个时间如果没有被notify()唤醒,则函数还是会返回。如果传递一个负数timeout会抛出IllegalArgumentException异常。**notify()**方法会让调用了wait()系列方法的一个线程释放锁,并通知其它正在等待(调用了wait()方法)的线程得到锁。
2023-12-20 15:10:59 137
原创 进程与线程的区别与联系
线程切换后能恢复到正确的执行位置字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。虚拟机栈:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。
2023-12-20 09:32:24 176
原创 springboot 整合mybatis-plus 以及使用代码生成器(新)swagger3.0使用
出现这次错误,是没加freemarker依赖,加入即可。生成要是@GETTER爆红,是缺少lombok包导入即可。生成的代码中根据自己选择是否使用Swagger。嗯嗯应该很全够用了,剩下的自己看官网去吧。
2023-08-29 16:10:07 657
原创 ubuntu设置国内源 设置环境变量 跨系统复制
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backupdeb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.c
2023-05-08 17:38:56 574 1
原创 Class.forName()用法详解
1.什么是class对象类是程序的一部分,每个类都有一个class对象。换言之,每当编写并且编译了一个新类,就会产生一个class对象(更恰当的说,是被保存在一个同名的class文件中)。为了生成这个类的对象,运行这个程序的Java虚拟机(jvm)将使用被称为“类加载器”的子系统。所有的类都是在对其第一次使用的时候被加载到JVM中。如当程序创建对第一个静态成员的引用时,就会加载这个类。或者使用new关键字创建新的对象的时候。因此java程序在它运行之前并非完全加载,其各个部分是在必须的时候才加载的。
2022-04-26 10:30:46 5876
原创 nginx配置
1 从官网下载nginx官网2 解压到本地文件夹(注意路径不能有中文)3 配置环境变量 不会请百度4 配置nginx-1.20.2\conf文件夹下nginx.conf文件#user nobody;# 全局块# 值越大,可以支持并发的处理量越多worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid
2022-04-18 17:55:22 2715
原创 1——SpringCloud 服务注册与发现(Eureka、Consul)
SpringCloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud0 CloudFoundry、Spring
2022-04-15 14:46:21 178
原创 在循环中,列表中添加字典出现值重复的问题
在循环中,列表中添加字典出现值重复的问题首先列表跟字典在创建的时候都是先在堆中开辟一块空间,栈中存放的只是空间的引用,而列表的push操作只是把字典的引用添加到列表中。这么做的目的是为了提高效率,说白了就是浅拷贝。因此在你修改字典值时索引对应的值也发生了改变。解决方法this.multipleSelection.forEach((item, index) => { item = {} // 关键点!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ite
2022-03-23 15:20:24 349
原创 java多线程
线程、进程、程序、并发、并行的概念程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。-------生命周期线程:进程可进一步细化为线程,是一个程序内部的一条执行路径线程:线程(一个程序可以有多个线程)程序:静态的代码 进程:动态执行的程序线程:进程中要同时干几件事时,每一件事的执行路径成为线程。并行:多个CPU同时执行多个任务,比如:多个人同时做不同的事
2022-03-22 11:07:28 134
原创 useGeneratedKeys=“true“ keyProperty=“id“ 插入数据后返回主键
Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。useGeneratedKeys =true 这个表示插入数据之后返回一个自增的主键id给你对应实体类中的主键属性。通过这个设置可以解决在主键自增的情况下通过实体的getter方法获取主键(当然还需要keyproperty指明数据库中返回的主键id给实体类中的哪个属性)。k
2022-03-18 15:14:02 2998 1
原创 @transactional与 try catch的爱恨情仇
如何开启@transactionalservice类标签(一般不建议在接口上)上添加@Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方式。@Transactional 注解只能应用到 public 可见度的方法上。 如果应用在protected、private或者 package可见度的方法上,也不会报错,不过事务设置不会起作用。默认情况下,Spring会对unchecked异常进行事务回滚;如果是checked异常则
2022-03-17 15:41:05 1124
原创 springboot整合log4j2配置
1、加入maven依赖springboot2.x之后只支持log4j2了,1.3x版本下还是支持log4j的。去除自带的 spring-boot-starter-logging<!--log4j依赖--> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>org.springframework.
2022-01-24 10:14:24 509
原创 后端跨域类
package com.child.shop.backstage.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.HttpHeaders;import org.springframework.web.servlet.config.annotation
2022-01-21 14:44:54 110
原创 按位操作符
int a = 0xaaa; int b = 0xccf; int c = (a&b); System.out.println(Integer.toBinaryString(a)); System.out.println(Integer.toBinaryString(b)); System.out.println(Integer.toBinaryString(c)); a &= b;
2021-12-31 09:42:25 245
原创 reids入门到放弃 -3(Redis_主从复制)
14.Redis_主从复制14.1.是什么主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主14.2.能干嘛读写分离,性能扩展容灾快速恢复14.3.怎么玩:主从复制拷贝多个redis.conf文件include(写绝对路径)开启daemonize yes 守护进程后台启动appendonly no (yes 代表开启AOF(插入日志)持久化)Pid文件名字pidfile指定端口portLog文件名字dum
2021-12-24 15:11:05 183
原创 redis入门到放弃-3(持久化之AOF)
13.Redis持久化之AOF13.1.AOF(Append Only File)13.1.1.是什么以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作13.1.2.AOF持久化流程(1)客户端的请求写命令会被append追加到AOF缓冲区内;(2)AOF缓冲区根据AOF持久化策略[
2021-12-23 17:46:01 462
原创 redis入门到放弃-2
8、springboot整合redis导入依赖 <!--redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId><!-- <version>
2021-12-23 14:05:01 1028
原创 redis入门到放弃-1
1、Nosql数据库概叙NoSQL(Not Only SQL )意即不仅仅是SQL,泛指非关系型数据库NoSQL不依赖业务逻辑储存,而以简单的key-value模式储存。因此大大的增加数据库的扩展能力不遵守SQL标准不支持ACID(原子性、一致性、隔离性、持久性)远超于SQL的性能1.1 Nosql适用场合对数据高并发读写海量数据的读写对数据高可扩展性的1.2Nosql不适用场合需要事务支持基于sql的结构话查询存储,处理复杂的关系,需要即席查询2、Redis概述R
2021-12-22 14:51:58 1006 2
原创 kafka笔记
1 为什么使用消息队列1.使用同步的通信方式来解决多个服务之间的通信[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WH3tKOD-1639123889279)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1639028867343.png)]同步的通信方式会存在性能和稳定性的问题2.使用异步的通信方式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oTjtwUre-1
2021-12-10 16:12:27 1700
原创 集合(1)
集合的理解与好处数组长度开始必须指定,而且一旦指定,不能改变。保存的必须为同一类型的元素使用数组进行增加/删除元素的示意代码-比较麻烦数组扩容方式:新建一个数组,并把旧数组元素拷贝到新数组集合可以动态保存任意多个对象,使用比较方便提供了一系列方便的操作对象的方法:add、remove、set、get等使用集合添加,删除新元素的示意代码-简洁了集合类图集合主要是两组(单例集合、双例集合)Collection 接口有两个重要的子接口 List Set 他们的实现子类都是单例集合
2021-12-03 22:12:59 87
原创 java常用类
内部类内部类分为:1、成员内部类。2、静态内部类。3、局部内部类。4、匿名内部类。内部类概念:是在一个类中再定义一个完整类。特点内部类也会生成class文件(有一个$符号来做间隔)内部类可以访问外部类私有的成员变量,不破坏封装性成员内部类再类内部定义,与实例变量、实例方法同级别的类外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象外部类 外1 = new 外部类();内部类 内1 = 外1.new 内部类();当内部类和外部类存在重名属性时,会优先访问内部类的属性
2021-12-02 10:02:31 88
原创 mavan出现文件加载不出来的问题
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</includ...
2021-11-27 09:18:58 65
原创 mybatis-入门(2)
在idea中安装lombok在pom.xml文件插入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>@Getter
2021-11-26 20:35:48 327
原创 mybatis #{}与$()的区别
#方式能够很大程度防止sql注入。$方式无法防止Sql注入。KaTeX parse error: Expected 'EOF', got '#' at position 27: …对象,例如传入表名.一般能用#̲的就别用.
2021-11-26 08:48:29 67
原创 mybatis入门
1、配置文件spring: datasource: url: jdbc:mysql://localhost:3306/product_systeam?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai //useS
2021-11-20 14:20:00 896
原创 SpringBoot笔记
获取数据@Value("${name}") //获取配置文件.yml,.yaml数据"hello /n world" //双引号可以识别出/n'hello /n world' //单引号无法识别出转换符 @Autowiredprivate Environment env;env.getProperty("name") //获取数据@ConfigurationProperties(prefix = “输入前缀”) 避免发生数据定位错误profile配置多文
2021-11-14 15:26:05 193
原创 面向对象设计原则
重点开闭原则是目标里氏代换原则是基础依赖倒转原则是手段一个好的系统设计应该具备如下三个性质可扩展性容易将新的功能添加到现有系统中与过于僵硬相对应灵活性代码修改时不会涉及很多其他模块与过于脆弱相对应可插入性可以很方便地将一个类抽取出去,同时将另一个有相同接口的类添加进去与黏度过高相对应面向对象语言如何支持可维护的复用通过抽象和继承使得类的定义可以复用通过多态使得类的实现可以复用通过抽象和封装可以保持和促进系统的可维护性单一职责原则单一职责原则是最
2021-09-11 10:33:40 295
原创 git常见操作
//所有本地分支git branch//列出所有远程分支git branch -r//新建一个分支,但依然停留在当前分支git branch [branch-name]//新建一个分支,并切换到该分支git checkout -b [branch]//合并指定分支到当前分支git merge [branch]//删除分支git branch -d [branch-name]//删除远程分支git push origin --delete [branch-name]$ g
2021-08-18 14:38:04 71
原创 vue笔记
vue的全局APIVue.directive使用: v-focus = true inserted(el,binding) 中inserted当使用的元素插入DOM时被调用 ,el代表使用指令的元素binding代表当前元素的值(true)指令相关的配置信息Vue.use<div id="app" v-my-directive></div> <script> let Myplugin = {};// 创建一个插件名 .
2021-08-18 10:05:25 101
原创 mysql操作
-- PRIMARY KEY 创建主键-- NOT NULL 为非空-- AUTO_INCREMENT 自增键-- COMMENT 备注-- DEFAULT 默认-- ENGINE=INNODB 实用的引擎为 INNODB -- DEFAULT CHARSET=utf8 默认字符集为utf8CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCH
2021-08-17 18:25:47 107
原创 数据库的字段属性
unsigned:无符号的整数声名了该列不能为负数zerofill0填充不足的位数,实用0来填补,int(3) 5 = 005自增:通常理解为自增,自动在上一条记录的基础上 +1(默认)通常用来设计唯一的主键~index ,必须是整数可以自定义设计主键自增时候的起始值和步长非空 null not null假设设置为not null ,如果不给他赋值,就会报错null,如果不填写值默认就是null默认:设置默认的值sex 设置默认为男,如果不赋值,则
2021-08-17 15:00:58 139
原创 mysql数据库常用命令机及数据类型
整理不易mysql -u用户名 -p密码 连接数据库update mysql.user set authentication_string=password("123456") where user="root" and Host = "localhost"; (修改用户密码 注意中文!!)flush privileges 刷新权限show databases 查看有多少数据库use wzh(数据库名) 切换数据库show tables 查看数据库中所有的表d
2021-08-17 13:59:17 77
原创 常见的命令(linux + windows)
整理不易cd 改变目录cd … 返回上一个目录cd / 返回根目录pwd 显示当前所在的目录路径ls(ll) 都是列出当前目录所有文件,ll会更详细一些touch 新建一个文件rm 删除一个文件(如果文件中有子文件会出错)mkdir 船舰一个文件夹rm -r 删除一个文件夹(包括其中的内容)mv 移动文件 mv 111.txt(要移动的文件) src(要移动到的路径)reset 重新初始化终端/清屏clear 清屏(和上面有区别)history 查看命令历
2021-08-17 13:49:26 69
原创 关于svg阿里矢量图无法修改颜色
关于svg阿里矢量图无法修改颜色直接官网可以去色第二种方法修改iconfont中的js文件fill = “white” (例子) 来修改颜色QAQ直接官网可以去色第二种方法修改iconfont中的js文件找到你要去除的fill值之后就可以愉快的添加颜色了!记得用CSS中的fill = “white” (例子) 来修改颜色QAQ...
2021-07-20 14:17:53 683
原创 百度翻译爬取出错{‘errno‘: 997, ‘errmsg‘: ‘未知错误‘, ‘query‘: ‘你好世界‘, ‘from‘: ‘zh‘, ‘to‘: ‘en‘, ‘error‘: 997}
这是我的课程期末作业需要爬取一个网址中的数据,其中测试百度翻译的爬虫时出现了一些问题。import json import requestsurl = "https://fanyi.baidu.com/v2transapi"# query_str = input("请输入要翻译的中文:")query_string = {"from": "zh", "to": "en", "query": "你好世界",
2021-06-26 18:11:59 5717 7
原创 如何同时存在vue2和vue3并且可以切换使用
如何同时存在vue2和vue3并且可以切换使用Vue CLI 3 和旧版使用了相同的vue命令,所以 Vue CLI 2 (vue-cli) 被覆盖了。如果你仍然需要使用旧版本的vue init功能,你可以全局安装一个桥接工具:npm install -g @vue/cli-init //安装完后 就还可以使用 vue init 命令vue init webpack vue_project...
2021-05-04 13:09:35 2928
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人