自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 问答 (8)
  • 收藏
  • 关注

转载 java的内存泄漏和溢出,堆栈的溢出

内存溢出和内存泄漏内存溢出 OOM(out ofmemory)是指在申请内存时,没有足够的内存空间供其实用,出现out of memory;比如申请一个integer,但是给它存了long才能存下的数据,那就是内存溢出内存泄漏 memory leak是指程序在申请内存后,无法释放已申请的内存空间,一次泄露危害可以忽略,但内存泄漏堆积后果很严重,无论多少内存,迟早被占光。内存泄漏会导致内存溢出!内存溢出就是你要求分配的内存超出系统能给你的,系统不能满足需求,于是产生内存溢出。内存泄

2021-10-28 18:51:49 1061 2

原创 spring的代理模式

基于目标对象创建代理对象,并由代理对象控制目标对象的执行基于OCP原则扩展目标对象的功能(装饰模式也可以做到)代理模式场景Mybatis(为接口创建代码,拦截器应用)Spring(proxy,CGLib代理)角色构成Subject:抽象主题角色(可以省略,基于CGLIB创建代理对象)Proxy:代理主题角色(代理对象)RealSubject:真是的主题角色(目标对象角色)强化分析1.Mybatis中mapper接口的代理2.JDK动态代理(Spring..

2021-10-26 09:18:31 537

转载 多线程下的单例模式(线程安全)——懒加载

package springboot.rabbit.controller; public class Singleton{ //使用volatilt关键字修饰,可以阻止CPU指令重排,并保证其可见性 private volatile static Singleton singleton = null; //私有化构造方法,确保不会在其他地方产生新的对象 private Singleton() { System.out.println("new Singleton-------");.

2021-10-25 09:31:17 781

原创 两个线程循环打印ab

package com.atguigu;public class printTest { volatile static boolean open=false; volatile static int index=0; static Object ob=new Object(); static Integer i=0; static Thread t1=new Thread(new myRun1(),"线程1"); .

2021-10-24 19:09:00 338

转载 Redis04:数据持久化实践

简介背景Redis是一种内存数据库,在断电时数据可能会丢失。比如你redis整个挂了,然后redis不可用了,如果没有持久化的话,redis就会丢失所有的数据,如果通过持久化将数据搞一份儿到磁盘上去,然后再定期同步到一些云存储服务上去,那么就可以保证一些数据不丢失,保证数据的可靠性。持久化方式Redis中为了保证在系统宕机(类似进程被杀死)情况下,能更快的进行故障恢复,设计了两种数据持久化方案,分别为rdb和aof方式。Rdb方式持久化概述Rdb方式是通过手动(save-阻塞式,

2021-10-24 16:54:40 134

转载 SQL优化

select语句检查少使用UDF用户自定义函数在select中使用自定义函数UDF,sql返回多少航,UDF就会调用多少吃,这是很影性能的#getOrderNo是用户自定义一个函数用户来根据order_sn来获取订单编号SELECT id, payment_id, order_sn, getOrderNo(order_sn) FROM payment_transaction WHERE STATUS = 1 AND create_time BETWEEN '2020-10-01 10:

2021-10-24 16:54:29 169

转载 第四次测试

1.要注册一个 bean 销毁回调,可以:(选择一项)CA.配置 bean 实例,以使用"prototype"作用域B.用@PostDestroy 注解回调方法C.用@PreDestroy 注解回调方法D.在 bean 配置中添加@Lazy 注解2.默认情况下, Spring Boot 将自动在以下哪个地方查找属性文件?(选择一项)A.与 Application 的主@Configuration 类名称相匹配的一个 properties 文件B.application. pr

2021-10-24 15:24:02 1470

转载 第三次测试

考虑下面的 Spring Security 配置 protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .mvcMatchers("/accounts/*").hasRole("USER") .mvcMatchers("/accounts/editAccount.htm").hasRole("ADMIN"); } or protected void configure(HttpSecur

2021-10-24 12:58:58 1768

转载 Redis常见面试题

缓存知识点:缓存有哪些类型?缓存时高并发场景下提高热点数据访问性能的一个有效手段,在开发阶段经常用到。类型可以分成本地缓存,分布式缓存,多级缓存本地缓存将数据存到JVM堆中,可以使用LRUMap来实现,也可以使用Ehcache这样的工具实现本地缓存是内部访问,不需要远程交互的开销,性能最好,但受于JVM和单机容量,一般缓存较小且无法扩展。分布式缓存分布式缓存具有良好的水平扩展能力,对较大数据的场景也可以应付自如,缺点就是需要进行远程请求,性能不如本地缓存多级缓存为

2021-10-24 09:07:14 231

转载 什么是消息队列?什么场景需要他?用了会出现什么问题?

原文:面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?_敖丙-优快云博客_什么场景需要队列什么是消息队列?消息队列,我们一般简称MQ(Messges Queue的意思)即消息 队列。消息,就是我们的业务数据,理解起来比较简单队列,先进先出的一个数据结构消息队列,那就是吧消息放在队列里,用队列存储消息的介质。投放消息的就是生产者。提取消息的就是消费者。什么场景会用到消息队列?项目流程臃肿,响应速度慢,并发量大的场景有什么优点?异步将多个步骤提取

2021-10-23 20:20:46 243

转载 redis击穿的解决方式:布隆过滤器

什么是布隆过滤器本质上是一种数据结构,比较巧妙的概率型数据结果特点是高效的插入和查询,可以判断某样东西不一定或者可能存在相比于传统的List,Set,Map等数据结构,它更搞笑,占用空间更少,但缺点是返回的结果是概率性的,不确切的工作原理:添加向布隆管理器添加key会使用f,g,h hash算法对key算出一个整数索引,然后对长度取余每个hash都会算出不同的位置,把算出来的位置设置为1就完了布隆过滤器的添加过程查询查询某个key时,根据hash算法算出整数索引,对长度区

2021-10-23 18:03:42 216

原创 EasyExcel的简单使用

什么是EasyExcel?是阿里巴巴开源的excel处理框架,以使用简单,节省内存著称,在读取数据的时候是从磁盘一行一行的读取数据,逐个解析,而不是全部加载到内存中。支持Excel的导入与导出,支持xls和xlsm的文件格式EasyExcel的依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId>

2021-10-22 16:52:29 566

原创 Spring Cache+Redis实现缓存数据的一致性

Spring Cache是一个非常优秀的组件。来自Spring3.1,提供了类似于@Transactional注解事务的注解Cachae支持,且提供了Cache抽象,方便切换各种底层Cache(如Redis)使用Spirng Cache的好处:提供基本的Cache抽象,方便切换各种底层Cache; 通过注解Cache可以实现类似于事务一样,缓存逻辑透明的应用到我们的业务代码上,且只需要更少的的代码就可以完成 提供事务回滚时也可以自动回滚缓存 支持比较复杂的缓存逻辑项目集成Spring Cac

2021-10-22 15:27:03 2378

转载 面试题(四)

默认类型和包住类型的区别包装类型默认null,基本类型不为null包装类型可以作用于泛型,基本类型不行基本类型在栈中可以直接存储具体数值,而包装类型则存储的是堆中的引用。HashMap和hashTable的区别HashMap线程非安全,HashTable线程安全HashMap集成自AbstractMap,继承自DictionaryHashMap:null可以作为键(放在hash桶的第0个位置)HashTable:key和value都不允许出现null值,否则抛出NullPoi

2021-10-21 20:55:51 219

原创 分页拦截器

@Configurationpublic class CmnConfig { /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }}

2021-10-21 15:17:20 211

转载 spring认证话术相关知识点

1.了解自动布线规则以及消除歧义2.对IOC的诸如规则有了深层的理解3.spring的生命周期4.SpringBoot的自动配置,元注解5.AOP的概念6.了解切片测试,springboot的相关测试

2021-10-20 19:23:53 526 1

原创 spring的启动流程

1.创建监听器2.创建空的IOC容器,和医嘱异常报告器3.配置awt,图标配置4.创建运行侦听器5.准备运行环境6.配置系统参数7.打印图标Banner8.创建IOC容器映射9.初始化IOC容器10.刷新IOC容器11.刷新最后的处理,停止监听器12.发布运行侦听器13.运行器回调,spring启动完成 public ConfigurableApplicationContext run(String... args) { //1

2021-10-20 09:39:14 898 3

原创 面试题整理

Jvm内存分为本地方法栈,方法区,java栈,java堆本地方法栈:储存本地方法,主要由natuve修饰java堆:储存对象分为年轻代(eden区,form区,to区),老年代java栈:储存变量的值或是对象的引用方法区 储存有statuc修饰的变量,方法代码块以及常量java多线程项目前端 下载文件后端,大部分的服务,异步处理,给不同的用户发信息,加载数据活锁,程序的运行条件不满足,等待资源满足会运行...

2021-10-19 19:10:55 213

原创 什么是索引

什么是索引索引(index)是帮助mysql高效获取数据的数据结构,mysql索引主要有两种结构:BTree索引和Hash索引,平时的索引一般都是BTree索引。优点:可以提高查询速度 创建唯一索引,保证数据唯一性 加速表与表的连接,也别输在实现数据的参考完整性方面特别有意义 在使用分组和排序字句进行数据检索时同样可以显著减少查询中分组和排序的时间。 通过使用索引们可以在查询中的过程中,使用优化隐藏器,提高系统的性能缺点:占用空间 减缓增删改的速率 创建和维护需要耗费时间索引

2021-10-18 20:49:17 667

转载 spring cloud 01:搭建spring cloud服务(一)

spring cloud 是一系列框架的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工

2021-10-18 19:50:15 211

转载 JsonResult返回值处理

package cn.tedu.sp01.util;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class JsonResult<T> { /** 成功 */ public static final int SUCCESS = 200; /** 没有登录 */ public static final int NOT_LOGIN = 400; /** 发生异常.

2021-10-18 11:06:55 1295

转载 Json处理

package cn.tedu.web.util;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Writer;import java.math.BigDecimal;import java.math.BigInteger;import ja.

2021-10-18 11:02:37 353

转载 CookieUtil

处理Cookie的代码package cn.tedu.web.util;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieUtil { /** * @param response * @param name * @p...

2021-10-18 11:01:44 95

转载 第二次测试

1以下哪项是对@PropertySource 注解的最佳解释?(选择一项)BA.用于方便地从某个外部属性文件中查找并返回单个属性值B.用于从某个外部来源向 Spring Environment 添加一组额外的 name/value 对C.用于指定 Spring Boot 应用程序中 application. properties 文件的位置D.Spring 框架中没有这样的注解application. properties不需要指定,会默认读取@PropertySource是用于从某

2021-10-17 17:22:21 1853

原创 网络邮件发送

实现类package com.cy.EmailSend;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.SimpleMailMes.

2021-10-15 20:03:50 385

原创 mongoDB指令

查看命令:db.help切换,创建数据库 use test查询所有数据库show dbs查看当前使用的数据库 db删除当前数据库 db.dropDatabase();查看当前数据库db.getName()显示当前db状态 db.stats();当前db版本db.version();查看当前db的链接机器地址db.getMongo();创建一个集合(table) db.createCollection("collName");得...

2021-10-14 20:54:45 98

转载 redis总结02:序列化和反序列化

什么是序列化和反序列化类似于面向对象的封装狭义:属性私有化,方法能公开就公开广义:一个系统有哪些服务,一个服务有哪些模块,一个模块有哪些结构,一个结构有哪些属性序列化狭义的层面:将对象转换为字节广义的层面:将对象转换为指定格式的字符串反序列化狭义的层面:将字节转换为对象广义的层面:将指定格式的字符串转换为对象Redis存储对象(序列化和反序列化)RedisSerializer接口,及其实现类RedisSerializer接口下的实现类注意:接口内的方法

2021-10-14 19:01:58 3714

转载 token发布与验证(服务端)

将所有的认证和授权配进行整合package com.jt.resource.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.oauth2.provider.token.TokenStore;import org.springframew

2021-10-14 18:27:27 444

转载 token发布与验证(认证端)

将所有的认证和授权配进行整合package com.jt.auth.config;import lombok.AllArgsConstructor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.HttpMethod;import org.springfr

2021-10-14 18:19:51 374

原创 mybatis-plas自动生成服务层代码

可以实现通用的增改查,以及虚拟删除Mapper层接口@Mapperpublic interface HospitalSetMapper extends BaseMapper<数据类型> {}service层接口public interface HospitalSetService extends IService<数据类型> {}service层实现类@Servicepublic class HospitalSetServiceImpl.

2021-10-14 17:48:47 138

原创 常用的返回状态枚举

package com.atguigu.yygh.common.result;import lombok.Getter;/** * 统一返回结果状态信息类 * enum 枚举类 */@Getterpublic enum ResultCodeEnum { SUCCESS(200,"成功"), FAIL(201, "失败"), PARAM_ERROR( 202, "参数不正确"), SERVICE_ERROR(203, "服务异常"), DATA_E.

2021-10-14 17:45:04 539

原创 redis配置修改

package com.jt.blog.config;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.Cacheable;import org.springframework.cache.annotation.CachingConfigurerSupport;import org.springframework.cache.interceptor.KeyGenera.

2021-10-14 17:42:40 577

转载 Redis07:在SpringBoot工程中的综合应用

业务描述从一个博客数据库中查询所有的文章标签,然后存储到缓存(Cache),后续查询时可从缓存获取。提高其查询性能。准备工作初始化数据初始化数据库中数据,SQL脚本如下:DROP DATABASE IF EXISTS `blog`;CREATE DATABASE `blog` DEFAULT character set utf8mb4;SET names utf8mb4;SET FOREIGN_KEY_CHECKS = 0;USE `blog`;CREATE TABLE `

2021-10-14 15:02:58 149

原创 Springboot启动项流程

初始化阶段:第一步:SpringApplication模块初始化,配置一些基本的环境变量,资源,监听器,构造器;第二步,实现了应用具体的启动方案,包括流程的监听模块,加载配置环境模块以及创建上下文环境模块第三步:自动化配置模块,这个模块是实现spring boot的自动配置启动阶段:每个springBoot程序都有一个主入口,也就是main方法,main方法调用springApplication.run()启动整个spring boot程序,该方法所在的类有一个@SpringBootAp

2021-10-14 14:30:54 557

转载 java双重校验

第一重校验,外层校验,保证业务逻辑,对没有数据的线程进行处理(获取数值,并将其存入本地缓存)在校验之后需要进行更改的时候,对资源进行上锁,保证线程的安全,进行对资源的操作是同步的第二重校验,保证后续其他线程不再需要执行对资源的操作(已经获取到数值的线程,不需要再执行,减少同步执行的代码量)public class ListTest { static List<Integer> cache = new ArrayList<>(); static List&

2021-10-14 10:29:46 573

转载 Redis06:架构设计应用实践

Redis主从复制简介单个Redis支持的读写能力还是有限的,此时我们可以使用多个redis来提高redis的并发处理能力,这些redis如何协同,就需要有一定的架构设计,这里我们首先从主从(Master/Slave)架构进行分析和实现.基本架构redis主从架构如图所示:其中,master负责读写,并将数据同步到salve,从节点负责读操作.快速入门实践基于redis,设计一主从架构,一个Master,两个Slave,其中Master负责Redis读写操作,并将数据同步到.

2021-10-13 18:53:37 94

转载 Redis05: 事务处理实践

Redis事务简介概述Redis采用了乐观锁方式进行事务控制,它使用watch命令见识给定的key,当exec(t提交事务)的时候,如果监控的key是对整个连接有效的,比如断开连接,监事和事务都会被自动清除,当然,exec,discard,unwatch命令都会清除连接中的所有监视基本指令multi开启事务exec提交事务discard取消事务watch 监控,如果监控的值发生变化,那么事务的提交会失败unwatch取消监控Redis保证一个事务中的所有命令要么都执行,要

2021-10-12 08:41:51 360

转载 第一次模拟测试

1.如果你用@Component 来注解一个类,你应该做以下哪项才能让 Spring 自动检测到注解的类并将其加载为 bean?(选择一项)BA.确保为该类指定一个有效的@ScopeB.确保在 Java 配置中指定一个有效的@ComponentScan 注解C.确保在@Component 注解中指定一个有效的 bean 名称D.确保为类指定一个有效的@BeanB.确保在 Java 配置中指定一个有效的@ComponentScan 注解,在spring的启动项注解中包含该注解,所以可以自动

2021-10-11 09:44:26 2362

转载 redis03:Java中的操作

准备工作创建工程创建maven父工程,例如03-sca-redis,并在此工程下创建两个子工程,一个为sca-jedis,一个为sca-tempate,例如:添加项目依赖sca-jedis 工程依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.5.2</ve

2021-10-09 17:44:30 108

原创 redis总结01:常用数据类型整理

key 关键字value 内容field 字段start 开始位置 0 表示开始元素, 1 表示第二个元素。 -1 表示结尾元素, -2表示倒数第二个元素end 结束位置0表示开始 -1表示结尾count 数量 =0表示全部 >0从头开始 <0从尾开始increment 每次递增递减的数值 redis数据类型整理 String Hash List set 增加 增加...

2021-10-08 20:19:42 145

空空如也

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

TA关注的人

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