- 博客(17)
- 收藏
- 关注
原创 Redis性能优化方法
使用 slow log-log-slower-than 参数设置耗时命令的阈值,并使用 slowlog-max-len 参数设置耗时命令的最大记录条数。因为redis数据的网络传输是redis性能的瓶颈之一,所以我们希望一次性能传输多条命令,这样一般会比一条一条传输执行的效率更高。如果上述三个方法处理的数据在不同的哈希槽,那么原子性也无法保证。big key就是某个key的value特别大,比如超过1MB。如何处理big key:进行拆分,选用合适的数据结构。如何处理:使用redis集群进行读写分离。
2024-04-24 14:57:08
238
原创 JVM虚拟机
存放类的基本信息,还有用于存放编译期生成的各种字面量(Literal)和符号引用(Symbolic Reference)的常量池表(Constant Pool Table) ,常量池表会在类加载后存放到方法区的运行时常量池中。主要是考虑到,永久代放在堆中很影响堆的垃圾回收效率,并且随着永久代越来越大,从未来角度来看,会很影响JVM的内存大小,如果放在直接内存中,方法区的内存就受本地系统影响。字符串常量池中的常量经常会被回收,如果放在永久代,他被回收的概率很小,所以应该单独放在堆中,提高他的回收效率。
2024-04-16 17:31:30
569
原创 JAVA:多线程
但是恰好在A线程get(key)之后,调用constainsKey(key)方法之前B线程执行了ConcurrentHashMap.put(key,null),那么当A线程执行完containsKey(key)方法之后我们得到的结果是true,与我们预期的结果就不相符了。如果自己设置了并发度,ConcurrentHashMap会使用大于等于该值的最小的2的幂指数作为实际并发度,也就是比如你设置的值是17,那么实际并发度是32。许多CAS的操作是自旋的:如果操作不成功,会一直重试,直到操作成功为止。
2024-04-14 15:19:58
1355
1
原创 常用设计模式
因为线程同步与否主要产生在实例未创建但是有大量线程进入的情况,当某个线程已经创建了这个实例,其他线程是不需要同步的,直接返回实例就可以了。使用静态内部类,因为外部类加载的时候内部类不会马上被加载,而是在需要时才加载,实现了慢加载。工厂模式的意义:将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦。简单来讲就是所有对象都由一个工厂产生,如果要增加物品,工厂对象的代码必须要修改,违反了开闭原则。在调用的时候应该对外提供抽象工厂的接口作为参数,实际接受的是抽象工厂的实现类工厂。
2024-04-11 23:15:26
315
1
原创 Bean部分知识
在spring启动时,会默认构建所有的bean并交给IOC容器管理。依赖注入的形式获得IOC容器对象,进而获得bean。singleton:启动只会创建一个bean(默认),单例bean的初始化以及依赖注入一般都在容器初始化阶段进行。prototype:每次启动都创建一个新的bean,多例bean 在容器启动时不实例化,即使设置 lazy-init 为 false 也没用,只有调用了getBean()才进行实例化。
2024-03-28 22:48:28
342
原创 Java事务管理
REQUIRED行为是加入事务操作,比如deleteById开启了一个事务但是遇到异常,遇到另一个事务insert会加入到当前事务,所以程序中只有一个事务,会同时回滚。默认回滚RuntimeException,如果要回滚其他异常要记得配置rollbackFor。REQUIRED_NEW遇到insert事务会开启一个新的事务,可以避免同时回滚。事务传播行为主要有两种,REQUIRED(默认)和REQUIRED_NEW;
2024-03-26 22:14:56
212
原创 JAVA:反射和AOP实现
先使用 Class 对象获取指定的 Constructor 对象,再调用 Constructor 对象的 newInstance()在 Java 程序中许多对象在运行是都会出现两种类型:编译时类型和运行时类型。程序在运行时还可能接收到外部传入的对象,该对象的编译时类型为 Object,但是程序有需要调用。该对象的运行时类型的方法。然而,如果编译时根本无法预知该对象和类属于哪些类,程序只能依靠运行时信息来发现该对象。声明对象时实用的类型来决定,运行时的类型由实际赋值给对象的类型决定。
2024-03-09 17:19:14
150
原创 Stream流
1.单列集合和数组可以直接调用stream()。2.双列集合不能直接调用stream,可以转换成单列结合调用(keySet or entrySet)**
2024-03-05 14:10:07
124
原创 2021秋软工实践第一次结对编程作业
1.| col1这个作业属于哪个科目构建之法-2021秋-福州大学软件工程社区-构建之法-2021秋-福州大学软件工程论坛-CSDN社区云这个作业要求2021秋软工实践第一次个人编程作业-CSDN社区这个作业的目标制作一个小程序模型,并作出需求分析学号031902615组队者学号031902604组队者作业地址2.作业需求分析(1)Need,需求可以看出,在新冠疫情影响下,原本的线下活动不适合开展,因此为线上的各种各样的app提供了市场。下图
2021-09-27 15:37:56
66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人