随笔分类 -  java

摘要:为什么要用starter 在日常的开发中,许多功能都是重复的,比如上传,权限认证,redis的一些操作等。如果采用模块的方式在每一个项目中都加载这些模块,会导致项目比较大,且结构不清晰。 如果采用了starter就可以简便很多,在开发中,只需要从仓库依赖需要的jar即可。 背景 前两天,国内的码云抽 阅读全文
posted @ 2022-03-28 16:37 暮雪超霸 阅读(140) 评论(0) 推荐(0)
摘要:分布式锁 分布式锁常规情况下都是使用redis来实现。很早以前,使用SETNX加过期命令进行设置,无法保证原子性。但随着时代的发展,redis已经支持一条指令(set指令)实现setnx加过期时间。 什么是线程不安全? 线程不安全指的是多个线程操作一个资源,期望值和获取到的数据不一致。 可能存在的问 阅读全文
posted @ 2022-03-22 14:47 暮雪超霸 阅读(325) 评论(0) 推荐(0)
摘要:自定义注解实现接口限流 场景:限制验证码在单位时间内的访问次数 实现流程:自定义一个注解,注解内包含访问的次数与单位时间。通过AOP进行切面拦截,获取注解内的次数和时间,获取请求的uri与访问者ip。组成redis的key。 使用redis将key进行原子性自增1.如果返回的是1.则设置过期时间,之 阅读全文
posted @ 2022-03-14 14:39 暮雪超霸 阅读(144) 评论(0) 推荐(0)
摘要:Synchronized保证三大特性 原子性 对num增加同步代码块后,保证同一时间只有一个线程操作num。就保证了不会出现问题。 可见性 synchronied对应lock原子操作会刷新工作内存中共享变量的值 有序性 加入synchronied依然会发生指令重排,只不过我们有同步代码块,可以保证只 阅读全文
posted @ 2022-03-07 18:31 暮雪超霸 阅读(67) 评论(0) 推荐(0)
摘要:进程 进程是操作系统进行资源资源分配的单位,进程中包含若干线程 线程 线程是CPU进行调度和执行的基本单位 方法区 堆 虚拟机栈 本地方法栈 程序计数器 每个线程拥有自己的栈和PC 多个线程共享方法去和堆 并行和并发 并行 单位时间内,任务同时执行 并发 在一定时间内,任务都执行了 并行是一起执行。 阅读全文
posted @ 2022-03-06 00:09 暮雪超霸 阅读(48) 评论(0) 推荐(0)
摘要:项目利用使用到了redis,比如会出现穿透、击穿、雪崩等问题。 穿透 缓存种不存在,数据库种也不存在,导致每一次的请求都会到数据库层面。 解决方案:缓存空对象,或者使用布隆过滤器 击穿 某个key在有大量的请求,但是大量请求到的时候,过期了,然后导致大量请求都到数据库层面 解决方案:数据不过期或者使 阅读全文
posted @ 2022-02-23 15:24 暮雪超霸 阅读(72) 评论(0) 推荐(0)
摘要:敬畏之心才能进步 阅读全文
posted @ 2022-02-16 14:32 暮雪超霸 阅读(44) 评论(0) 推荐(0)
摘要:集成es搜索引擎,实现高亮搜索,在测试中,发现如果用户输入的是html标签,会把html标签搜索出来且显示,导致格式错乱。解决方案:es中,不存入html标签内容。存入前,将html标签进行去除。 集成quartz定时框架,定时刷新帖子分数,开发的时候设置的定时间隔较短。正式部署到服务器上,发现定时 阅读全文
posted @ 2022-02-15 13:03 暮雪超霸 阅读(57) 评论(0) 推荐(0)
摘要:类加载器子系统 作用 负责从文件系统或网络系统中加载class文件,class文件在开头有特殊的标记(魔术开头CA FE BA BE) ClassLoader只负责加载class文件,至于能否运行,由执行引擎决定 加载的类的信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常 阅读全文
posted @ 2021-03-02 20:41 暮雪超霸 阅读(227) 评论(0) 推荐(1)
摘要:自定义注解实现Execl导入导出 悲伤,我是Java开发程序员,竟然被说是做运维的了。我是开发开发开发!!!! 写个笔记,记录一下以前的execl导入导出功能代码 pom坐标 此处使用常规版本3.9,未使用4.0版本,原因部分API已删除或过时 <dependency> <groupId>org.a 阅读全文
posted @ 2021-01-28 18:23 暮雪超霸 阅读(401) 评论(0) 推荐(0)
摘要:方法的参数传递机制 实参给形参赋值: 形参是基本数据类型 传递数据值 实参是引用数据类型 传递地址值(形参是实参的引用拷贝) 特殊的类型:String、包装类等对象不可变性 前置知识 每一个方法对应一个方法栈对应一个局部变量表 Integer常量池范围-127到128,超过整个范围将会重写生成一个对 阅读全文
posted @ 2021-01-24 16:11 暮雪超霸 阅读(73) 评论(0) 推荐(0)
摘要:类初始化和实例化过程 类初始化过程 1、一个类要创建实例需要先加载并初始化该类 ​ main方法所在的类需要先加载和初始化 2、一个子类要初始化需要先初始化父类 3、一个类初始化就是执行clinit()方法 ​ clinit每个类都有,自动生成 中文名类初始化方法 ​ clinit方法由静态类变量显 阅读全文
posted @ 2021-01-24 15:22 暮雪超霸 阅读(348) 评论(0) 推荐(0)
摘要:单例模式 概念:某个类在整个系统中只能有一个实例对象,并且是自己创建的唯一实例,构造方法私有化。 饿汉式:直接创建对象,不存在线程安全问题 直接实例化饿汉式(简洁直观) 枚举式(最简洁) 静态代码块饿汉式(适合复杂实例化) 懒汉式:延迟创建对象 线程不安全(适用于单线程) 线程安全(适用于多线程) 阅读全文
posted @ 2021-01-24 13:56 暮雪超霸 阅读(98) 评论(0) 推荐(0)
摘要:看到招聘要求要会WebService。就百度看看是如何实现的。 测试了一下。发现使用webservice开发方法,好像方便了不少。服务端开发者只需要关注服务端就可以了。 Demo结构 IWebService 接口 WebServiceImpl 实现类 WebServicePush 测试发布类 pac 阅读全文
posted @ 2018-12-10 22:51 暮雪超霸 阅读(378) 评论(0) 推荐(0)
摘要:最近毕设需要用到这个数据库。然而又不会,没办法,只能上网学习学习。 记录一下java连接mongodb数据库的简单方法。这里只是记录一下学习。熟悉一下CURD方法。 但是毕业用到的是SpringBoot来整合mongodb数据库。似乎用SpringBoot来操作mongodb更简单。 如果是Spri 阅读全文
posted @ 2018-11-26 19:44 暮雪超霸 阅读(4175) 评论(0) 推荐(0)
摘要:show dbs; //显示所有数据库 use chaoba; //进入chaoba数据库 db.createCollection("chaoba1"); 创建集合 show collections();查看集合 show tables db.chaoba1.save({“name”:“1233”} 阅读全文
posted @ 2018-11-26 16:00 暮雪超霸 阅读(129) 评论(0) 推荐(0)
摘要:要实习了。突然发现自己好像什么都不会,就去看看题吧。在网上看到一个字符串压缩的题。看了一眼,感觉用python很简单。一个for循环+字典就可以搞定。 但是呢,主要还是java。下面就用java来实现一下。未检测长度是否小于10000 题目: 利用字符重复出现的次数,编写一个方法,实现基本的字符串压 阅读全文
posted @ 2018-11-23 21:16 暮雪超霸 阅读(614) 评论(0) 推荐(0)
摘要:1.需要软件 jdk hadoop 将jdk和hadoop解压到自己想要存放的路径 这里我解压到/usr/目录下 sudo tar -zxvf java1.8.tar.gz -C /usr/ hadoop同理 然后赋予777权限 和使文件所属改为当前用户 sudo chmod -R 777 hado 阅读全文
posted @ 2018-05-28 23:28 暮雪超霸 阅读(193) 评论(0) 推荐(0)
摘要:package demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import ja 阅读全文
posted @ 2017-12-20 22:58 暮雪超霸 阅读(885) 评论(0) 推荐(0)
摘要:/*JTable中导入数据库数据。 创建2个Vector col和dat col存入字段名 dat存入数据内容。 dbname=new JTable(dat,col); */package demo; import java.awt.*; import javax.swing.*; import j 阅读全文
posted @ 2017-12-20 22:21 暮雪超霸 阅读(1392) 评论(0) 推荐(0)