- 博客(53)
- 收藏
- 关注
原创 java 基础常用知识点
当 size 超过 threshold 时,HashMap 会自动进行扩容,通常是将数组长度翻倍,将旧数组中的所有元素重新计算哈希值,并将它们放入新的数组中。这是因为哈希表的索引是基于数组的长度计算的,当数组长度改变时,哈希值的索引也会改变。8、finalize()当对象的引用不再被使用且被垃圾回收器标记为可回收时,finalize() 方法会被调用,从 JDK 9 开始,finalize() 方法不推荐使用。1、getClass()返回对象的运行时类的 Class 对象,可以用于反射操作。
2024-11-05 15:57:22 494
原创 String.format() 用法详解
System.out.println(“%s格式化之后=========”+str);System.out.println(“%d%格式化===”+str);System.out.println(“%b格式化===”+str);System.out.println(“%d格式化===”+str);System.out.println(“%x格式化===”+str);System.out.println(“%o格式化===”+str);System.out.println(“%a格式化===”+str);
2024-10-30 17:27:56 735
原创 mysql 锁
在mysql中使用范围查询的时,如果请求共享锁或者排他锁,InnoDB会给符合条件的已有数据的索引项加锁。悲观锁对于数据库中数据的读写持悲观态度,即在整个数据处理的过程中,他会悲观的认为数据不会保持一致性,所以是会将相应的数据锁定。乐观锁对于数据库的数据的读写持乐观态度,即在整个数据处理的过程中,他会很乐观的认为数据会保持一致性,所以不加锁,而是通过数据版本记录机制实现。需要强调的一点是,InnoDB 中行级锁是基于索引实现的,临键锁只与非唯一索引列有关 ,在唯一索引列(包括主键列)上不存在临键锁。
2024-10-09 16:00:49 1078
原创 sql 查询重复记录(mysql)
查处各个重复记录组中多余的鸡柳数据,不查出id最小的一条。查询出有重复记录的各个记录组中的ID最大的记录。删除多余的重复记录,只保留id 最小的记录。查出有重复记录的各个记录组中ID最大的记录。删除多有的重复记录,只保留id最小的记录】查询出多余的记录,不查出id最小的记录。1、单子段(nick_name)查询所有有重复记录的所有记录。查出所有有重复记录的记录。
2024-10-08 11:19:05 660
原创 java四种线程池
2.newCachedThreadPool:一个可缓存的线程池,线程池的规模超过了处理需求,将自动回收空闲线程,当需求增加时,可以添加新线程,线程池的规模不存在任何限制,没有顺序执行。4.newSingleThreadExecutor:单个工作线程来执行任务,如果这个线程异常结束,就会有一个新的来替代它,它的特点是能确保任务在队列中的顺序来串行执行。1.newFixedThreadPool:固定长度的线程池,每提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化。
2024-08-05 15:40:55 157 1
原创 MongoDB 100问
MongoDB是一种面向文档的NoSQL数据库,使用BSON(二进制JSON)格式存储数据。它支持动态模式设计,具有高性能、高可用性和易扩展性。
2024-08-05 15:15:30 1121
原创 为什么可以使用@Resource,但不推荐使用@Autowired
属性注入应该是我们用的最多的一种,即通过@Autowired注解,该注解默认是按照ByType方式(按类型)注入Bean,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false)。1、@Resource是Java的标准注解,定义在javax.annotation.Resource包中,主要用于EJB 组件的依赖注入,但在Spring中也可以用于bean的注入。2、setter 方法注入。
2024-08-02 16:20:52 351
原创 多个线程同时调用接口
当多个线程同时访问共享资源时,可能会出现线程安全问题。每个线程可以独立执行一段代码,与其他线程并行运行。Java提供Thread类和Runnable接口来创建和管理线程。假设我们有一个名为MyService的接口。实现Runnable接口并实现run()方法,然后将Runnable实例传递给Thread对象。 //为每个线程创建Runnable实例。 //线程执行的代码。2)实现Runnable接口。 //接口的具体实现。 //创建线程数组。 //启动所有线程。
2024-08-01 17:29:15 422
原创 SQL 执行过程
如果写了 redo log 直接提交,不经过 prepare 阶段,那么这个过程在发生故障时,如果 MySQL 部署了主从节点,主节点可以根据 redo log 恢复数据,但从节点就无法同步这部分数据。我们知道,当非聚集索引插入时,数据会按主键的顺序存放,所以叶子节点可能需要离散地访问数据索引页,每次索引页更新时,都需要刷新磁盘。二进制日志记录了所有执行的 SQL 语句,而不仅仅是数据修改,这对于数据复制和恢复非常重要,因为它可以确保不仅数据的状态被恢复,连同执行的 SQL 操作也能被还原。
2024-07-09 17:16:40 1686
原创 JavaScript实用总结
Async/await 提供了一种编写外观和行为都像同步代码的异步代码的方法,从而提高了可读性和可维护性。这些数组方法提供了一种转换、过滤和减少数组的函数式方法,使您的代码更具表现力和简洁性。部分应用允许您通过预先应用一些参数来创建新函数,从而使您的代码更加灵活和可重用。函数流水线允许您按顺序将一系列函数应用于一个值,从而提高代码的可读性和可维护性。函数组合允许您通过组合多个函数来创建新函数,从而使您的代码更加模块化和可重用。通过柯里化,您可以创建可以用较少参数调用的函数,并返回接受其余参数的新函数。
2024-06-03 14:44:55 442
原创 springboot 实现跨域的几种方式
1)浏览器的同源策略(Same Origin Policy)限制了跨域请求。由于同源策略(Same Origin Policy)的限制,浏览器不允许跨域请求。同源策略规定,A网页设置的Cookie、LocalStorage和IndexDB无法被同源以外的网页读取。A域名下的页面无法读取B域名下的Cookie、localStorage等。3)postMessage:A域的window向B域的window发送消息,实现跨域通信。2)CORS:服务器端设置HTTP头,允许指定的请求来源跨域访问。
2024-05-21 10:03:01 556
原创 一个优雅的 controller
4、使用 @Valid 进行参数效验步骤:整个过程如下,用户访问接口,然后进行参数效验,因为 @Valid 不支持平面的参数效验(直接写在参数中字段的效验)所以基于 GET 请求的参数还是按照原先方式进行效验,而 POST 则可以以实体对象为参数,可以使用 @Valid 方式进行效验。2、@Valid 注解的作用:@Valid 的主要作用是用于数据效验,可以在定义的实体中的属性上,添加不同的注解来完成不同的校验规则,而在接口类中的接收数据参数中添加 @valid 注解,这时你的实体将会开启一个校验的功能。
2024-05-11 11:02:08 451 1
原创 Springboot+logback 详细配置
这里使用springboot3.0.2。application.yml 配置。二、logback详细配置。
2024-05-11 10:41:26 2933
原创 java 实现预览
/ 调用默认浏览器打开PDF文件。// 检查是否支持浏览器打开操作。// 获取Desktop实例。// 创建一个URI对象。//使用桌面程序打开。
2024-05-07 10:53:52 434
原创 springboot的一些优化
删除一个服务(已下架或未上架的才能删除),之前有看别人写的代码,会先根据id查询该记录,然后做一些判断。2、用@RequiredArgsConstructor代替@Autowired。hashSet而不是list,list判断一个元素是否存在的代码。Java 开发手册中说到每个方法的代码不要超过 50 行。5、减少不必要的db (尽可能的减少对数据库的查询)// 判断a是否在list中。//使用时注入这个bean。(bean的三种注入方法)// 判断a是否在set中。11、判断元素是否存在。
2024-05-06 15:09:37 724
原创 Linux命令
sbin/iptables -I INPUT -p tcp --dport 【端口】 -j ACCEPT。如果输出“Connection established”,则表示连接成功。或者输出“Connection refused”,说明端口不通。输出“No route to host”,说明端口不通。ssh 【IP地址】 -p 【端口】 -v。1、linux 服务器查看网络是否通。2、关闭服务器防火墙。
2024-05-06 14:49:16 367
原创 map学习总结
(1)哈希算法:把任意长度的输入,变成固定长度的输出,输出为散列值,压缩映射,散列值的空间通常远小于输入的空间,不同的输入可能会散列成不同的输出,不能通过散列值确定输入的唯一值。(2)hash表:hash 表又叫做散列表,通过key直接访问到内存存储位置的数据结构,通过hash函数,把key映射到表中的某个位置,获取某个数据的位置,从而加快数据的查找。效率低:1.7 当我们的多个KEY ,计算吃的index 值发生冲突的情况下,会存放在同一个链表中,查询效率较低,从头查到尾,时间复杂度为O(n)
2024-04-22 14:32:49 556 1
原创 达梦数据库-常用SQl整理笔记
SELECT SCH_NAME AS “所属模式”,TABLE_NAME AS “所属表”,INDEX_NAME AS “索引名称”, MONITORING AS “是否监控”,USED AS “是否使用”,START_MONITORING AS “开始监控时间”,END_MONITORING AS “停止监控时间” FROM V。--监控IDX_T1_C1索引。select ‘归档状态’,DECODE(ARCH_MODE,‘Y’,‘启用’,‘N’,‘未启用’) from v。
2023-12-14 11:29:41 1536
原创 sql查询 exists(not exists)与in(not in)
WHERE (列名1, 列名2) IN (SELECT 列名1, 列名2 FROM 表名 WHERE 条件)WHERE 列名 IN (SELECT 列名 FROM 表名 WHERE 条件 LIMIT 1)IN 运算符用于比较单个值或列与一组值,而 EXISTS 运算符用于检查子查询是否返回结果。IN 运算符适用于静态数据列表,而 EXISTS 运算符适用于动态或复杂的子查询。WHERE 列名 IN (SELECT 列名 FROM 表名 WHERE 条件)WHERE 字段名 IN(数据值_1,数据值_2,…
2023-12-06 15:25:41 1069
原创 23种设计模式
定义:Define an object that encapsulates how a set of objects interact.Mediator。定义:Provide a way to access the elements of an aggregate object sequentially。定义:Provide a unified interface to a set of interfaces in a subsystem.Facade。
2023-10-30 10:30:00 200
原创 sql函数
18、STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1。2、LENGTH(str) 、CHAR_LENGTH(str)、CHARACTER_LENGTH(str) 返回字符串str的字符数。4、FIND_IN_SET(str,strlist)返回字符串strlist中与str匹配的字符串的位置。6、INSERT(s1,x,len,s2)字符串s2替换s1位置开始长度为len的字符串。
2023-10-26 08:40:23 259
原创 kafka学习
再比如程序A已经消费了topicA里面的数据,现在还是重新再次消费topicA的数据,是不可以的,但是重新指定一个group id号以后,可以消费。Consumer Group:消费组 消费数据的时候,都必须指定一个group id,指定一个组的id假定程序A和程序B指定的group id号一样,那么两个程序就属于同一个消费组。消费者:Consumer 往Kafka里面去获取数据,处理数据、消费数据 Kafka的数据是由消费者自己去拉去Kafka里面的数据。
2023-10-26 08:36:36 53 1
原创 Oauth2认证、登录模式
redirect_uri 跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码) redirect_uri 跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码) redirect_uri 跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码)这种模式是最方便但最不安全的模式。
2023-10-25 08:40:16 384 1
原创 中间件简要学习
应用最为广泛的三大消息中间件:RabbitMQ、RocketMQ、kafka在传统金融机构、银行、政府机构等有一些老系统还在使用IBM等厂商提供的商用MQ产品。1、首先,产品应该是开源的。开源意味着如果队列使用中遇到bug,可以很快修改,而不用等待开发者的更新。2、其次,产品必须是最近几年比较流行的,要有一个活跃的社区。这样遇到问题很快就可以找到解决方法。同时意味着bug较少。流行的产品一般跟周边系统兼容性比较好。
2023-10-25 08:34:22 335 1
原创 mybatis 总结
一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问。type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从缓存中直接获取,不需要重新创建。id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,表示默认使用的环境。若不设置此属性,该类型拥有默认的别名,即类名。以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写。
2023-09-14 11:22:30 93 1
原创 开源项目资源
项目地址:https://github.com/lihengming/spring-boot-api-project-seed。项目地址:https://gitee.com/52itstyle/spring-boot-seckill。项目地址:https://gitee.com/52itstyle/spring-boot-pay。项目地址:https://gitee.com/xiandafu/springboot-plus。
2023-09-06 10:35:01 112 1
原创 docker常用命令
docker run -it -v /docker_test:/yufei --name yufei_6 centos -i:允许我们对容器内的 (STDIN) 进行交互。等价于:docker pull tomcat:latest。如:docker logs -f -t --since=”2018-09-10” --tail=10 f9e29e8455a5。docker logs -f -t --since --tail 容器ID或容器名称查看容器日志。
2023-09-01 14:14:47 99 1
原创 java基础知识
一、java 基础知识1、JDK 和 JRE 有什么区别?JDK(Java Development Kit),Java开发工具包JRE(Java Runtime Environment),Java运行环境JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。2、== 和 equals 的区别是什么?对于基本类型,==比较的是值;对于引用类型,比较的是地址;equals不能用于基本类型的比较;如果没有重写eq
2023-08-28 14:21:43 288 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人