自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程笔记

多线程笔记

2023-02-13 18:09:40 252

原创 java处理百万数据,最简单明了的写法

java处理百万数据,最简单明了的写法

2022-10-12 15:11:20 2193

原创 java解析过程 符号引用和直接引用的区别

java解析过程 符号引用和直接引用的区别

2022-09-05 11:25:26 268

原创 此为测试0

此为测试0

2022-09-01 14:50:38 369 1

原创 java接口的继承是多继承吗

​Java接口不仅可以继承接口,还可以多继承​

2022-09-01 10:12:46 3689

原创 java类加载过程,双亲委派机制

java类加载过程,双亲委派机制简述

2022-09-01 09:45:05 641

原创 java类的加载过程2

采用双亲委派机制当写好一个类以后,程序运行类加载时,先从下到上委派,父类加载器加载,并判断这个类有没有被加载过,如果没有在向上委派,爷爷类加载器加载,并判断这个类有没有被加载过。如果都没有加载过,那么自己加载。如果父类加载过,那么自己加载,如果自己加载失败那就直接报错提示ClassNotFound异常了。优点:1.避免类重复加载,父类加载后,子类不在加载。2.安全性,所有的类加载优先给启动类加载,就保证了核心库不会被修改,提高了api安全性。...

2022-09-01 01:31:37 108

原创 java类的加载过程

java类的加载过程,简述

2022-08-31 23:20:24 166

原创 java中static的理解

java中static的理解,大白话一看就会

2022-08-30 14:27:22 236

原创 java引用本地jar包,一行命令2秒钟搞定

java引用本地jar包,一行命令2秒钟搞定

2022-08-02 11:55:35 1637

原创 postman配置全局token令牌,只需三步

1.在环境中加一个全局变量,名字随意。2.找到你得登录请求var jsonData =JSON.parse(responseBody);//获取body中返回的所有参数postman.setGlobalVariable("sf_token",jsonData.token);//把返回参数中的keys设置为环境变量3.测试...

2022-05-17 11:32:09 4176 3

原创 BeanUtils工具类中的copyProperties小结

BeanUtils工具类中的copyProperties小结有两个主要包org.springframework.beans.BeanUtilsorg.apache.commons.beanutils.BeanUtilsSpring中使用方法BeanUtils.copyProperties(要复制的对象,目标对象);Apache阿帕奇中使用方法BeanUtils.copyProperties(目标对象,要复制的对象);不同之处:方法目标对象和源对象参数的位置是相反注意...

2022-05-11 14:49:57 718

原创 java静态代理总结

1.静态代理模式总结: 真实对象和代理对象都要 实现同一个接口 代理对象要代理真实角色好处: 代理对象可以做很多真实对象做不了的事情 真实对象专注做自己的事情

2022-04-01 00:49:31 439

原创 多线程三种创建方式的简单案例

1.创建线程的方式一继承Thread类,重写run方法。 创建类对象调用start方法,调用线程。2.创建线程的方式二实现runnable接口,重写run方法,执行线程,丢入runnable接口的实现类,调用start方法。3.创建线程的方式三实现Callable接口,好处是 可以定义返回值,可以抛出异常

2022-04-01 00:08:31 259

原创 Redis优化查询速度

String num = stringRedisTemplate.opsForValue().get("test");首先get redis中的key,看num是否有信息。if判断,如果没信息,那么查询数据库,查询后把信息set到redis中。这样下次就有信息了。如果有信息就查redisif(StringUtil.isblank(num)){//查询数据库//set查询后的信息,到redisstringRedisTemplate.opsForValue().set...

2022-03-30 22:30:40 1552

原创 session和token工作流程

session用户登录,服务器验证通过后返回一个cookie,cookie里面带了sessionId,用户之后的每一个请求都会带着sessionId,去后端服务器httpsession 里面去根据sessionId(也就是key),去找信息(也就是value)。找到就正常返回数据,找不到就提示过期。session默认30分钟清除数据。token用户登录,服务器服务器校验通过后,返回一个token,token中存放着用户的信息和到期时间(在application或者哪里定义的过期时间),用户之

2022-03-30 22:23:49 308

原创 vue的package.json简单说明

1、package.json运行命令:npm run serve 看红色箭头,此时并不是npm run dev打包命令:npm run build:prod 这个是打包的命令,此时并不是npm run build2.dependencies发布时需要的环境,里面的就是当前项目用到的插件及版本说明。3.devDependencies 本地开发的环境。4.husky是git第三方检测插件。5.lint-staged是设置要检测的规则。6.engines 就是node版.

2022-03-29 11:38:46 2035

原创 简单理解前后端分离,微服务,分布式开发

前后端分离就是分开开发前端和后台不在同一个应用中.而是两个不同的项目每个项目都有不同的域名和端口号,如果前端需要数据,就去访问后台得项目接口获取数据就比如说,数据库和后台是分开的,数据库和后台不在同一个项目,后台需要数据就去连接数据库获取一个app项目可以有多个后台,多个前端也可以一个前端,多个后台其实这个类似于微服务了就是分布式开发单体架构是一个app只有一个项目,前端后台都在同一个项目...

2022-03-29 11:05:29 2180

原创 mysql事务

1.事务只有innodb引擎的数据库或者表,才支持事务2.事务可以维护数据库完整性 要么全执行,要么不执行3.事务用来管理 增删改语句4.事务必须满足4个条件 (ACID):原子性(Atomicity或称不可分割性)、一致性(Consistency)、隔离性(lsolation,又称独立性)、持久性(Durability)。原子性:一个事务(Atomicity)中的所有操作,要么全完成、要么全不完成。中途遇到错误会回滚到事务执行前的状态,就像未执行一样。一致性:执行后数据库的完整性,

2022-03-28 16:31:54 1107

原创 spring如何使一个项目完美兼容多种数据库?

我们都知道有tk.mapper和mybayis-plus这两个插件,当然还有别的,就是可以自适应数据库来改变xml语法来和数据库打交道。但是这些插件处理不了一些数据库中独有的语法与复杂的sql,这样就会有问题,搞程序的我们都知道一个道理,不能完美解决那就是没解决。如何解决?1.我们都知道springboot有两个yml文件是可以放在jar包外边的,jar启动时会优先扫描同级目录有没有这两个yml文件,如果有就以外面的为准。2.我们就通过这两个文件来解决,首先在application.yml中定义

2022-03-24 00:51:07 4409 1

原创 yml中MyBatis配置解释

# MyBatis配置mybatis: # 搜索指定包别名,用于扫描domain如果换位置就写指定的位置,如果不换位置其他位置也有domain需要扫描的,就在后面加,号。下面同理 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 conf.

2022-03-22 21:22:01 2779

原创 解决ArrayList线程不安全的方法

一:使用synchronized关键字,这个大家应该都很熟悉了,不解释了;二:使用Collections.synchronizedList();使用方法如下: 假如你创建的代码如下:List<Map<String,Object>> data=new ArrayList<Map<String,Object>>(); 那么为了解决这个线程安全问题你可以这么使用Collections.synchronizedList(),如:...

2022-03-22 12:44:44 333 1

原创 spring如何解决循环依赖

使用@Lazy注解,延迟加载 使用@DependsOn注解,指定加载先后关系 修改文件名称,改变循环依赖类的加载顺序

2022-03-22 12:01:06 486

原创 shiro工作流程

用户登录发送一个请求到服务器,服务器验证登录成功后,把用户信息封装称一个session,然后生成一个sessionid,在返回一个cookie对象给客户端,客户端拿到cookie以后解析cookie获取sessionid,然后发送给服务器,服务器通过sessionid来获取session,然后从session中拿到用户信息。...

2022-03-21 23:50:15 144

原创 jwt工作流程

登录的时候向服务器发送用户密码,服务器验证通过后返回给一个token也就是所谓的令牌,然后用户在做每一个请求操作时都会带上这个令牌发给服务器,服务器一看令牌就返回数据了

2022-03-21 22:46:06 342

原创 Session和Token小结

Token和SessionId的原理是相同的,Session和Token在功能上是相同的,都是为了保持会话。sessionSession用于临时保存用户信息,以键值对的格式储存,要取出用户信息就需要相对应的钥匙key,这是用于让服务器知道这个请求来着谁,通过cookie存放sessionid,服务器获取请求的时候就会通过cookie(sessionid)拿到session里面存放的用户信息,这样可以让用户访问资源而不用不断的重新登录。session的生命周期是服务器启动到服务器关闭。sessio.

2022-03-21 22:30:12 664

原创 Spring Security安全框架

Spring Security安全框架

2022-03-21 16:56:44 261

原创 大白话告诉你什么是跨越域

当一个请求 url 的协议、域名、端口三者之间任意一个与当前页面 url 不同即为跨域解释:协议——也就是http/https 这两种域名www.baidu.com 这种端口就是端口没什么好解释的当一个请求,也就是说你随便发送一个url,只要是不与上面三种任意一种情况不一样的时候,就会出现跨域地问题。...

2022-03-21 14:40:25 66

原创 数组的反转和自身反转

public static void main(String[] args) { //给新的数组赋值 int[] arr1 = {1,2,3,4,5,6}; int[] arr2 = new int[arr1.length]; for (int i = 0; i < arr1.length; i++) { arr2[i]=arr1[arr1.length-i-1]; } ...

2022-03-15 23:35:08 42

原创 优雅的冒泡排序

public static void main(String[] args) { Integer[] order = {3,1,2}; List<String> name = new ArrayList<>(); name.add("岐"); name.add("田"); name.add("春"); for (int i = 0; i < order.length-1; i++) { for (int j =.

2022-03-15 23:15:04 38

原创 i++在64位系统中不是原子特性

什么是原子特性?答:一个或多个操作在CPU执行过程中不被中断的特性。 在32位系统中,且i没有跨页,那么i++是原子的。其指令格式如下: movl x, %eax addl $1, %eax movl %eax, x 在64位系统中,i++无论如何也不是原子操作。其指令代码如下: movl x, %eax movl x+4, %edx addl $1, %eax adcl $0, %ed...

2022-03-15 21:13:48 55

原创 Java内存分析

栈空间(stack),连续的存储空间,遵循后进先出的原则,用于存放局部变量。 堆空间(heap),不连续的空间,用于存放new出的对象,或者说是类的实例。 方法区(method),方法区在堆空间内,用于存放①类的代码信息;②静态变量和方法;③常量池(字符串敞亮等,具有共享机制)。...

2022-03-15 21:00:32 569

原创 数组创建的3种方法

public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; System.out.println("创建数组的第一种方法:"+arr[5]); //创建数组的第二种方法 int[] x={1,2,3,4}; System.out.println("创建数组的第二种方法:"+x[3]); //创建数组...

2022-03-15 20:51:56 2513

原创 oracle基础常用命令

oracle最基础的常用命令↓explain plan FOR sql语句;--然后执行 SELECT * FROM TABLE (dbms_xplan.display()); --查看sql执行计划select tablespace_name from dba_tablespaces; --查询所有表空间名select * from all_users; --查询所有用户select * from dba_sys_privs where grantee='大写的用户名'; --查询用..

2022-03-09 16:20:47 3982

原创 方法的可变参数

在类型后输入三个点,表示可变参数 ,可变参数必须写在最后一个参数。

2022-03-08 21:10:02 64

原创 什么是方法的重载?

方法名称相同,参数不同、类型不同、数量不同!

2022-03-08 20:52:16 63

原创 什么是while循环?do while又是什么?

当条件成立时进入循环,当条件不成立时退出!当条件成立时进入循环,当条件不成立时退出!当条件成立时进入循环,当条件不成立时退出!

2022-03-08 20:28:05 338

原创 什么是Hascode?Switch为什么从1.7以后支持中文判断了?

每一个对象都有一个hascode,他是通过特定的一些算法生成的,每一个名字都有一个has值,switch中之所以能判断中文,是因为程序中把中文转换成了has值,从而用has值来做判断。

2022-03-08 20:02:54 216

原创 整数与两位小数的基本表达式

整数oninput = "value=value.replace(/[^\d]/g,'')"保留2位小数oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"不以0开头的整数 oninput = "value=value.replace(/[^\d]|^[0]/g,'')"

2022-03-07 15:05:34 151

原创 什么是常量?什么事局部变量?什么是成员变量?

常量:就是 通过final符修饰的变量,就是不可被改变的变量。局部变量:简单说就是{}内部的变量。成员变量:就是类里面定义的变量。

2022-03-05 10:00:01 261 1

空空如也

空空如也

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

TA关注的人

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