自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java集合之HashMap(1.7和1.8)源码分析

Java集合之HashMap本文将从以下几个方面来理解HashMap:什么是哈希表HashMap源码分析HashMap和HashTable的区别1.7和1.8有什么区别哈希表哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。为什么哈希这么快呢首先不得不提哈希函数了( p= H(key) ),哈希函数就是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射 ,这种

2020-05-08 23:20:40 228

原创 long类型还能这样写

由于之前没见过这种写法,一时认为这不应该是字符串吗,怎么能这么写呢?原来在 JDK 1.7 之前,Java 中的整数类型(byte、short、int、long)只支持十进制表示法,无法使用下划线分隔数字,使其更易读。从 JDK 1.7 开始,引入了下划线分隔符(_)的特性,允许在整数类型中使用下划线进行分隔。这个特性的目的是为了提高代码的可读性,特别是对于较大的数字。通过在数字中添加下划线,可以更清晰地表示数字的结构和值,方便阅读和理解代码。下划线只是用作分隔符,不会对数值本身产生任何影响。

2023-06-29 17:41:56 256

原创 把代码转移到另一个git仓库

当前公司所使用的版本管理工具是gitlab,而我自己更倾向使用GitHub来存放自己的代码。于是就需要将代码推送到自己的仓库了。

2023-01-03 15:12:31 241

原创 同一个controller中同一个service不同的方法调用怎么有的会为null

今天疯狂给测试写bug的时候,发现我同一个controller中不同的方法调用同一个service竟然有的方法会为null。当时就很奇怪了,不过仔细看了下,应该是我手滑public写成private了那这是什么原因呢,在controller中private和public是有什么区别呢?细心的我又发现了,这两个方法还有个区别是一个是AOP的切点private的则不是。 这就引出另一个问题了,AOP为什么切不到private方法。在springboot2.x之后AOP的动态代理默认都是cglib代理

2022-02-16 11:35:23 890

原创 try后面还能跟小括号,赶紧记录起来

今天在阅读代码的时候,碰到一个很陌生的写法,try后面跟着小括号 try (SqlSession sqlSession = sqlSessionFactory.openSession(); Cursor<WechatUser> wechatUserCursor = sqlSession.getMapper(WechatUserDao.class).getAllPhone() ) { } catch (IO

2022-02-10 16:41:31 2828

原创 切换标签页,富文本编辑器绑定的值无缘无故消失了,看我如何解决它

前言今天测试反馈了一个bug,后台商品管理的富文本编辑器,在进行标签页切换的时候都会造成富文本内容清空,其他属性值正常显示。听到这问题时,我一个后端仔怎么解决这么"高难度"的问题。先是各种浏览器找解决办法,但也没有想要的,没办法了只能硬着头皮上了。<!-- 商品详情 --> <el-form-item label="商品详情:"> <tinymce v-model="dataForm.detail.detail" @loadingShow="loadin

2021-12-09 11:00:43 965

原创 这些方法也可以让线程退出

public class MyselfTest { public static boolean flag = false; public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() ->{ int i = 0; while (!flag) { i++

2021-12-07 17:23:58 179

原创 Spring中经典的高频面试题

Spring中经典的高频面试题1、什么是Spring框架? Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助 开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按 照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何 在后台进行工作的。Spring框架至今已集成了 20多个模块。这些模块主要被分如下图所示的核心容器、数据访

2021-11-24 10:42:46 220

原创 spring事务的总结

事务的基本概念事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。特点:事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、_致性、 隔离性、持久性。这四个属性通常称为ACID特性。原子性(Automicity ) o 一个事务是一个不可分割的工作单位,事务中包括的诸操作要 么都做,要么都不做。一致性(Consistency )o事务必须是使数据库从一个一致性状态变到另一个一致性状态。 一致性与原子性是密切相关的。隔离性(Isolation )

2021-11-23 09:34:34 69

原创 Spring中的组件和编程思想

Spring简化开发四个基本策略基于POJO的轻量级和最小入侵性编程通过依赖注入和面向接口松耦合基于切面和惯性进行声明式编程通过切面和模板减少样板式代码。Spring中提供了很多内置实现Spring中的编程思想Spring思想应用场景(特点)一句话总结OOPObject Oriented Programming(面向对象编程)用程序归纳总结生活中的一切事物封装、继承、多态BOPBean Oriented Programming(面向bean编程)面向普通的J

2021-11-11 17:45:08 220

原创 Hystrix常见参数配置

Command基础配置配置配置描述execution.isolation.strategy隔离类型:THREAD-线程隔离,SEMAPHORE-信号量隔离execution.timeout.enabled超时检查是否开启fallback.enabled是否开启降级处理请求上下文配置配置配置描述requestCache.enabled是否开启请求缓存,默认为truerequestLog.enabled是否开启请求日志,默认为true

2021-11-07 22:10:24 283

原创 独一无二的对象——单例模式

单例模式单例模式是设计模式中最为普遍的模式之一。它是一种对象创建模式,用于产生一个对象的具体实例,它可以确保一个系统中一个类只产生一个实例。有什么用处比如管理一些共享资源,比如说:线程池,缓存,日志对象等。事实上只能有一个,如果产生多个实例,或许会造成资源使用过量,所以单例模式能节省资源的开销。减少系统内存的使用频率单例的实现方式首先单例必要要又一个private访问级别的构造函数,只有这样才能保证实例不会被系统其他代码实例化。其次是instance成员变量和getInstance方法必须是

2021-05-14 00:02:06 83

原创 根据内容生成二维码附加底图和文字并压缩

前言该需求是提供一个接口[ { "name":"张三", "url":"https://www.baidu.com" }, { "name":"李四", "url":"https://www.baidu.com" }]传入如上数据结构,返回一个以name为图片名的二维码(需要扫描二维码会自动跳转)的一个压缩包。@PostMapping("/zip") public Map gzip(@RequestBody java.util.ArrayList<

2021-02-26 03:11:10 242 1

原创 ActiveMQ的基本概念和应用场景

ActivityMQ类型topic 主题存储,用于订阅/消费模型。主题中的消息会发送给消费者同时处理,只有在消息可以重复处理的场景下使用queue 队列存储,常用于点对点模型。默认只能由唯一的一个消费者处理,一旦消费消息删除简单对比1TopicQueuePublish/Subsribe Messagepoint to point有无状态默认数据是不落地,是无状态的Queue数据一般会在服务器上以文件形式保存,也可配置成DB存储完整性保障并不保

2021-02-26 02:46:25 1473 4

原创 在Java中获取Android端登陆的设备信息

最近在项目中有个需求,需要获取Android设备的信息,例如:华为,Android10。可以通过request.getHeader(“User-Agent”);中来解析出。但是实践证明华为手机并不能拿到手机型号等信息。通过很多次的百度百度,发现谷歌的Android包有此神效。首先maven进行导入<dependency> <groupId>com.google.android</groupId> <artifa

2020-10-28 18:23:46 937

原创 在Centos7中安装ElasticSearch并启动运行

下载ElasticSearch由于在官网下载的话是特别慢,所以我这边选择使用华为云的国内镜像地址安装通过sftp工具上传到云服务器上,通过使用命令将其解压tar -zxvf elasticsearch-7.4.2使用命令将文件夹移动到local下以便于管理cp -r elasticsearch-7.4.2 /usr/local修改配置文件vim elasticsearch-7.4.2/config/elasticsearch.yml我是针对一下几个配置项进行了修改:clu

2020-07-09 23:24:55 1032

原创 Centos7 下 MySql8.0 的安装与配置

Centos7 下 MySql8.0 的安装与配置安装环境:Centos7 ,mysql8.01.配置 yum 源下载 mysql 源安装包wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm安装 mysql 源yum localinstall mysql80-community-release-el7-1.noarch.rpm如图所示,此时如果不是 root 用户登陆,需要登陆 root 用户,

2020-07-08 11:16:12 554

原创 Redis的数据类型基本语法

Redis的数据类型Redis的数据类型 - stringstring 字符串string: 最简单的字符串类型键值对缓存,也是最基本的key相关keys *:查看所有的key (不建议在生产上使用,有性能影响)type key:key的类型string类型get/set/del:查询/设置/删除set rekey data:设置已经存在的key,会覆盖setnx rekey data:设置已经存在的key,不会覆盖set key value ex time:设置带过期时间的数据ex

2020-07-04 02:53:10 149

原创 Redis持久化机制,优缺点,如何选择合适方式

Redis持久化机制RDB: Redis DataBaseAOF: Append Only FileRDB什么是RDBRDB:每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存。如果宕机重启,那么内存里的数据肯定会没有的,那dis后,则会恢复。备份与恢复内存备份 --> 磁盘临时文件临时文件 --> 恢复到内存RDB优劣势优势每隔一段时间备份,全量备份灾备简单,可以远程传输子进程备份的时候,主进程不会有任何io操作(

2020-07-04 02:43:14 172

原创 Redis 缓存过期处理与内存淘汰机制

计算机内存有限,越大越贵,Redis的高并发高性能都是基于内存的,用硬盘的话GG。已过期的key如何处理?设置了expire的key缓存过期了,但是服务器的内存还是会被占用,这是因为redis所基于的两种删除策略redis有两种策略:1. (主动)定时删除 定时随机的检查过期的key,如果过期则清理删除。(每秒检查次数在redis.conf中的hz配置)2. (被动)惰性删除 当客户端请求一个已经过期的key的时候,那么redis会检查这...

2020-07-04 02:27:33 102

原创 使用IDEA搭建Spring源码阅读环境

spring源码阅读环境搭建Spring已经将源码从SVN上迁移到了GitHub上,而且也改为机遇Gradle构建项目。它取代了之前的Ant+lvy系统,所以构建Spring源码之前得先安装Git以及Gradle,这两个工具的安装就不做赘述了。下载Spring因为Spring使用GitHub管理的,所以我们得通过Git clone命令拉去到我们本地,但是由于GitHub指向的是外网,我们国内下载是特别慢的,Spring又是很大的一个工程,所以我们可以利用另一个方法,可以通过国内的Git网站码云做一个中

2020-05-26 18:08:09 282

原创 在牛客网错题的一些记录

1.Java运行时内存分为线程共享和线程私有两部分线程共享:方法区和堆线程私有:Java虚拟机栈,程序计数器,本地方法栈2.new java.util.SortedMap().put("key","value");这种实例方式是错误的因为SortedMap是一个接口3.for循环执行的顺序for(初始化语句;布尔表达式;更新语句){正文过程;}初始话语句仅在循环开始前执行一次布尔表达式用于决定是否继续执行正文过程,表达式中异常则结束循环正文过程,如果过程中存.

2020-05-25 09:44:45 268

原创 jvm内存区域和类加载流程

运行时数据区域程序计数器​ 是线程私有的,程序计数器是一块较小的内存,它可以看作是当前线程执行的字节码的符号指示令, 它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成 。Java虚拟机栈​ 是线程私有的,每个方法被执行时都会调用一个栈帧(方法运行时很重要的基础数据结构)用于存储局部变量表 、操作数栈、动态链接、方法出口等信息。每个方法被调...

2020-05-01 01:29:24 202

原创 java连接elasticSearch

配置连接ElasticSearch@Configrationpublic class elasticSearch{TransportClient client=null; @Bean public TransportClient client(){ Settings setting=Settings.bulider().put("cluster.name",...

2020-04-09 01:25:25 111

原创 springboot的一些常用的注解及用法

@Bean(destroyMethod = "close")//destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.

2020-04-09 01:20:53 112

省市县行政编码sql文件

中国行政区划省市县行政编码包含: 邮政编码 拼音 首字母,可用于移动端,用来展示根据首字母进行排序时候的需求

2023-02-23

空空如也

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

TA关注的人

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