- 博客(26)
- 收藏
- 关注
原创 Golang笔记
切片就像数组的引用 切片并不存储任何数据,它只是描述了底层数组中的一段。fmt.Println(*p) // 通过指针 p 读取 i。*p = 21 // 通过指针 p 设置 i。这也就是通常所说的「解引用」或「间接引用」。和它共享底层数组的切片都会观测到这些修改。指针保存了值的内存地址。操作符会生成一个指向其操作数的指针。与 C 不同,Go 没有指针运算。操作符表示指针指向的底层值。类型值的指针,其零值为。
2025-12-12 15:39:19
208
原创 Java 双重检查锁定
确保一个类,并提供一个全局访问点。,防止外部直接用new创建对象。提供一个,用于获取这个唯一的实例。数据库连接池、日志记录器、配置管理器等。// 1. 使用 volatile 关键字保证实例的可见性// 2. 私有化构造函数// 防止通过反射创建多个实例= null) {throw new RuntimeException("请通过 getInstance() 方法获取实例。");// 3. 公有静态方法,提供全局访问点// 第一次检查,避免不必要的同步开销。
2025-09-11 12:05:59
577
原创 合并链表 你改节点引用没用 改prev结点的指向才会修改链表
3.合并用dummy结点,head移动顺序是先找到next 再后移,循环结束head在尾部,因此下一步是用head.next去链接。2.归并先拆分,拆分用快慢指针,判断head为空或者指向尾部tail,然后把指向置空 断开连接。♥链接是靠next来绑定的 对单个节点的引用的修改与之前的链表无关。1.构造tail结点null 左闭右开区间。
2025-08-01 21:08:38
265
原创 一个场景理解ES
一个空索引在集群中就像一个已经建好、分配好工人(主分片和副本)的仓库,虽然里面还没放任何货物(文档),但它已经完全准备就绪,随时可以开始接收和处理货物。我理解您想再次确认这个问题,因为这在 Elasticsearch 的实际部署中非常重要。2.
2025-06-06 18:31:17
876
原创 静态-内部-final
非静态内部类的实例必须与外部类的一个实例关联。如果在非静态内部类中定义静态方法,可能会导致逻辑上的混乱,因为静态方法无法访问外部类的非静态成员(因为没有隐式的外部类实例引用)。静态内部类本身虽然是静态的(不依赖于外部类的实例),但它仍然是一个类。它可以拥有自己的成员变量(静态和非静态)和方法(静态和非静态)。非静态方法属于静态内部类的实例。你完全可以在一个不能被继承的类中拥有可以被修改的成员变量(非。静态方法属于类本身,调用时不需要创建类的实例。关键字只用于修饰类的内部类(嵌套类)。
2025-04-17 16:06:55
180
原创 内部类--
因此,“静态内部类只有一份属于外部类本身而不是某个实例” 的说法强调了其类型定义和实例化不依赖于外部类的特定对象,以及它在逻辑上是外部类的一个组成部分。它与外部类共享类型信息,但它的对象可以独立创建。它就像外部类实例的一个特殊成员,可以自由访问外部类的所有成员。非静态内部类(Inner Class)的每个实例都。与外部类的一个实例相关联。
2025-04-17 15:37:37
223
原创 创建springboot的application.yaml文件的分文件
springboot的application.yaml文件太大变量太多。2.configuration中添加program arguments。3.新建application.yaml的分文件,相关变量填在其中。有一个单独的模块用到的变量多且跟其他变量不相关。1.在application.yaml中加变量。
2024-09-13 11:29:30
187
1
原创 @Resource注入类A会把A的成员变量类B也注入(B不为null)
A类有init,A类的init动作涉及注入B类,B类也依赖注入C类(有成员变量C),在A的初始化动作中,底层涉及使用C类的方法。在A类中注入B类,build方法中使用依赖注入的b,b的注入会使得b中的c也被注入。则会报错空指针,因为此时C为null,调用c的方法时直接报错。
2024-09-13 11:17:25
204
原创 UT中添加@MockBean绕过@PostConstruct初始化动作
buildClient()中需要用到可变变量,无法完成init动作,在启动项目的UT测试时,预构建的动作会被执行,UT无法启动。在UT类中添加@MockBean的成员变量。
2024-09-13 10:58:06
312
原创 springboot接口注解
类注解@RestController此类的接口公共路径可以提取@RequestMapping("/v2")接口方法注解@RequestMapping 需在注解内补充方法类型如post/get@RequestMapping(value = "/test/test/submit", produces = {MediaType.APPLICATION_JSON_VALUE}, method = RequestMethod.POST)@PostMapping、
2024-08-30 15:30:18
491
原创 idea打开项目右侧导航栏没有maven选项
点击菜单栏Help->Find Action(Ctrl+Shift+A),输入Maven projects,在项目中加入Maven projects。
2024-08-22 11:28:53
548
原创 alibaba.fastjson&google.gson
@return Map对象。如果解码失败,请抛出异常,而不要返回null或空Map。* @param text JSON文本。* 将一个Map对象编码成JSON文本。* 将一个Map对象编码成JSON文本。* 将JSON文本解码为Map对象。* 将JSON文本解码为Map对象。
2024-08-14 11:50:54
374
原创 snakeyaml.error.MarkedYAMLException: while scanning a double-quoted scalar乱码字符
这种情况可能并不一定是yaml文件里有错误,可能是编码格式问题,检查setting---maven---runner里的VM options,里面如果有-Dfile.encoding=GBK则需要去掉,同步检查下setting---maven---Importing里的配置,如有也删掉。针对报错里出现的是乱码字符的情况。
2024-06-07 14:16:37
357
原创 JDK8/17切换配置修改
2.IDE中project structures(实测直接使用也行)1.首先修改环境变量里的JAVA_HOME指向要使用的jdk版本地址。3.Setting---Maven---Runner中的JRE地址。需要替换修改的地方(行不通的时候1.刷新依赖2.重启3.深呼吸)实测jdk切换也需要同时安装对应的证书。4.pom文件中maven编译插件。5.配置证书(公司内可能用到)
2024-06-07 10:29:03
456
原创 GlobalExceptionHandler
当方法中抛出对应异常时,如果有try catch捕获该异常则对应catch中的逻辑继续执行;若没有被方法的外层捕获,用throws在方法层抛出,就会被全局异常处理器捕捉到,返回错误体。其中类注解@RestControllerAdvice和方法注解@ExceptionHandler(BindException.class)必须添加。
2024-03-26 20:28:39
426
原创 required a bean of type ‘org.springframework.data.redis.core.StringRedisTemplate‘
原因:在另一个没有被依赖的模块中初始化了redisTemplate,代码在72 73行中有重写的序列化,因此需要依赖此模块或者原始spring的Redis模块来完成初始化。排查:代码有使用且点击可跳转。
2024-01-29 15:31:42
1441
1
原创 1个spring-boot项目是怎么跑起来的之123
一般写在src-main-resource目录的application.yaml文件中,可以被其他命名的application-1或者-2里的值覆盖;1.运行时参数,也就是环境变量,一些在本地配了值(如数据库地址)本地能跑起来,代码拿到别人电脑/流水线环境上需要换成另一些值的参数;但如果不想每次提交代码都去掉默认值,可以在configuration中配置。【不分先后,因为我拼凑不出完整流程】
2024-01-27 18:27:26
741
1
原创 自动生成【查表类】
4.如果此时生成的类路径展开之后不像package包,生成的类图标是个小茶杯小咖啡,选中target中的Java目录,右键Mark as resource root。3.在右上角点edit configuration,点加号选择maven类型,起名字,run类型选compile,目录自选,apply and run。需要代码生成的一份位于target目录下的查询表内容的类(胡说的 不知道应该怎么称呼)1.【查表类】指的是在人为设计了表内容和repository接口(如下)之后。2.需要maven依赖如下。
2024-01-27 17:37:52
446
1
原创 GIT案例:时间跨度大的多个提交合并
3【cherry-pick】查看git提交记录,从ABC三个节点分别cherry-pick对应的提交内容,解决冲突,(如果有误操作,只能cancel本次merge,重新来过),全部pick并解决后就完成了。2 重新clone新的代码仓,基于最新的主分支rebase一个新的个人分支,保险起见可以再拉取一下最新代码——>此时新分支与最新代码保持一致。在ABC三个时间点分别提交代码,需要合并为一个完整的合并请求,代码仓在这三次提交中另外大量别人的提交痕迹,add/modify文件量巨大。4 待补充解决冲突原则。
2024-01-08 19:08:34
491
1
原创 删掉项目里的idea子文件夹 关闭项目重新打开编译
UT编译启动失败报错FATAL ERROR in native method: processing of -javaagent failed。关掉项目——删掉项目的.idea文件夹——打开项目——重新编译。编译fatal 报错遇事不决删idea再重启。
2023-11-01 16:25:30
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅