自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LockSupport使用,以及与wait/notify await/signal的比较

LockSupport通过pack 和 unpark 的方法来实现阻塞和唤醒线程的操作Locksupport l类使用了一种名为permit 许可证的概念来做到阻塞和唤醒线程的功能,每个线程都有一个许可证permit,Permit只有两个值 1 和0 默认是0使用Locksupport 的pack 和unpark方法 实现wait/notify await/signal的阻塞 唤醒功能1.使用wait/notify阻塞唤醒package com.example.starter;pu..

2021-11-14 21:59:57 17

原创 死锁定位分析

死锁:两个 或两个以上的线程执行过程中因抢夺资源而互相等待的过程package com.example.starter;import java.util.concurrent.TimeUnit;class HoldLockThread implements Runnable{ private String lockA; private String lockB; public HoldLockThread(String lockA, String lockB) { .

2021-11-14 13:56:27 11

原创 线程池的使用

结果 1.Executors.newFixedThreadPool固定线程数package com.example.starter;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class MyThreadPoolDemo { public static void main(String[] args) { ExecutorService thr

2021-11-14 13:37:53 8

原创 多线程Callable使用

多线程情况下 使用callable的好处是 可以获取到结果注意使用callable时 要结合 FutureTask使用,因为FutureTask类继承runnbale接口,Thread类实例化时必须要传runnable或其子类。FutureTask实例化时 要传callable类,所以callable和FutureTask要结合使用class CallableThread implements Callable<Integer>{ @Override public Inte.

2021-11-09 23:16:25 160

原创 Lock在多线程模式下的应用

Lock多线程模式下的使用记住三个步骤a.判断 while条件判断 多线程模式下一定是whileb.干活 执行业务代码c.通知 唤醒下一个要运行的线程还得记住 线程操作资源类,资源类要定义好 condition条件别忘了1.一个初始值为0的变量 两个线程对其交替操作一个加1 一个减1 来5轮/** * 一个初始值为0的变量 两个线程对其交替操作 * 一个加1 一个减1 来5轮 */public class ProdConsumer { public static...

2021-11-07 23:15:57 14

原创 Java 队列的使用

BlockQueue 的核心方法add方法实例,队列大小是3 当add第四个元素时报错package com.example.starter;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * 阻塞队列 * 阻塞队列有没有好的一面 * * 不得不阻塞 如何管理 */public class BlockingQueueDe...

2021-11-07 22:07:20 23

原创 Java 单例模式

1.懒汉式package com.example.starter;/*** * 懒汉式 */public class SilgletonDemo1 { private static SilgletonDemo1 instance = null; private SilgletonDemo1(){ System.out.println(Thread.currentThread().getName()+"构造方法调用"); } public static Silglet

2021-11-07 15:07:40 18

原创 volatile的使用,如何保证原子性

volatile特性:1.保证可见性2.不保证原子性3.禁止指令重排如下代码所示package com.example.starter;public class VolatileDemo { public static void main(String[] args) throws InterruptedException { Mydata data = new Mydata(); for (int i = 1; i <= 20 ; i++) {

2021-11-07 14:13:27 65

原创 Java 多线程售票

方式一:继承thread 类每个线程100张票package com.example.starter;public class SellTickets extends Thread{ public static void main(String[] args) { Thread t1 = new SellTick1(); Thread t2 = new SellTick1(); Thread t3 = new SellTick1(); t1.start(.

2021-11-05 22:02:02 140 1

原创 git提交初始化项目

使用git提交本地项目至gitee1.本地项目--右键--Git Bash Here2.Git全局设置git config --global user.name "张三"git config --global user.email "zhangsan@qq.com"3.输入 git init4.输入git add .5.输入 git commit -m "first commit"6.输入 git remote add originhttps://gitee.com...

2021-09-27 14:35:01 8

原创 postman查询ElasticSearch数据

1.192.168.56.10:92002.查看ES节点192.168.56.10:9200/_cat/nodes如下图所示看到的节点就是图1 中的name3.192.168.56.10:9200/_cat/health查看ES的健康状况4.192.168.56.10:9200/_cat/master查看主节点信息5.192.168.56.10:9200/_cat/indices查看ES 的索引信息6.索引一个文档PUT 请求http://192...

2021-08-08 22:33:05 422 1

转载 递归算法的时间复杂度

同一道题目,同样使用递归算法,有的同学会写出了O(n)的代码,有的同学就写出了O(logn)的代码。这是为什么呢?如果对递归的时间复杂度理解的不够深入的话,就会这样!那么我通过一道简单的面试题,模拟面试的场景,来带大家逐步分析递归算法的时间复杂度,最后找出最优解,来看看同样是递归,怎么就写成了O(n)的代码。面试题:求x的n次方想一下这么简单的一道题目,代码应该如何写呢。最直观的方式应该就是,一个for循环求出结果,代码如下:intfunction1(intx,intn)...

2021-07-29 11:53:42 358

原创 数组相关算法题(二)

1.数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3方式一class Solution { public int findRepeatNumber(int[] nums) { int[] num = new int[nums.leng.

2021-07-28 17:17:36 13

原创 算法中时间复杂度和空间复杂度的计算

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,

2021-07-28 16:17:23 18

原创 docker 安装Elasticsearch、Kibana

1.安装Elasticsearchdocker pull elasticsearch:7.4.22.安装完成后查看是否成功sudo docker images3.可视化检索数据kibanadocker pull kibana:7.4.24.配置挂载数据文件夹# 创建配置文件目录 mkdir -p /mydata/elasticsearch/config# 创建数据目录 mkdir -p /mydata/elasticsearch/data# 将/mydata/e

2021-07-25 20:10:23 55 1

原创 Object 划分

1.PO(persistant object) 持久对象PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包 含任何对数据库的操作。2.DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 3.TO(Transfer Object) ,数据传输对象 不同的应用程序之间传输的对象4.DTO(Data Transfer Object)数据传输对象 这个概念来源于 J2EE 的设计模式原来的目的是为了 EJB 的分布式应

2021-07-25 19:21:45 22

原创 springboot界面日期格式化

界面显示如下日期,将其格式化成想要的格式在application.yml配置文件中加入如下配置spring: jackson: date-format: yyyy-MM-dd HH:mm:ss

2021-07-17 18:15:59 27

原创 idea 一次启动多服务配置

1.idea 中 Edit Configurations2. 点击加号3.选择Compound4.把要启动的服务都加进来5.再启动gulimall 会将第4步加入的服务全部启动

2021-07-17 16:49:11 27

原创 A表数据跟新到B表数据的sql

UPDATE settlement_sdk_sync sJOIN trade_order t ON s.order_id = t.trade_code AND s.company_id = 0 AND t.company_id IS NOT NULL AND t.shop_id IS NOT NULL SET s.company_id = t.company_id,s.shop_id = t.shop_id;

2021-07-06 17:48:53 16

原创 post请求 传递json对象和json字符串

1.post请求方式一,指定contentTypecontentType为application/json时,data的类型要转换成json字符串的形式$.ajax({ type : "POST", url : "/mailbox/sendMail/resend", dataType : "json", data : JSON.stringify(ids), contentType:"application/json;charset=utf-8", succes

2021-07-05 11:59:50 421

原创 空字段不返回到界面的设置@JsonInclude

当数据库查询到数据为空时字段会还回空到界面,如下图所示children属性。如果数据库还回null 属性不还回到界面如何处理?可以在实体类的属性中增加如下注解:@JsonInclude//不为空时才返回这个字段 @JsonInclude(JsonInclude.Include.NON_EMPTY) @TableField(exist = false) private List<CategoryEntity> children;当实体中对应数据库无属性时 可以使用 ...

2021-07-04 20:07:34 8

原创 JAVA后端校验统一异常处理

1.实体类增加校验规则/** * 检索首字母 */ @NotEmpty @Pattern(regexp = "/^[a-zA-Z]$/",message = "检索首字母必须是一个字母") private String firstLetter;2.增加统一异常处理类package com.atguigu.gulimall.product.exception;import com.atguigu.common.exception.BizCodeEnume;import co

2021-07-04 14:55:37 133

原创 JSR303后台校验

关于JSRJSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于 JSR-303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 .

2021-07-04 14:49:33 6

原创 linux目录结构

1.bin是binary的缩写 ,存放经常使用的命令2.sbins就是super user的意思,存放系统管理员使用的系统管理程序3.home存放普通用户的主目录 linux系统中每个用户都有自己的一个目录 一般该目录名是以用户的账号命名的4.root该目录为系统管理员,也称作超级权限者的用户主目录5.boot存放启动linux时的一些核心文件 包括一些连接文件和镜像文件6.proc是个虚拟的目录 它是系统的映射文件 可以获取系统信息7.srvser...

2021-06-23 14:25:37 7

原创 文件上传(四)

通过以下方式去上传文件:后台代码:import com.aliyun.oss.OSS;import com.aliyun.oss.common.utils.BinaryUtil;import com.aliyun.oss.model.MatchMode;import com.aliyun.oss.model.PolicyConditions;import com.atguigu.common.utils.R;import org.springframework.beans.facto

2021-06-20 20:47:29 11

原创 文件上传(三)

使用SpringCloud Alibaba-OSS上传文件spring-cloud-alibabahttps://github.com/alibaba/spring-cloud-alibaba

2021-06-20 18:58:24 8

原创 文件上传(二)

文件管理--帮助可以看到sdk api的使用

2021-06-20 18:28:56 25

原创 文件上传(一)

文件上传的方式:

2021-06-20 16:54:58 9

原创 java 导出excel 和zip

<a class="button btn-circle " href="javascript:;" onclick="amazomReportHandle.exportAmazonReport();"> <i class="fa fa-cloud-download"></i> <span class="hidden-480"><spring:message code="i18n.report.batch.download" t..

2021-06-18 16:48:23 14

原创 枚举的几种使用

1. 枚举常量public enum ColorEnum { RED,GREEN,YELLOW,BLANK,ORANGE,BLUE;}

2021-06-07 10:38:10 32

原创 mybatis-plus逻辑删除配置

1.配置全局的逻辑删除规则 logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

2021-06-06 11:15:51 77

原创 post请求注意事项

1.@RequestBody@RequestMapping("/delete") //@RequiresPermissions("product:category:delete") public R delete(@RequestBody Long[] catIds){ categoryService.removeByIds(Arrays.asList(catIds)); return R.ok(); }

2021-06-06 10:54:07 56

原创 vert.x demo启动步骤

1.A

2021-06-05 16:32:29 46

原创 谷粒商城vue模板生成代码

1.文件--shou'x

2021-06-03 21:09:16 43

原创 web跨域

当我们web存在跨域问题时会报如下错:Access to XMLHttpRequest at 'http://localhost:88/api/sys/menu/nav?t=1622640733898' from origin 'http://localhost:8001' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control

2021-06-02 21:58:48 12

原创 idea自动补全

快速生成main方法

2021-06-01 13:56:54 33

原创 使用log4j2将sql语句记录到console控制台

1.mybatis 配置文件配置:<setting name="logImpl" value="STDOUT_LOGGING" />完整d

2021-05-31 11:02:03 49

原创 前端项目renren-fast-vue的启动

1.VS-code 导入项目:文件--打开文件夹2.

2021-05-30 20:25:38 33

原创 系统性能优化(二)

​性能优化 - 索引​当根据操作人进行查询时, 查询的效率很低,耗时比较长。原因就是因为在创建数据库表结构时,并没有针对于 操作人 字段建立索引。CREATE INDEX idx_user_method_return_cost ON operation_log(operate_user,operate_method,return_class,cost_time);同上 , 为了查询效率高,我们也需要对 操作方法、返回值类型、操作耗时 等字段进行创建索引,以提高查询效 率。C...

2021-05-30 20:21:04 38 1

原创 系统性能优化(一)

系统中用户访问日志的数据量,随着时间的推移,这张表的数据量会越来越大,因此我们需要根据业务需求,来对 日志查询模块的性能进行优化。1) 分页查询优化 由于在进行日志查询时,是进行分页查询,那也就意味着,在查看时,至少需要查询两次: A. 查询符合条件的总记录数。--> count 操作 B. 查询符合条件的列表数据。--> 分页查询 limit 操作 通常来说,count() 都需要扫描大量的行(意味着需要访问大量的数据)才能获得精确的结果,因此是很难对该 SQL进行优化操作的。如果需要对c

2021-05-29 20:39:38 30

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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