- 博客(38)
- 收藏
- 关注
原创 【HashMap源码学习】
2、在jdk8中,使用的是“数组 + 链表 + 红黑树”,发生散列冲突的时候会使用尾插法添加到单链表中。如果链表的长度大于8且散列表容量大于64的时候,会将链表树化为红黑树。在扩容再散列时,如果红黑树的长度低于6则会还原为链表。1、在jdk7中,使用的是“数组 + 链表”,发生散列冲突的时候键值对会用头插法添加到单链表中;HashMap是基于分离链表法解决散列冲突的动态散列表。1、putVal 存放数据。
2024-07-24 16:13:46
344
原创 Java泛型
Java中的泛型方法是一种特殊的方法,它可以在方法的声明中使用泛型类型参数。这样一来,我们就可以编写可以适用于多种类型的方法,并且在编译时进行类型检查。但是需要注意的是:在类上面声明泛型,仅限于实例方法上直接使用,但是不适合静态方法,静态方法上的泛型还是需要在方法上单独定义的。泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常。
2023-07-26 15:49:37
883
原创 Redis基础原理
redis使用多线程并非是完全摒弃单线程,redis还是使用单线程模型来处理客户端的请求,只是使用多线程来处理数据的读写和协议解析,执行命令还是使用单线程。1.redis是一个内存数据库,当redis 服务器重启,或者电脑重启,数据会丢失,我们可以将redis 内存中的数据持久化保存到硬盘的文件中。RDB默认方式,不需要进行配置,默认就使用这种机制,在一定的间隔时间中,检测key的变化情况,然后持久化数据。:故障发现后,如果下线节点的是主节点,则需要在它的从节点中选一个替换它,以保证集群的高可用。
2023-07-22 22:50:05
299
原创 Oracle的硬解析、软解析和软软解析
判断软解析和软软解析的依据在于 pga 中的 session cursor 是否可以重用;判断硬解析和软解析的依据在于 sga 中的 share cursor 的缓存情况;
2023-07-02 16:55:02
818
原创 @TableName 、@TableId、@TableField、MyBatis-Plus 字段类型处理器TypeHandler
mybatisplus已经提供了FastJson、Gson和JackSon的json转java对象的AbstractJsonTypeHandler的实现类;//json从数据库中取出转换成对象private 实体类 xxx;
2023-06-02 21:43:51
8742
原创 SpringAOP的JoinPoint类、Proceedingjoinpoint 类详解,AOP环绕通知获取注解信息
SpringAOP的JoinPoint类、Proceedingjoinpoint 类详解,AOP环绕通知获取注解信息
2023-04-05 18:15:27
11564
原创 【MYSQL基础原理】
1、什么是悲观锁?悲观锁是基于一种悲观的态度类来防止一切数据冲突,它是以一种预防的姿态在修改数据之前把数据锁住,然后再对数据进行读写,在它释放锁之前任何人都不能对其数据进行操作。1)特点:可以完全保证数据的独占性和正确性,因为每次请求都会先对数据进行加锁,然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高;2)手动加悲观锁:读锁LOCK tables test_db read释放锁UNLOCK TABLES;
2023-03-29 21:33:26
331
原创 【一个Java文件从编码到执行要经过以下流程】【JVM内存分区】【一个对象的创建过程】【垃圾回收算法】
【一个Java文件从编码到执行要经过以下流程】【JVM内存分区】【一个对象的创建过程】【垃圾回收算法】
2023-03-23 20:50:05
270
原创 mybatis-plus使用this.baseMapper.update和updateById更新null值不生效
mybatis-plus使用this.baseMapper.update和updateById更新null值不生效
2023-03-23 20:25:11
6731
原创 Java线程池ThreadPoolTaskExecutor
在执行一个异步任务或并发任务时,往往是通过直接new Thread()方法来创建新的线程,这样做弊端较多,更好的解决方案是合理地利用线程池,使用线程池可以降低系统资源消耗、提高系统响应速度、方便线程并发数的管控。
2023-02-28 21:40:45
1273
原创 Java反射之Field使用及说明
**反射** 的目的是为了能在运行期间得到对象的结构(包括成员变量,方法,构造方法等),并可以在允许的情况下访问这些属性和方法。
2023-02-27 21:18:40
2671
原创 spring事务学习分享
事务的传播方式: @Transactional(propagation = PROPAGATION_REQUIRES_NEW)隔离规则可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表为了避免事务并发状态下脏读、不可重复读、幻读的产生,Spring中定义了五种隔离规则:事务回滚@Transactional默认只能回滚RuntimeException和RuntimeExcepti
2022-12-15 09:58:56
156
原创 Oracle模糊查询输入_和%查出所有问题的解决
问题描述:因为模糊查询的时候我使用的是LIKE方法,所以当输入框输入% 、_ 时就会查询出所有数据。这里主要是因为“%”、“_””单独出现时,会被认为是通配符,因此使用LIKE方法的时候需要转义。解决方案:1)使用instr(),这是ORACLE内建的函数,是经过相当程度的优化的,使用这个方法可以解决上述问题。MySQL: select * from test where name like ‘%helloworld%’;Oracle:select * from test where ins
2021-10-21 16:11:22
2216
原创 Mybatis-Plus分页查询
Service层:Ipage selectPage(Page page);Service实现层:return userMapper.selectPage(Page,new QueryWrapper<>());Mybatis-Plus自带分页插件Controller层:Ipage userIpage=iUserService.selectPage(new page<>(1,5));其中new page<>(current, size); current是当前页数
2021-08-04 14:54:06
281
原创 cmd控制台编写SQL语句
登录数据库:mysql -u 用户名 -p回车后输入密码新建数据库:create database 数据库名;指定数据库建立表并在表中插入数据:use 数据库名;查看所有数据库:show databases;选定数据库:use 数据库名;查看数据库所有表结构:show tables;查看表数据:select * from 表名;...
2021-08-04 14:41:53
283
原创 BeanUtils.copyProperties(org.springframework.beans.BeanUtils) 和 BeanUtil.copyProperties( Hutool)
BeanUtils.copyProperties(source,target);将source的属性复制给target,但是这里只针对target中和source相同的字段或属性。如source类为A中有字段:id、name、age;target类为B中有字段:id、nameA a=new A();B b=new B();a.setId(1);a.setName(“Arya”);a.setAge(11);BeanUtils.copyProperties(a,b);结果b的id为1、nam
2021-08-04 14:28:51
1671
原创 jedis操作redis 报NOAUTH Authentication required.
因为密码有错误,我是直接把我的配置文件的密码删了,然后重新启动redis。没密码了就可,以后要用在设置
2021-02-28 11:38:05
230
原创 webStrom控制台出错:“npm”不是内部或外部命令,也不是可运行的程序或批处理文件的处理
webStrom控制台出错:“npm”不是内部或外部命令,也不是可运行的程序或批处理文件的处理:**用管理员身份运行WebStrom就可。**
2021-02-28 11:35:34
284
原创 ERROR Error: vue-loader requires @vue/compiler-sfc to be present in the dependency tree.
ERROR Error: vue-loader requires @vue/compiler-sfc to be present in the dependency tree.因为我并未安装并配置vue-loader但是又有红色报错:怀疑是否是node.js版本太低导致的问题而不是vue-loader的问题,升级node.js: 原来n模块是不支持window系统,window系统升级node就只有到node官网下载window安装包来覆盖之前的node。所以先卸载node.js:1.从卸
2021-02-28 11:32:34
9160
3
原创 PostMan测试接口出现:未连接虚拟机Redis
最近在学习前后端分离的项目,那么后端代码编写时要测试接口是否正确,我使用的是postman,下载安装包安装运行就可,很简单。后面测试接口的时候出现错误:未连接虚拟机Redis(因为我就没安装,更不可能打开了)在这给出Redis安装和使用教程(看了蛮多就这个好用):https://www.cnblogs.com/liuqingzheng/p/9831331.htmlRedis打开就可正常测试接口。...
2021-02-27 13:18:14
539
原创 Vue项目管理器打不开的问题
vue ui必须版本到3.0.0及以上才能用,如果你的安装版本低于3.0.0,那么命令行任意路径下(cmd)输入(卸载当前版本):vue -V 看到版本为2.9.6那么肯定要卸载:首先cmd后输入命令:where vue 后进入指定目录删除vue相关的所有文件,带vue的全删然后输入:cnpm install -g @vue/cli然后查找看到最新版本最后在指定文件打开可视化工具输入vue ui就成功跳出...
2021-02-27 13:07:36
1570
原创 如何管理员身份运行PowerShell?
打开开始菜单–找到Windowspower shell文件夹–找到WindowsPowerShell–点击鼠标右键,点击以管理员身份运行。
2021-02-27 12:11:28
1624
原创 如何在文件夹里打开可视化工具?
在程序调试中,用Powershell或cmd进行调试是非常日常的一个需求,以前的做法一般是"WIN+R"输入"cmd"然后慢慢"cd"到当前目录下。这个做法的问题是效率非常低。在Win10中,其实要实现这个东西是非常简单的,只需要在当前目录下"shift+鼠标右键"...
2021-02-27 12:05:54
334
原创 创建Springboot项目时遇到的镜像问题
#创建Springboot项目时遇到的镜像问题解决:换阿里云的镜像:https://start.aliyun.com/而且创建后自动生成src目录。
2021-02-27 12:01:51
237
原创 Review
title: Reviewdate: 2019-04-15 20:29:35tags:#《三篇论文读后感》第一篇-《Google File System》首先,Google GFS 文件系统是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统 。而Google GFS文件系统是基于现实的考量所设计出来的,它的设计需求是改变以往的对文件只能按顺序只读的操作,且由于经常文件巨大影响工作...
2019-04-19 15:58:16
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人